2006-10-27 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
blobcbc6e148f9392e9c652fa5068fc5ce1cd7f3f82f
1 2006-10-27  James Livingston  <doclivingston@gmail.com>
3         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
5         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): handle MusicBrainz
6         returning 0 for the year/month/day. Fixes #364837.
8 2006-10-27  James Livingston  <doclivingston@gmail.com>
10         patch by: Luca Ferretti  <elle.uca@libero.it>
12         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
13         access keys from the entry view columns headers - they cause
14         keybindings conflicts, headaches for translators and the HIG says
15         they are bad. Fixes #360640.
17 2006-10-27  James Livingston  <doclivingston@gmail.com>
19         patch by: Luca Ferretti  <elle.uca@libero.it>
21         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
22         access keys from the entry view columns headers - they cause
23         keybindings conflicts, headaches for translators and the HIG says
24         they are bad. Fixes #360640.
26 2006-10-27  James Livingston  <doclivingston@gmail.com>
28         * rhythmdb/rhythmdb-private.h:
29         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): fix some glib 2.8 build
30         issues
32 2006-10-27  James Livingston  <doclivingston@gmail.com>
34         * plugins/artdisplay/Makefile.am:
35         * plugins/audioscrobbler/Makefile.am:
36         * plugins/iradio/Makefile.am: fix make clean
38 2006-10-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
40         * rhythmdb/rhythmdb-query.c: (rhythmdb_read_encoded_property):
41         Fall back to strtod() if g_ascii_strtod() doesn't work.
43         * rhythmdb/rhythmdb-tree.c: (save_entry_double):
44         Write floating point values using g_ascii_dtostr() to avoid
45         problems with locale-specific representations.  From #353205.
47 2006-10-25  James Livingston  <doclivingston@gmail.com>
49         * plugins/artdisplay/Makefile.am:
50         * plugins/audioscrobbler/Makefile.am:
51         * plugins/iradio/Makefile.am: fix "make distcheck"
53 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
55         patch by: Brian Cameron <brian.cameron@sun.com>
57         * plugins/audiocd/Makefile.am:
58         Link audiocd plugin with libnautilus-burn as required to get it to work
59         on Solaris.  Fixes #363288.
61 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
63         patch by:  Gabor Kelemen  <kelemeng@gnome.hu>
65         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
66         Clarify that we don't submit actual songs to last.fm, just information
67         on what you're listening to.  Fixes #364014.
69 2006-10-24  Bastien Nocera  <hadess@hadess.net>
71         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
72         (bacon_volume_button_class_init), (bacon_volume_button_new),
73         (bacon_volume_key_release), (cb_button_timeout), (cb_button_press),
74         (cb_dock_button_press), (cb_dock_key_release), (cb_dock_key_press),
75         (bacon_volume_scale_value_changed): update from libbacon, to get
76         better accessibility support (Closes: #364637)
78 2006-10-24  James Livingston  <doclivingston@gmail.com>
80         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
82         * configure.ac: fix some typos and leftovers from disabled->enabled
83         changes. Fixes #364217
85 2006-10-23  William Jon McCann  <mccann@jhu.edu>
87         * shell/rb-source-header.c (rb_source_header_init):
88         Don't require source header cells to be homogeneous.
89         Patch from #359188
91 2006-10-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
93         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
94         Pause the pipeline while buffering.  Fixes #358290.
96 2006-10-23  Bastien Nocera  <hadess@hadess.net>
98         * configure.ac: update required libgpod version to avoid crashes
99         when starting up with an iPod connect (Closes: #352972)
100         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path),
101         (hal_udi_is_ipod): remove outdated ifdefs
103 2006-10-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
105         * plugins/Makefile.am:
106         * plugins/power-manager/rb-power-manager-plugin.c:
107         Don't try to build the power-manager plugin with dbus < 0.35.
109 2006-10-22  James Livingston  <doclivingston@gmail.com>
111         patch by: Ed Catmur  <ed@catmur.co.uk>
113         * plugins/artdisplay/Makefile.am:
114         * plugins/artdisplay/artdisplay/__init__.py:
115         * plugins/artdisplay/rhythmbox-missing-artwork.svg: display some
116         placeholder art when none is available, to avoid having the widget pop
117         in and out of existance.
119 2006-10-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
121         * plugins/lyrics/lyrics.py:
122         Set the lyrics window transient for the main window so it can
123         actually be seen in party mode.  Fixes #362981.
125 2006-10-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
127         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
128         * sources/rb-source.c: (rb_source_class_init),
129         (rb_source_can_show_properties), (rb_source_song_properties):
130         * sources/rb-source.h:
131         Only enable the 'properties' item in the 'music' menu if the selected
132         source implements the show_properties method.  Fixes #356485.
134 2006-10-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
136         * shell/rb-shell-player.c:
137         (rb_shell_player_property_row_activated_cb):
138         Take the entry to play from the play order, rather than grabbing the
139         first entry in the query model.  Fixes #362042.
141 2006-10-16  James Livingston  <doclivingston@gmail.com>
143         * shell/main.c: (main): save custom menu accelerators before exiting.
144         Fixed #362300
146 2006-10-13  Ryan P Skadberg  <skadz@stigmata.org>
148         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
149         I HATE adding this patch, but I'm sick of hitting Yes once
150         and hour.  Working around brain-dead podcasts.
152 2006-10-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
154         * plugins/lyrics/lyrics.py:
155         Disconnect the create-song-info handler when deactivated.
156         Fixes #361882.
158 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
160         * widgets/rb-search-entry.c: (rb_search_entry_changed_cb):
161         Reset the style when clearing the search text.  Fixes #361295.
163 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
165         * rhythmdb/rhythmdb-query-model.c:
166         (rhythmdb_query_model_entry_changed_cb):
167         Don't emit entry-prop-changed for hidden signals from chained query
168         models, as the model will also propagate the parent model's
169         entry-prop-changed signal.  Fixes mysteriously unreported crashes.
171 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
173         * sources/rb-ipod-source.c: (generate_ipod_filename):
174         * lib/rb-cut-and-paste-code.c: (rb_make_valid_utf8):
175         * lib/rb-cut-and-paste-code.h:
176         Move eel_make_valid_utf8 to lib/, make the replacement
177         character a parameter.
179         * rhythmdb/rhythmdb.c: (make_access_failed_error),
180         (rhythmdb_execute_multi_stat_info_cb),
181         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_load):
182         When constructing an error message that includes a URI, make sure the
183         URI is valid utf-8.  Fixes #353588.
185 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
187         * player/rb-recorder-gst.c: (rb_recorder_construct),
188         (acb_wave_time):
189         Add an extra audioconvert element to allow endianness conversion on
190         big-endian machines, and fix a few endianness issues in the .wav
191         reading code.  Fixes #355611.
193 2006-10-09  James Livingston  <doclivingston@gmail.com>
195         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
197         * widgets/eggtrayicon.c: (egg_tray_icon_notify): work around a
198         libnotify 0.3.0 bug, as it doesn't handle escaped messages properly.
199         Fixes #357553.
201 2006-10-09  James Livingston  <doclivingston@gmail.com>
203         patch by: Luca Ferretti  <elle.uca@libero.it>
205         * data/glade/song-info-multiple.glade:
206         * data/glade/song-info.glade: Fix a few HIG issues.
208 2006-10-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
210         * plugins/audioscrobbler/rb-lastfm-source.c:
211         (rb_lastfm_source_class_init):
212         Return TRUE from impl_try_playlist so playback starts in a separate
213         thread.
215 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
217         * shell/main.c: (main):
218         Call bind_textdomain_codeset ("gstreamer-0.10", "UTF-8") so we get
219         UTF-8 GStreamer messages.  Fixes #357973.
221 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
223         * shell/rb-shell.c: (rb_shell_constructor):
224         Remove a line that accidentally slipped in from some other universe.
226 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
228         * plugins/audiocd/rb-audiocd-plugin.c: (_delete_cb):
229         Don't remove sources from the hash table while iterating it on
230         shutdown.  Fixes #359583.
232 2006-10-07  James Livingston  <doclivingston@gmail.com>
234         patch from Alex Lancaster  <alexl@users.sourceforge.net>
236         * shell/rb-shell.c: change the keybinding for "Plugins" to not
237         conflict with others. Fixes #355904
239 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
241         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
242         (rhythmdb_query_model_chain),
243         (rhythmdb_query_model_entry_changed_cb),
244         (rhythmdb_query_model_base_entry_prop_changed),
245         (rhythmdb_query_model_base_entry_removed):
246         For chained models, propagate the parent model's entry-prop-changed
247         signal rather than emitting one from the db entry-changed handler.
248         This ensures that when the change filters the entry out of the parent
249         model, property models attached to the child model get the entry
250         change signal before the post-entry-delete signal, so they can
251         decrement the refcount for the right property value.  Fixes #359083.
253 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
255         * plugins/audioscrobbler/Makefile.am:
256         define NULL
258 2006-10-07  James Livingston  <doclivingston@gmail.com>
260         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
261         (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
262         * plugins/audioscrobbler/rb-lastfm-source.c:
263         (rb_lastfm_source_get_playback_uri): work around GStreamer not support
264         hypens in URI schemes.
266 2006-10-06  William Jon McCann  <mccann@jhu.edu>
268         * plugins/iradio/Makefile.am:
269         * plugins/audioscrobbler/Makefile.am:
270         * plugins/cd-recorder/Makefile.am:
271         Don't clean all plugin_DATA.
272         Fixes #360210
274 2006-10-06  James Livingston  <doclivingston@gmail.com>
276         patch from Matt N  <fisxoj@gmail.com>
278         * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
279         (rb_player_gst_bus_cb):
280         * backends/rb-player.c: (rb_player_interface_init),
281         (_rb_player_emit_tick), (_rb_player_emit_event):
282         * backends/rb-player.h: let the backend emit named "events", for
283         things that the core shouldn't know about.
285         * rhythmdb/rhythmdb.h:
286         * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
287         support for streams containing album metadata.
289         * plugins/audioscrobbler/Makefile.am:
290         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
291         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
292         (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
293         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
294         * plugins/audioscrobbler/rb-lastfm-source.c:
295         * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
296         of last.fm streams. From #313049.
298 2006-10-06  James Livingston  <doclivingston@gmail.com>
300         * plugins/magnatune/magnatune/Makefile.am: add a file I missed
301         committing. Oops.
303 2006-10-06  James Livingston  <doclivingston@gmail.com>
305         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
307         * configure.ac:
308         * data/rhythmbox.schemas:
309         * plugins/Makefile.am:
310         * plugins/magnatune/Makefile.am:
311         * plugins/magnatune/magnatune-loading.glade:
312         * plugins/magnatune/magnatune-prefs.glade:
313         * plugins/magnatune/magnatune-purchase.glade:
314         * plugins/magnatune/magnatune.rb-plugin.desktop.in:
315         * plugins/magnatune/magnatune/BuyAlbumHandler.py:
316         * plugins/magnatune/magnatune/MagnatuneSource.py:
317         * plugins/magnatune/magnatune/TrackListHandler.py:
318         * plugins/magnatune/magnatune/__init__.py:
319         * plugins/magnatune/magnatune_circle_small.png:
320         * plugins/magnatune/magnatune_logo_color_small.png:
321         * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
322         play and download tracks from the MagnaTune online music store. From
323         #345783.
325 2006-10-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
327         * lib/rb-proxy-config.c: (rb_proxy_config_init),
328         (rb_proxy_config_dispose), (rb_proxy_config_finalize),
329         (check_auto_proxy_config), (get_proxy_config):
330         Don't crash when eel_gconf_get_string returns NULL.
331         Fixes #359974.
333 2006-10-04  James Livingston  <doclivingston@gmail.com>
335         patch by: Fryderyk Dziarmagowski  <freetz@gmx.net>
337         * plugins/audiocd/Makefile.am: fix the plugin when linking with
338         --as-needed. Fixes #358730
340 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
342         patch by:  William Jon McCann  <mccann@jhu.edu>
344         * sources/rb-iradio-source.c: (playing_source_changed_cb):
345         Fix some stupidity I introduced that caused crashes on shutdown.
346         Fixes #359181.
348 2006-10-02  William Jon McCann  <mccann@jhu.edu>
350         * plugins/audiocd/Makefile.am:
351         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
352         * plugins/iradio/.cvsignore:
353         * plugins/iradio/Makefile.am:
354         * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
355         (impl_deactivate):
356         * plugins/power-manager/.cvsignore:
357         Install missing iradio ui file.  Don't leak ui filename.
358         Fix iradio install dir. Fix audiocd install dir.
359         Remove unused code from audio cd plugin.
361         Fixes #359170
363 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
365         * sources/rb-ipod-source.c: (impl_move_to_trash):
366         Uncomment rhythmdb_entry_move_to_trash call that I accidentally
367         commented out while fixing bug 355235.  Oops.
369 2006-10-03  James Livingston  <doclivingston@gmail.com>
371         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
372         non-unicode warnings to debug statements, since they can occur with
373         slightly broken files.
375         * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
376         * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
377         iradio plugin is disabled and re-enabled.
379 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
381         * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
382         (rhythmdb_entry_podcast_post_get_type):
383         * rhythmdb/rhythmdb.h:
384         * tests/bench-rhythmdb-load.c: (main):
385         Add definitions for some common extra-metadata fields,
386         remove iradio entry type definition, add the concept of entry type
387         categories, define categories for the core entry types.
388         Categories are used to decide if an entry can be copied to a removable
389         device, if it should be reported to audioscrobbler, etc.
391         * shell/Makefile.am:
392         * shell/rb-shell-player.c: (rb_shell_player_class_init),
393         (rb_shell_player_constructor), (rb_shell_player_init),
394         (rb_shell_player_get_property), (open_location_thread),
395         (rb_shell_player_open_location),
396         (rb_shell_player_sync_with_source),
397         (rb_shell_player_set_playing_source_internal), (tick_cb):
398         * shell/rb-shell.c: (construct_widgets), (construct_sources),
399         (rb_shell_player_elapsed_changed_cb):
400         Remove iradio-specific code, use extra metadata fields for streaming
401         title and artist name.
403         * data/ui/rhythmbox-ui.xml:
404         Add a placeholder for 'new ...' menu items.
406         * Makefile.am:
407         * sources/Makefile.am:
408         * configure.ac:
409         * data/rhythmbox.schemas:
410         * plugins/Makefile.am:
411         * plugins/iradio/Makefile.am:
412         * plugins/iradio/iradio-ui.xml:
413         * plugins/iradio/iradio.rb-plugin.desktop.in:
414         * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
415         (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
416         (rb_iradio_plugin_class_init):
417         iradio plugin, enabled and hidden by default.
419         * plugins/audioscrobbler/rb-audioscrobbler.c:
420         (rb_audioscrobbler_song_changed_cb):
421         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
422         * sources/rb-daap-source.c: (rb_daap_source_new):
423         * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
424         Define entry type categories, and use them where appropriate.
426         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
427         (rb_iradio_source_constructor), (rb_iradio_source_new),
428         (impl_get_status), (impl_want_uri), (buffering_cb),
429         (check_entry_type), (streaming_title_request_cb),
430         (streaming_artist_request_cb), (extra_metadata_gather_cb),
431         (info_available_cb), (playing_entry_changed_cb),
432         (playing_source_changed_cb):
433         Move streaming metadata and buffering handling here from
434         rb-shell-player.c.  Emit extra-metadata notify signals when the streaming
435         title or artist changes, and handle request and gather signals for
436         those.
438         * widgets/rb-header.c: (rb_header_class_init),
439         (rb_header_set_property), (rb_header_get_property),
440         (rb_header_new), (append_and_free), (rb_header_sync):
441         * widgets/rb-header.h:
442         Rework to use streaming artist and title extra-metadata.
443         streaming-artist overrides entry artist, and streaming-title means
444         entry title is a stream name, displayed in brackets.
446         * doc/reference/Makefile.am:
447         * doc/reference/rhythmbox.types:
448         Remove iradio stuff from gtk-doc build.
450         Fixed #347097.
452 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
454         patch mostly by: Ed Catmur  <ed@catmur.co.uk>
456         * bindings/python/rhythmdb.defs:
457         * lib/rb-marshal.list:
458         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
459         (rhythmdb_emit_entry_deleted),
460         (rhythmdb_entry_extra_metadata_accumulator),
461         (rhythmdb_entry_request_extra_metadata),
462         (rhythmdb_emit_entry_extra_metadata_notify),
463         (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
464         * rhythmdb/rhythmdb.h:
465         Add signals for dealing with transient metadata outside the set stored
466         in RhythmDBEntry:
467         - entry_extra_metadata_request returns a value for the requested
468           metadata field
469         - entry_extra_metadata_notify notifies observers of a change to an
470           extra metadata field
471         - entry_extra_metadata_gather returns the values of all extra metadata
472           fields
474         * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
475         (rb_shell_player_extra_metadata_cb):
476         Sync the display on extra metadata changes and emit dbus signals when
477         we can marshal the value.
479         * shell/rb-shell.c: (rb_shell_get_song_properties):
480         Implement rb_shell_song_get_properties using
481         rhythmdb_entry_gather_metadata.
483         * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
484         (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
485         * configure.ac:
486         Add GValue marshaller for python (until bug 351072 is fixed)
488         From #345592.
490 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
492         * configure.ac:
493         * data/rhythmbox.schemas:
494         * plugins/Makefile.am:
495         * plugins/power-manager/Makefile.am:
496         * plugins/power-manager/power-manager.rb-plugin.desktop.in:
497         * plugins/power-manager/rb-power-manager-plugin.c:
498         (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
499         (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
500         (playing_changed_cb), (impl_activate), (impl_deactivate):
501         gnome-power-manager integration: inhibit suspend while playing.
502         Fixes #344979.
504 2006-10-02  James Livingston  <doclivingston@gmail.com>
506         update by: Aloriel  <jorge.gonzalez.gonzalez@hispalinux.es>
507         and Alex Lancaster  <alexl@users.sourceforge.net>
509         * help/C/rhythmbox.xml: fix some mispellings and grammer.
510         Fixes #353143, #353146 and #353147.
512 ============ Version 0.9.6
514 2006-10-01  James Livingston  <doclivingston@gmail.com>
516         * configure.ac: bump version to 0.9.6. enable tag-writing and
517         ipod-writing by default
519         * NEWS: update NEWS
521 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
523         patch by:  William Jon McCann  <mccann@jhu.edu>
525         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
526         Use a local GError in case no error pointer pointer is passed in.
527         From bug #358396.
529 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
531         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
532         Don't reference members of freed structures.
534 2006-09-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
536         patch by:  William Jon McCann  <mccann@jhu.edu>
538         * player/rb-recorder-gst.c: (rb_recorder_burn):
539         Drop GDK lock before entering n-c-b.  Fixes #353894?
541 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
543         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
544         (impl_activate):
545         Handle error/hangup conditions on the LIRC connection.  Fixes #358049.
547 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
549         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
550         Call lirc_init before lirc_readconfig so we don't crash if the user's
551         .lircrc file has any mode sections. Fixes #357419.
553 2006-09-24  James Livingston  <doclivingston@gmail.com>
555         * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
556         if we get called twice, as that can happen. Fixes #357214.
558 2006-09-24  James Livingston  <doclivingston@gmail.com>
560         * backends/rb-encoder.h: add "file access" error
562         * lib/rb-file-helpers.c: (rb_dot_dir):
563         * podcast/rb-podcast-manager.c:
564         (rb_podcast_manager_download_file_info_cb): remove directory creation
565         race condition.
567         * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
568         (create_parent_dirs), (rb_encoder_gst_encode): check result of
569         directory creation. Fixes #347743
571 2006-09-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
573         * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
574         Strip trailing whitespace
576 2006-09-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
578         * rhythmdb/Makefile.am:
579         * rhythmdb/rhythmdb-private.h:
580         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
581         (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
582         * rhythmdb/rhythmdb-tree.h:
583         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
584         (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
585         * rhythmdb/rhythmdb.h:
586         Rather than aborting, show an error and refuse to load the database when
587         it appears to come from the future.  From bug #350304.
589 2006-09-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
591         * bindings/python/rhythmdb.override:
592         Make entry_foreach usable.
594 2006-09-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
596         * sources/rb-podcast-source.c: (rb_podcast_source_init):
597         Scale the icon so it matches the rest of the sources.
598         Fixes #351410.
600 2006-09-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
602         * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
603         (rhythmdb_property_model_set_query_model_internal),
604         (rhythmdb_property_model_row_inserted_cb),
605         (rhythmdb_property_model_prop_changed_cb),
606         (rhythmdb_property_model_entry_removed_cb),
607         (rhythmdb_property_model_delete),
608         (rhythmdb_property_model_perform_sync):
609         Use the hash table to track hidden entries, rather than visible
610         entries.  Cuts memory usage fairly significantly.  From bug #347425.
612 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
614         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
615         Patch from Christian Becke to fix compilation with -O3, bug #355945.
617 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
619         * sources/rb-ipod-source.c: (add_rb_playlist),
620         (impl_move_to_trash), (impl_delete_thyself):
621         Delete ipod playlists when the ipod source is deleted.  Fixes #355235.
623         * sources/rb-sourcelist.c: (rb_sourcelist_remove):
624         Make sure we don't leave the sourcelist thinking a deleted source is
625         still playing.  Fixes nothing.
627 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
629         * shell/rb-shell.c:
630         Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
631         'Music->Import Folder' menu item for better icon theme coverage.
632         Fixes #354575.
634 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
636         * rhythmdb/rhythmdb-private.h:
637         * rhythmdb/rhythmdb.c: (rhythmdb_init),
638         (rhythmdb_start_action_thread), (rhythmdb_finalize),
639         (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
640         (rhythmdb_load), (rhythmdb_save_async):
641         Use a limited thread pool for adding URIs to the database.
642         Fixes #352494.
644 2006-09-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
646         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
647         Do something like the previous change, but for gstreamer 0.10
648         this time.  Oops.  Really fixes #349569.
650 2006-09-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
652         * backends/gstreamer/rb-player-gst.c: (error_cb):
653         Ignore 'internal data flow error' messages if we've already got an
654         error for the file.  Fixes #349569.
656 2006-09-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
658         * shell/rb-shell-clipboard.c:
659         (rb_shell_clipboard_playlist_deleted_cb):
660         Rebuild 'add to playlist' menu before removing actions for deleted
661         playlists, and don't unref the action, as we never had a reference on
662         it to begin with.  Fixes #354599.
664 2006-09-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
666         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
667         (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
668         Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
670 2006-09-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
672         * daapsharing/rb-daap-connection.c: (handle_playlists):
673         Reverse the list of playlists on the DAAP server so it ends up in the
674         right order.  Fixes #353926.
676 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
678         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
679         Fully process each code so the LIRC client returns to its normal state
680         when we're done.  Makes LIRC actually work properly for me.
682 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
684         patch by: Ed Catmur  <ed@catmur.co.uk>
686         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
687         (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
688         Don't show unused GdkWindows in SexyIconEntry.  Fixes #353671.
690 2006-09-02  William Jon McCann  <mccann@jhu.edu>
692         patch by: James Livingston <doclivingston@gmail.com>
694         * configure.ac:
695         * data/rhythmbox.schemas:
696         * metadata/Makefile.am:
697         * plugins/Makefile.am:
698         * plugins/audiocd/.cvsignore:
699         * plugins/audiocd/Makefile.am:
700         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
701         * plugins/audiocd/rb-audiocd-plugin.c:
702         (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
703         (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
704         (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
705         (end_cd_drive_monitor), (begin_cd_drive_monitor),
706         (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
707         (rb_audiocd_plugin_playing_uri_changed_cb),
708         (nautilus_burn_drive_get_device),
709         (rb_audiocd_plugin_source_deleted), (create_source_cb),
710         (impl_activate), (_delete_cb), (impl_deactivate):
711         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
712         (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
713         * shell/main.c: (main):
714         * shell/rb-removable-media-manager.c:
715         (rb_removable_media_manager_finalize),
716         (rb_removable_media_manager_load_media),
717         (rb_removable_media_manager_mount_volume),
718         (rb_removable_media_manager_scan):
719         * sources/Makefile.am:
720         * sources/rb-audiocd-source.c:
721         * sources/rb-audiocd-source.h:
722         Make auto CD support a plugin.
724         Fixes #349415.
726 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
728         * daapsharing/rb-daap-connection.c: (handle_song_listing):
729         Add a final rhythmdb_commit to make sure all songs from the share show
730         up in the daap source.  Fixes #353913.
732 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
734         * sources/rb-sourcelist-model.c:
735         (rb_sourcelist_model_drag_data_received),
736         (rb_sourcelist_model_row_drop_possible):
737         Re-enable dragging of a set of tracks to the source list to create a
738         new static playlist.  Fixes #353893.
740 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
742         * widgets/bacon-volume.c: (cb_button_timeout):
743         Actually drop the GDK lock, rather than returning while holding it.
744         Fixes #353895.
746 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
748         * plugins/generic-player/rb-generic-player-source.c:
749         (rb_generic_player_source_constructor),
750         (rb_generic_player_source_get_device_info), (impl_delete_thyself),
751         (rb_generic_player_source_load_songs), (load_playlist_file),
752         (default_load_playlists), (get_hal_context):
753         Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
754         Fixes #353483.
756 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
758         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
759         Canonicalise URIs received from gnome-vfs file monitor.
760         Fixes #353447.
762 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
764         * help/C/rhythmbox.xml: unbreak help build
765         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
766         Unbuffer the IO channel.  Fixes some weirdness for me.
768 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
770         * help/C/rhythmbox.xml:
771         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
772         (impl_activate), (impl_deactivate):
773         Add 'playpause' LIRC command.
775 2006-08-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
777         * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
778         (rb_source_finalize):
779         Remove idle callbacks in dispose, rather than finalize. Fixes crashes
780         when disconnecting generic audio players.
782 2006-08-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
784         patch by: Paolo Borelli  <pborelli@katamail.com>
786         * plugins/rb-python-plugin.c: (rb_python_object_get_type):
787         Fix a small leak.
789 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
791         * backends/gstreamer/rb-player-gst.c:
792         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
793         Don't actually disable the seek bar for non-seekable songs,
794         because we can't reliably tell yet.
796 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
798         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
799         (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
800         (db_entry_deleted_cb), (rb_daap_share_server_start),
801         (rb_daap_share_server_stop):
802         * rhythmdb/rhythmdb-private.h:
803         * rhythmdb/rhythmdb-tree.c: (save_entry):
804         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
805         (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
806         (rhythmdb_entry_get_ulong):
807         * rhythmdb/rhythmdb.h:
808         Give db entries a numeric ID property, replacing the daap server's
809         entry->id map.  From #347665.
811 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
813         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
814         * widgets/rb-header.c: (rb_header_class_init),
815         (rb_header_set_property), (rb_header_get_property),
816         (rb_header_set_playing_entry), (rb_header_sync),
817         (rb_header_sync_time):
818         * widgets/rb-header.h:
819         Add a 'seekable' property on RBHeader, and use it to make the seek bar
820         insensitive when the player backend tells us we can't seek in the
821         current song.  From #330410.
823 2006-08-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
825         * widgets/rb-song-info.c: (rb_song_info_update_buttons):
826         Don't try to unref previous/next entries if they aren't there.
827         Fixes #351806.
829 2006-08-15  James Livingston  <doclivingston@gmail.com>
831         * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
832         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
833         mountpoint into a RBRefString and compare equality of those, rather
834         than doign lots of strcmp()s.
836         * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
837         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
838         status notification as well as the visibility update in an idle
839         callback. Makes it take much less time to update after a volume
840         mount/unmount event.
842 2006-08-15  James Livingston  <doclivingston@gmail.com>
844         patch by: Christian Becke  <christianbecke@web.de>
846         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
847         multiple selections in the Import Folder dialog. Fixes #351414.
849 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
851         * shell/rb-shell.c: (construct_widgets):
852         * shell/rb-statusbar.c: (rb_statusbar_class_init),
853         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
854         (rb_statusbar_get_property), (rb_statusbar_new):
855         * shell/rb-statusbar.h:
856         Use the connect-proxy signal from the UI manager, which covers all
857         action groups, rather than just one.  Fixes #351280.
859 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
861         * widgets/rb-library-browser.c: (rebuild_child_model):
862         Fix query model reference counts (bug #349601).
864 2006-08-15  James Livingston  <doclivingston@gmail.com>
866         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
867         Error signals be non-recursive. Fixes a highly-unlikely issue that
868         could have caused #322972.
870 2006-08-14  James Livingston  <doclivingston@gmail.com>
872         * sources/rb-auto-playlist-source.c:
873         (rb_auto_playlist_source_init):
874         * sources/rb-static-playlist-source.c:
875         (rb_static_playlist_source_init):
877 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
879         * sources/rb-browser-source.c:
880         * sources/rb-import-errors-source.c:
881         * sources/rb-iradio-source.c:
882         * sources/rb-library-source.c:
883         * sources/rb-missing-files-source.c:
884         * sources/rb-play-queue-source.c:
885         * sources/rb-playlist-source.c:
886         * sources/rb-podcast-source.c:
887         * sources/rb-source.c:
888         Make entry-type a property on RBSource, rather than on most of its
889         subclasses.  Fixes #347288.
891 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
893         * remote/dbus/rb-client.c: (parse_pattern),
894         (create_rb_shell_proxies), (main):
895         Actually implement %ag and %aG (genre) for --print-playing-format
897 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
899         * lib/rb-debug.c: (rb_debug_real):
900         No point allocating a buffer for the timestamp when we can just put it
901         on the stack.
903 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
905         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
906         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
908 2006-08-11  James Livingston  <doclivingston@gmail.com>
910         * podcast/rb-podcast-manager.c:
911         (rb_podcast_manager_update_synctime): fix accidental commit in the
912         last, which caused a warning.
914 2006-08-11  James Livingston  <doclivingston@gmail.com>
916         * data/rhythmbox.schemas:
917         * podcast/rb-podcast-manager.c:
918         (rb_podcast_manager_update_synctime): change the schema's
919         update-inteval value from 0 to 1, which causes it to update on
920         startup, rather than never. Should fixs #343818.
922 2006-08-11  James Livingston  <doclivingston@gmail.com>
924         * configure.ac:
925         * data/Makefile.am:
926         - data/rhythmbox.desktop.in:
927         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
928         the @VERSION@ can be substituted in. Fix some issues with newer
929         bug-buddy versions. Fixes #348853.
931 2006-08-10  William Jon McCann  <mccann@jhu.edu>
933         * data/rhythmbox.schemas:
934         * plugins/Makefile.am:
935         * plugins/artdisplay/Makefile.am:
936         * plugins/audioscrobbler/Makefile.am:
937         * plugins/cd-recorder/Makefile.am:
938         * plugins/generic-player/Makefile.am:
939         * plugins/ipod/Makefile.am:
940         * plugins/lirc/Makefile.am:
941         * plugins/lyrics/Makefile.am:
942         * plugins/pythonconsole/Makefile.am:
943         * plugins/rb-module.c:
944         * plugins/rb-module.h:
945         * plugins/rb-plugin-manager.c: (configure_button_cb),
946         (plugin_manager_view_cell_cb), (cursor_changed_cb),
947         (plugin_manager_populate_lists), (plugin_manager_set_active),
948         (plugin_manager_toggle_active),
949         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
950         (rb_plugin_manager_finalize):
951         * plugins/rb-plugin-manager.h:
952         * plugins/rb-plugin.c: (rb_get_plugin_paths),
953         (rb_plugin_find_file):
954         * plugins/rb-plugin.h:
955         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
956         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
957         (rb_plugins_engine_init), (rb_plugin_info_free),
958         (load_plugin_module), (rb_plugins_engine_activate_plugin),
959         (rb_plugins_engine_deactivate_plugin),
960         (rb_plugins_engine_plugin_is_active),
961         (rb_plugins_engine_plugin_is_visible),
962         (rb_plugins_engine_plugin_is_configurable),
963         (rb_plugins_engine_configure_plugin),
964         (rb_plugins_engine_get_plugin_name),
965         (rb_plugins_engine_get_plugin_description),
966         (rb_plugins_engine_get_plugin_authors),
967         (rb_plugins_engine_get_plugin_website),
968         (rb_plugins_engine_get_plugin_copyright),
969         (rb_plugins_engine_get_plugin_icon):
970         * plugins/rb-plugins-engine.h:
971         * plugins/rb-python-module.c: (rb_python_module_init_python),
972         (rb_python_module_load), (rb_python_module_unload),
973         (rb_python_module_class_init), (rb_python_module_new),
974         (finalise_collect_cb), (rb_python_shutdown):
975         * plugins/rb-python-module.h:
976         * plugins/rb-python-plugin.c: (call_python_method),
977         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
978         (impl_is_configurable), (rb_python_object_get_type):
979         * plugins/rb-python-plugin.h:
980         * plugins/rb/Makefile.am:
982         Use TRUE/FALSE in schemas to make it easier to read.  Remove
983         spurious whitespace.  Don't use libgnome explicitly.  Replace the
984         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
985         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
986         special case loading of dirs.  Install plugins to subdirectors of
987         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
988         not DATADIR.  Fixes #350352
990 2006-08-10  James Livingston  <doclivingston@gmail.com>
992         * daapsharing/rb-daap-connection.c: (connection_connected),
993         (connection_disconnected), (connection_operation_done):
994         * daapsharing/rb-daap-share.c: (name_collision_cb):
995         * plugins/generic-player/rb-generic-player-source.c:
996         (rb_generic_player_source_load_playlists):
997         * podcast/rb-podcast-manager.c:
998         (rb_podcast_manager_download_entry),
999         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
1000         (end_job), (rb_podcast_manager_event_loop):
1001         * rhythmdb/rhythmdb-property-model.c:
1002         (rhythmdb_property_model_perform_sync):
1003         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
1004         (rhythmdb_query_model_process_update), (idle_process_update),
1005         (rhythmdb_query_model_reapply_query_cb):
1006         * shell/rb-play-order.c: (sync_playing_entry_cb):
1007         * shell/rb-removable-media-manager.c:
1008         (rb_removable_media_manager_load_media):
1009         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
1010         (rb_shell_clipboard_sync),
1011         (rb_shell_clipboard_entryview_changed_cb),
1012         (rb_shell_clipboard_entries_changed_cb),
1013         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
1014         (rebuild_playlist_menu_idle),
1015         (rb_shell_clipboard_playlist_added_cb):
1016         * shell/rb-shell-player.c: (notify_playing_idle),
1017         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
1018         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
1019         (rb_shell_quit):
1020         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
1021         * sources/rb-library-source.c: (add_child_sources_idle):
1022         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
1023         (burn_cd_idle):
1024         * sources/rb-source.c: (update_visibility_idle):
1025         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
1026         (cb_button_press):
1027         * widgets/rb-druid.c: (idle_set_sensitive):
1028         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
1029         take the GDK lock when we should be, from #348588
1031 2006-08-09  James Livingston  <doclivingston@gmail.com>
1033         * rhythmdb/rhythmdb-property-model.c:
1034         (rhythmdb_property_model_get_path),
1035         (rhythmdb_property_model_get_value),
1036         (rhythmdb_property_model_iter_next): don't attempt to verify the
1037         iterator if it's the All value, since it isn't valid. Fixes a
1038         potential crasher.
1040 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1042         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
1043         (rb_podcast_manager_download_file_info_cb),
1044         (rb_podcast_manager_abort_download), (download_info_free),
1045         (download_info_new):
1046         Use gnome_vfs_async_get_file_info to figure out the local filename for
1047         a podcast episode, so we get the filename from the target of any
1048         redirects, rather than the source.  When creating the GnomeVFSURI, hide
1049         the query string, then append it later, to stop gnome-vfs from
1050         converting 'http://' to 'http:/'.  If the local filename ends with the
1051         query string, remove it.  Fixes #330766 and #321991.
1053 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1055         * sources/rb-library-source.c: (impl_want_uri):
1056         * sources/rb-static-playlist-source.c: (impl_want_uri):
1057         Treat sftp:// URIs as likely indicators of songness.
1059 2006-08-07  James Livingston  <doclivingston@gmail.com>
1061         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
1062         remote tracks with GStreamer 0.10, and remember their visibility like
1063         local ones.
1065 2006-08-07  James Livingston  <doclivingston@gmail.com>
1067         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
1068         apparently it's a borrowed reference. Should fix #347072.
1070 2006-08-06  James Livingston  <doclivingston@gmail.com>
1072         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
1073         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1074         (rb_shuffle_play_order_get_previous),
1075         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
1076         (remove_from_history), (add_randomly_to_history),
1077         (rb_shuffle_sync_history_with_query_model),
1078         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
1079         (query_model_and_history_contents_match): remove the tentatative
1080         history stuff, which is from older code, like we did for -random a few
1081         weeks ago.
1083 2006-08-06  James Livingston  <doclivingston@gmail.com>
1085         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
1086         (rb_queue_play_order_get_previous):
1087         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
1088         (rb_random_play_order_go_next),
1089         (rb_random_play_order_get_previous), (rb_random_db_changed):
1090         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1091         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1092         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
1093         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
1094         (rb_shuffle_entry_removed),
1095         (query_model_and_history_contents_match):
1096         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
1097         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1098         (default_has_next), (default_has_previous),
1099         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
1100         various play orders, after reviewing the code. Should fix #349601.
1102 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1104         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
1105         Pass the items_per_notification parameter to
1106         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
1107         with some versions of python.
1109 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1111         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
1112         Don't try to draw the icon if the drawable area is too small.
1113         Fixes #349838.
1115 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
1117         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
1119         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
1121 2006-08-05  James Livingston  <doclivingston@gmail.com>
1123         * configure.ac: tell libtool not to check for C++/fortran/ etc
1124         compilers
1126         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
1127         watch, to fix some gconf warnings.
1129 2006-08-04  James Livingston  <doclivingston@gmail.com>
1131         patch by: William Jon McCann  <mccann@jhu.edu>
1133         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
1135 2006-08-04  James Livingston  <doclivingston@gmail.com>
1137         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
1138         actually fix #349722 this time
1140 2006-08-04  James Livingston  <doclivingston@gmail.com>
1142         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
1143         to seach for local art from http:// URIs, or those gnome-vfs doesn't
1144         know about. Fixes #348571.
1146 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
1148         various fixes for valgrind complaints:
1149         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
1150         (init_rb_tree_dnd_data):
1151           free the associated target list, too
1152         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
1153           initialize allocation.{x,y,width,height} correctly
1154         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
1155         (rb_entry_view_constructor):
1156           free strings when no longer needed
1158 2006-08-03  James Livingston  <doclivingston@gmail.com>
1160         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
1161         real GtkTreeModel not the filter. Fixes #349722
1163 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1165         * backends/gstreamer/rb-player-gst.c:
1166         Only use DAAP seek hacks for GStreamer 0.8 builds.
1168         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
1169         (rb_daap_src_open):
1170         * daapsharing/rb-daap-src.h:
1171         Implement normal GStreamer seeking for GStreamer 0.10 builds.
1173         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1174         (rb_daap_source_get_headers):
1175         * sources/rb-daap-source.h:
1176         Reimplement rb_daap_source_get_headers for the case where we've
1177         already got the byte offset.  Add a small hack to
1178         rb_daap_source_class_init to prevent the linker from dropping
1179         rb-daap-src.o entirely.
1181         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
1183 2006-08-02  James Livingston  <doclivingston@gmail.com>
1185         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
1186         (handle_song_listing), (handle_playlist_entries),
1187         (rb_daap_connection_dispose):
1188         * sources/rb-daap-source.c: (_add_location_to_playlist),
1189         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
1190         for playlist URIs, not pointless duplicate strings. From #347425.
1192 2006-08-02  James Livingston  <doclivingston@gmail.com>
1194         * data/rhythmbox.schemas:
1195         * lib/rb-preferences.h:
1196         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
1197         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
1198         (plugin_manager_set_active), (plugin_manager_toggle_active),
1199         (plugin_manager_get_selected_plugin), (name_search_cb),
1200         (plugin_manager_construct_tree), (rb_plugin_manager_new),
1201         (rb_plugin_manager_finalize):
1202         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
1203         (rb_plugins_engine_load_all), (rb_plugin_info_free),
1204         (rb_plugins_engine_plugin_is_visible),
1205         (rb_plugins_engine_plugin_visible_cb):
1206         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
1207         per-user plugins, and 2) hide plugins from the manager UI. From #349395
1209 2006-08-02  James Livingston  <doclivingston@gmail.com>
1211         * sources/rb-sourcelist-model.c:
1212         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
1213         drop on a source. Fixes #349580.
1215 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1217         * configure.ac:
1218         * daapsharing/rb-daap-dialog.c:
1219         * daapsharing/rb-daap-dialog.h:
1220         * shell/Makefile.am:
1221         * sources/Makefile.am:
1222         * sources/rb-daap-source.c: (connection_auth_cb),
1223         (rb_daap_source_connection_cb), (rb_daap_source_activate):
1224         Add gnome-keyring support for DAAP passwords and use
1225         gnome-password-dialog instead of our own.  
1226         Patch mostly by James Livingston.  Fixes bug #330346.
1228 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1230         * shell/rb-shell-player.c:
1231         (rb_shell_player_set_playing_source_internal),
1232         (rb_shell_player_sync_with_selected_source):
1233         Remove call to rb_source_have_url, as we never did anything with the
1234         result.
1236         * sources/rb-browser-source.c: (rb_browser_source_class_init):
1237         * sources/rb-import-errors-source.c:
1238         (rb_import_errors_source_class_init):
1239         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1240         (impl_song_properties), (impl_want_uri), (impl_add_uri):
1241         * sources/rb-library-source.c: (rb_library_source_class_init),
1242         (impl_want_uri), (impl_add_uri):
1243         * sources/rb-missing-files-source.c:
1244         (rb_missing_files_source_class_init):
1245         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
1246         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1247         (impl_want_uri), (impl_add_uri):
1248         * sources/rb-source.c: (rb_source_class_init),
1249         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
1250         * sources/rb-source.h:
1251         * sources/rb-static-playlist-source.c:
1252         (rb_static_playlist_source_class_init), (search_action_changed),
1253         (impl_want_uri):
1254         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
1255         When adding a URI, want_uri gets called for each source; the one that
1256         wants it most gets the URI passed to its add_uri method.
1257         
1258         * shell/rb-shell.h:
1259         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
1260         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
1261         (handle_playlist_entry_cb), (rb_shell_load_uri):
1262         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
1263         Use want_uri and add_uri to simplify and make generic
1264         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
1266         If a source that returns TRUE from try_playlist wants all the URIs in
1267         the playlist, give it the playlist URI instead.  This retains the
1268         existing behaviour for adding iradio playlists.
1270         * bindings/python/rb.defs: Update for above changes.
1272         From bug #347097.
1274 2006-07-31  James Livingston  <doclivingston@gmail.com>
1276         * data/Makefile.am:
1277         * data/generate-keys.sh: fix the build I broke with the last commit.
1278         Oops.
1280 2006-07-31  James Livingston  <doclivingston@gmail.com>
1282         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
1283         in a long time. Fixes #349179.
1285 2006-07-30  James Livingston  <doclivingston@gmail.com>
1287         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
1288         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1289         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
1291 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1293         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1294         Don't tell the browser the query is still pending when doing a subset
1295         search.  Fixes #348617 again.
1297 2006-07-30  James Livingston  <doclivingston@gmail.com>
1299         * bindings/python/rb.override: remove an extraneous _wrap_ from the
1300         override definition. Fixes #348893.
1302 2006-07-30  James Livingston  <doclivingston@gmail.com>
1304         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
1305         rb_error_dialog, as it's above this in the stack.
1307         * lib/rb-util.c: (rb_gvalue_compare):
1308         * lib/rb-util.h: change the return type to int, as we're returning
1309         -1/0/1
1311         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
1312         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1313         (rb_query_creator_set_sorting): minor leak fixes
1315 2006-07-28  James Livingston  <doclivingston@gmail.com>
1317         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1318         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
1319         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
1320         (get_or_create_genre), (remove_entry_from_album),
1321         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1322         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
1323         (rhythmdb_tree_entry_lookup_by_location),
1324         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1325         (rhythmdb_hash_tree_foreach),
1326         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
1327         threadsafe. Fix a nasty problem if the _foreach callback function
1328         caused the addition/removal of entries.
1330 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1332         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
1333         Clear selection before changing our idea of the model.  Fixes crashes
1334         on model changes while playing.
1336 2006-07-27  James Livingston  <doclivingston@gmail.com>
1338         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
1339         a missing rb_refstring_unref.
1341         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1342         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
1343         oops. should hopefully fix the crash reported on #347425.
1345 2006-07-27  James Livingston  <doclivingston@gmail.com>
1347         * backends/gstreamer/rb-encoder-gst.c:
1348         (get_profile_from_mime_type): fix encoding error issue, from #310774.
1350         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
1351         thread-safety issue.
1353 2006-07-27  James Livingston  <doclivingston@gmail.com>
1355         * rhythmdb/rb-refstring.c: (rb_refstring_find):
1356         * rhythmdb/rb-refstring.h: add a new function which returns the
1357         RBRefString that matches a string, but never creates a new one.
1359         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
1360         (monitor_entry_file), (rhythmdb_check_changed_file),
1361         (rhythmdb_directory_change_cb):
1362         * rhythmdb/rhythmdb-private.h:
1363         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1364         (unparent_entries), (free_unknown_entries),
1365         (rhythmdb_tree_parser_start_element),
1366         (rhythmdb_tree_parser_end_element), (save_entry),
1367         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
1368         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1369         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
1370         (rhythmdb_tree_entry_type_registered):
1371         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
1372         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
1373         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
1374         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1375         (rhythmdb_process_metadata_load),
1376         (rhythmdb_process_file_created_or_modified),
1377         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
1378         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
1379         (action_thread_main), (rhythmdb_entry_set_internal),
1380         (rhythmdb_entry_move_to_trash_set_error),
1381         (rhythmdb_entry_move_to_trash),
1382         (rhythmdb_entry_lookup_by_location),
1383         (rhythmdb_entry_lookup_by_location_refstring),
1384         (default_sync_metadata), (rhythmdb_entry_get_string),
1385         (rhythmdb_entry_get_refstring):
1386         * rhythmdb/rhythmdb.h:
1387         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
1388         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1389         (rb_playlist_source_row_deleted),
1390         (rb_playlist_source_entry_added_cb),
1391         (rb_playlist_source_location_in_map),
1392         (rb_playlist_source_add_to_map): Make the LOCATION field of
1393         RhythmDBEntry be a RBRefString instead, which reduces some of the
1394         memory-fragmentation on startup and saves RBStaticPlaylistSource
1395         duplicating all the strings.
1397 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1399         * rhythmdb/rhythmdb-query-model.c:
1400         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
1401         * rhythmdb/rhythmdb-query-model.h:
1402         Add function to copy contents from one query model to another,
1403         filtered by the destination model's query.
1405         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1406         Use the above to create a new query model for subset searches, rather
1407         than filtering the existing model. Fixes #348617.
1409 2006-07-25  James Livingston  <doclivingston@gmail.com>
1411         * rhythmdb/rhythmdb-query-model.c:
1412         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
1413         lost from static playlists. Yet again. Fixes #323095.
1415         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
1416         case for the above, so that we should know if a change will break it
1417         again.
1419 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1421         * data/rhythmbox.schemas: Fix for last commit.
1423         * podcast/rb-podcast-manager.c:
1424         (rb_podcast_manager_download_entry),
1425         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
1426         (rb_podcast_manager_db_entry_deleted_cb):
1427         * rhythmdb/rhythmdb-property-model.c:
1428         (rhythmdb_property_model_set_query_model_internal),
1429         (rhythmdb_property_model_set_property),
1430         (rhythmdb_property_model_finalize),
1431         (rhythmdb_property_model_drag_data_get):
1432         * rhythmdb/rhythmdb-query-model.c:
1433         (rhythmdb_query_model_set_query_internal),
1434         (rhythmdb_query_model_set_property),
1435         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
1436         * rhythmdb/rhythmdb-query-model.h:
1437         * sources/rb-browser-source.c: (rb_browser_source_dispose),
1438         (rb_browser_source_do_query):
1439         * sources/rb-import-errors-source.c:
1440         (rb_import_errors_source_constructor):
1441         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1442         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
1443         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
1444         (impl_search), (impl_get_status),
1445         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
1446         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
1447         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
1448         * sources/rb-missing-files-source.c:
1449         (rb_missing_files_source_constructor),
1450         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
1451         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
1452         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1453         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
1454         (rb_playlist_source_save_playlist),
1455         (rb_playlist_source_new_from_xml),
1456         (rb_playlist_source_save_to_xml),
1457         (rb_playlist_source_setup_entry_view),
1458         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
1459         (rb_playlist_source_get_query_model),
1460         (rb_playlist_source_mark_dirty),
1461         (rb_playlist_source_location_in_map),
1462         (rb_playlist_source_add_to_map):
1463         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
1464         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
1465         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
1466         (impl_delete), (rb_podcast_source_state_prefs_sync),
1467         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
1468         (impl_get_config_widget), (rb_podcast_source_add_feed),
1469         (rb_podcast_source_cmd_download_post),
1470         (rb_podcast_source_cmd_cancel_download),
1471         (rb_podcast_source_cmd_delete_feed),
1472         (rb_podcast_source_cmd_update_feed),
1473         (rb_podcast_source_cmd_update_all),
1474         (rb_podcast_source_cb_interval_changed_cb),
1475         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
1476         (rb_podcast_source_entry_activated_cb):
1477         * sources/rb-source.c: (rb_source_finalize),
1478         (rb_source_set_query_model_internal), (rb_source_set_property),
1479         (default_get_status):
1480         * sources/rb-static-playlist-source.c:
1481         (rb_static_playlist_source_dispose),
1482         (rb_static_playlist_source_finalize),
1483         (rb_static_playlist_source_constructor),
1484         (rb_static_playlist_source_do_query):
1485         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
1486         (rb_entry_view_set_shell_player_internal),
1487         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
1488         (rb_entry_view_set_model), (rb_entry_view_append_column),
1489         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
1490         (rb_entry_view_set_state):
1491         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
1492         (rb_library_browser_finalize), (rb_library_browser_new),
1493         (update_browser_property_visibilty), (view_selection_reset_cb),
1494         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
1495         (restore_selection), (rebuild_child_model),
1496         (rb_library_browser_set_selection), (rb_library_browser_set_model):
1497         * widgets/rb-property-view.c:
1498         (rb_property_view_set_model_internal),
1499         (rb_property_view_set_selection_mode), (rb_property_view_reset),
1500         (rb_property_view_get_model), (rb_property_view_set_model),
1501         (rb_property_view_get_num_properties),
1502         (rb_property_view_set_selection),
1503         (rb_property_view_append_column_custom),
1504         (rb_property_view_set_search_func):
1505         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
1506         From #347446
1508 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1510         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
1511         Work around a small n-c-b API change.
1513 2006-07-25  James Livingston  <doclivingston@gmail.com>
1515         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
1517         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
1518         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
1519         aborting entry-emission on finalise
1521 2006-07-25  James Livingston  <doclivingston@gmail.com>
1523         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
1524         warning when entry is NULL.
1526 2006-07-25  James Livingston  <doclivingston@gmail.com>
1528         * help/sv/.cvsignore:
1529         * lib/.cvsignore:
1530         * plugins/generic-player/.cvsignore:
1531         * remote/.cvsignore:
1532         * remote/dbus/.cvsignore:
1533         * shell/.cvsignore:
1534         * tests/.cvsignore: more .cvsignore updates
1536 2006-07-24  James Livingston  <doclivingston@gmail.com>
1538         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
1539         (transparent_expose_event), (make_transparent_again),
1540         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
1541         apply a patch for EggTrayIcon so that it handled transparent panels
1542         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
1543         Fixes #348208.
1545 2006-07-24  James Livingston  <doclivingston@gmail.com>
1547         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
1548         queries rather than taking ownership when parsing a subquery. Fixed a
1549         crash exposed by the recent leak fixes.
1551         * doc/reference/tmpl/disclosure-widget.sgml:
1552         * doc/reference/tmpl/rb-debug.sgml:
1553         * doc/reference/tmpl/rb-metadata.sgml:
1554         * doc/reference/tmpl/rb-play-order.sgml:
1555         * doc/reference/tmpl/rb-playlist-manager.sgml:
1556         * doc/reference/tmpl/rb-playlist-source.sgml:
1557         * doc/reference/tmpl/rb-shell-player.sgml:
1558         * doc/reference/tmpl/rb-shell.sgml:
1559         * doc/reference/tmpl/rb-song-display-box.sgml:
1560         * doc/reference/tmpl/rhythmbox-unused.sgml:
1561         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
1563 2006-07-24  James Livingston  <doclivingston@gmail.com>
1565         * lib/.cvsignore:
1566         * plugins/artdisplay/.cvsignore:
1567         * plugins/artdisplay/artdisplay/.cvsignore:
1568         * plugins/lyrics/.cvsignore:
1569         * plugins/pythonconsole/.cvsignore:
1570         * plugins/rb/.cvsignore: add/update various .cvsignore files
1572 2006-07-24  James Livingston  <doclivingston@gmail.com>
1574         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1575         (rb_refstring_ref): don't emit critical warnings when the refstring
1576         is NULL, as that happens often for podcast metadata.
1578         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
1579         missing rhythmdb_entry_ref call
1581 2006-07-23  William Jon McCann  <mccann@jhu.edu>
1583         * bindings/python/rb.override:
1584         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
1585         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1586         (playlist_row_inserted_cb):
1587         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
1588         * plugins/rb-plugin-manager.c:
1589         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
1590         (rb_podcast_manager_copy_post),
1591         (rb_podcast_manager_db_entry_deleted_cb),
1592         (rb_podcast_manager_insert_feed):
1593         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1594         (rb_refstring_ref), (rb_refstring_get_sort_key):
1595         * rhythmdb/rhythmdb-private.h:
1596         * rhythmdb/rhythmdb-property-model.c:
1597         (rhythmdb_property_model_set_property),
1598         (rhythmdb_property_model_get_property),
1599         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
1600         (rhythmdb_property_model_row_inserted_cb),
1601         (rhythmdb_property_model_prop_changed_cb),
1602         (rhythmdb_property_model_compare),
1603         (rhythmdb_property_model_insert),
1604         (rhythmdb_property_model_iter_from_string),
1605         (rhythmdb_property_model_get_column_type),
1606         (rhythmdb_property_model_get_iter),
1607         (rhythmdb_property_model_get_value),
1608         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
1609         (rhythmdb_property_model_enable_drag):
1610         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
1611         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
1612         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
1613         (rhythmdb_query_model_chain),
1614         (rhythmdb_query_model_entry_added_cb),
1615         (rhythmdb_query_model_entry_changed_cb),
1616         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
1617         (rhythmdb_query_model_add_entry),
1618         (rhythmdb_query_model_insert_into_main_list),
1619         (rhythmdb_query_model_insert_into_limited_list),
1620         (rhythmdb_query_model_remove_from_main_list),
1621         (rhythmdb_query_model_remove_from_limited_list),
1622         (rhythmdb_query_model_update_limited_entries),
1623         (rhythmdb_query_model_emit_reorder),
1624         (rhythmdb_query_model_do_reorder),
1625         (rhythmdb_query_model_do_insert),
1626         (rhythmdb_query_model_move_entry),
1627         (rhythmdb_query_model_remove_entry),
1628         (rhythmdb_query_model_entry_to_iter),
1629         (rhythmdb_query_model_iter_to_entry),
1630         (rhythmdb_query_model_get_previous_from_entry),
1631         (rhythmdb_query_model_row_draggable),
1632         (rhythmdb_query_model_drag_data_delete),
1633         (rhythmdb_query_model_drag_data_get),
1634         (rhythmdb_query_model_drag_data_received),
1635         (rhythmdb_query_model_row_drop_possible),
1636         (rhythmdb_query_model_row_drop_position),
1637         (rhythmdb_query_model_add_results),
1638         (rhythmdb_query_model_query_complete),
1639         (rhythmdb_query_model_get_column_type),
1640         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
1641         (rhythmdb_query_model_iter_nth_child),
1642         (apply_updated_entry_sequence),
1643         (rhythmdb_query_model_child_index_to_base_index),
1644         (rhythmdb_query_model_get_entry_index),
1645         (rhythmdb_query_model_base_row_inserted),
1646         (rhythmdb_query_model_base_row_deleted),
1647         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
1648         (rhythmdb_query_model_location_sort_func),
1649         (rhythmdb_query_model_title_sort_func),
1650         (rhythmdb_query_model_album_sort_func),
1651         (rhythmdb_query_model_artist_sort_func),
1652         (rhythmdb_query_model_track_sort_func),
1653         (rhythmdb_query_model_double_ceiling_sort_func),
1654         (rhythmdb_query_model_ulong_sort_func),
1655         (rhythmdb_query_model_date_sort_func),
1656         (rhythmdb_query_model_string_sort_func),
1657         (rhythmdb_query_model_within_limit):
1658         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
1659         (rhythmdb_tree_parser_start_element),
1660         (rhythmdb_tree_parser_end_element),
1661         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
1662         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
1663         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
1664         (save_entry_uint64), (save_entry_double), (save_entry),
1665         (set_entry_album), (rhythmdb_tree_entry_new),
1666         (get_genres_hash_for_type), (get_or_create_genre),
1667         (get_or_create_artist), (get_or_create_album), (remove_child),
1668         (remove_entry_from_album), (rhythmdb_tree_entry_set),
1669         (rhythmdb_tree_entry_delete), (remove_one_song),
1670         (rhythmdb_tree_entry_delete_by_type),
1671         (rhythmdb_tree_evaluate_query), (search_match_properties),
1672         (evaluate_conjunctive_subquery), (do_conjunction),
1673         (conjunctive_query_songs), (clone_remove_ptr_array_index),
1674         (conjunctive_query_albums), (conjunctive_query_artists),
1675         (conjunctive_query_genre), (conjunctive_query),
1676         (split_query_by_disjunctions), (do_query_recurse),
1677         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
1678         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1679         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
1680         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
1681         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
1682         (extract_gtype_from_enum_entry),
1683         (extract_nice_name_from_enum_entry), (rhythmdb_init),
1684         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
1685         (rhythmdb_event_free), (rhythmdb_finalize),
1686         (rhythmdb_set_property), (rhythmdb_get_property),
1687         (rhythmdb_thread_create), (free_entry_changes),
1688         (emit_entry_changed), (sync_entry_changed),
1689         (process_added_entries_cb), (process_deleted_entries_cb),
1690         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
1691         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
1692         (rhythmdb_entry_insert), (rhythmdb_entry_new),
1693         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
1694         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
1695         (rhythmdb_entry_is_editable), (set_props_from_metadata),
1696         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1697         (rhythmdb_process_metadata_load),
1698         (rhythmdb_process_file_created_or_modified),
1699         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
1700         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
1701         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
1702         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
1703         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
1704         (record_entry_change), (rhythmdb_entry_set_internal),
1705         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
1706         (rhythmdb_entry_move_to_trash_cb),
1707         (rhythmdb_entry_move_to_trash_set_error),
1708         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
1709         (rhythmdb_nice_elt_name_from_propid),
1710         (rhythmdb_propid_from_nice_elt_name),
1711         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
1712         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
1713         (rhythmdb_compute_status_normal), (default_sync_metadata),
1714         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
1715         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
1716         (podcast_get_playback_uri), (podcast_data_destroy),
1717         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
1718         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
1719         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
1720         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
1721         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
1722         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
1723         * rhythmdb/rhythmdb.h:
1724         * shell/rb-play-order-linear-loop.c:
1725         (rb_linear_play_order_loop_get_next),
1726         (rb_linear_play_order_loop_get_previous):
1727         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
1728         (rb_linear_play_order_get_previous):
1729         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
1730         * shell/rb-play-order-random.c: (get_query_model_contents):
1731         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
1732         (get_query_model_contents):
1733         * shell/rb-play-order.c: (rb_play_order_constructor),
1734         (rb_play_order_finalize),
1735         (rb_play_order_set_playing_entry_internal),
1736         (rb_play_order_set_property), (rb_play_order_new),
1737         (rb_play_order_get_player), (rb_play_order_get_source),
1738         (rb_play_order_get_db), (rb_play_order_get_query_model),
1739         (rb_play_order_player_is_playing),
1740         (rb_play_order_set_playing_entry),
1741         (rb_play_order_get_playing_entry),
1742         (rb_play_order_playing_source_changed),
1743         (rb_play_order_query_model_changed),
1744         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1745         (default_has_next), (default_has_previous),
1746         (sync_playing_entry_cb), (default_playing_entry_removed),
1747         (rb_play_order_has_next), (rb_play_order_get_next),
1748         (rb_play_order_go_next), (rb_play_order_has_previous),
1749         (rb_play_order_get_previous), (rb_play_order_go_previous),
1750         (rb_play_order_model_not_empty),
1751         (rb_play_order_update_have_next_previous):
1752         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
1753         (rb_playlist_manager_save_playlists),
1754         (rb_playlist_manager_set_automatic_playlist),
1755         (rb_playlist_manager_cmd_edit_automatic_playlist),
1756         (_queue_track_cb), (rb_playlist_manager_get_playlists),
1757         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
1758         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
1759         * shell/rb-shell-player.c: (rb_shell_player_constructor),
1760         (volume_pre_unmount_cb), (reemit_playing_signal),
1761         (notify_playing_idle), (rb_shell_player_open_playlist_url),
1762         (rb_shell_player_handle_eos_unlocked),
1763         (rb_shell_player_handle_eos), (rb_shell_player_init),
1764         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
1765         (playlist_entry_cb), (rb_shell_player_open_entry),
1766         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
1767         (rb_shell_player_set_play_order),
1768         (rb_shell_player_set_playback_state),
1769         (rb_shell_player_sync_play_order),
1770         (rb_shell_player_play_order_update_cb),
1771         (rb_shell_player_jump_to_current), (swap_playing_source),
1772         (rb_shell_player_do_previous), (rb_shell_player_do_next),
1773         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
1774         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
1775         (rb_shell_player_entry_activated_cb),
1776         (rb_shell_player_property_row_activated_cb),
1777         (rb_shell_player_entry_changed_cb),
1778         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
1779         (rb_shell_player_pause),
1780         (rb_shell_player_get_playing_song_duration),
1781         (rb_shell_player_error), (error_cb), (tick_cb),
1782         (info_available_cb), (buffering_cb),
1783         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
1784         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
1785         (rb_shell_jump_to_current):
1786         * sources/rb-auto-playlist-source.c:
1787         (rb_auto_playlist_source_finalize), (impl_receive_drag),
1788         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
1789         (rb_auto_playlist_source_get_query):
1790         * sources/rb-auto-playlist-source.h:
1791         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1792         * sources/rb-import-errors-source.c:
1793         (rb_import_errors_source_constructor):
1794         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
1795         * sources/rb-library-source.c: (filepath_parse_pattern):
1796         * sources/rb-missing-files-source.c:
1797         (rb_missing_files_source_constructor):
1798         * sources/rb-play-queue-source.c:
1799         (rb_play_queue_source_clear_queue),
1800         (rb_play_queue_source_track_info_cell_data_func):
1801         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
1802         (rb_playlist_source_get_property), (playlist_iter_func),
1803         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
1804         (rb_playlist_source_track_cell_data_func):
1805         * sources/rb-podcast-source.c: (construct_query_from_selection),
1806         (rb_podcast_source_post_status_cell_data_func),
1807         (rb_podcast_source_post_feed_cell_data_func),
1808         (rb_podcast_source_feed_title_search_func),
1809         (rb_podcast_source_post_date_cell_data_func):
1810         * sources/rb-source.c: (default_get_status),
1811         (rb_source_get_status), (rb_source_browser_toggled),
1812         (rb_source_update_play_statistics), (rb_source_search),
1813         (rb_source_get_config_widget), (default_add_to_queue),
1814         (rb_source_add_to_queue), (rb_source_receive_drag),
1815         (rb_source_gather_hash_keys):
1816         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
1817         (rb_sourcelist_model_is_row_visible),
1818         (rb_sourcelist_model_row_is_separator),
1819         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
1820         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
1821         (rb_sourcelist_model_drag_data_get):
1822         * sources/rb-sourcelist.c: (rb_sourcelist_append),
1823         (match_source_to_iter), (rb_sourcelist_source_to_iter),
1824         (rb_sourcelist_visible_source_to_iter),
1825         (rb_sourcelist_edit_source_name), (set_source_playing),
1826         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
1827         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
1828         (drop_received_cb), (row_activated_cb), (emit_show_popup),
1829         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
1830         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
1831         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
1832         (rb_static_playlist_source_add_location_internal),
1833         (rb_static_playlist_source_row_inserted):
1834         * widgets/rb-entry-view.c: (type_ahead_search_func),
1835         (rb_entry_view_finalize), (rb_entry_view_set_model),
1836         (rb_entry_view_playing_cell_data_func),
1837         (rb_entry_view_rating_cell_data_func),
1838         (rb_entry_view_long_cell_data_func),
1839         (rb_entry_view_play_count_cell_data_func),
1840         (rb_entry_view_duration_cell_data_func),
1841         (rb_entry_view_year_cell_data_func),
1842         (rb_entry_view_quality_cell_data_func),
1843         (rb_entry_view_location_cell_data_func),
1844         (rb_entry_view_string_cell_data_func),
1845         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
1846         (rb_entry_view_get_sorting_order),
1847         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
1848         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
1849         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
1850         (rb_entry_view_playing_song_changed), (harvest_entries),
1851         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
1852         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
1853         (set_column_visibility):
1854         * widgets/rb-entry-view.h:
1855         * widgets/rb-header.c: (rb_header_new),
1856         (rb_header_set_playing_entry), (rb_header_set_title):
1857         * widgets/rb-library-browser.c: (rebuild_child_model),
1858         (rb_library_browser_set_model):
1859         * widgets/rb-property-view.c:
1860         (rb_property_view_set_model_internal), (rb_property_view_finalize),
1861         (rb_property_view_set_property), (rb_property_view_get_property),
1862         (rb_property_view_reset), (rb_property_view_get_model),
1863         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
1864         (rb_property_view_button_press_cb):
1865         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1866         (rb_query_creator_get_property), (rb_query_creator_load_query),
1867         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
1868         (rb_query_creator_get_query), (rb_query_creator_get_limit),
1869         (rb_query_creator_get_sort_order), (limit_toggled_cb),
1870         (lookup_row_by_widget), (remove_button_click_cb),
1871         (add_button_click_cb), (create_property_option_menu):
1872         * widgets/rb-song-info.c: (rb_song_info_constructor),
1873         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
1874         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
1875         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
1876         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
1878 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1880         * shell/rb-shell-player.c: (rb_shell_player_class_init),
1881         (rb_shell_player_get_property):
1882         Add a property providing access to the player backend object.
1884 2006-07-23  James Livingston  <doclivingston@gmail.com>
1886         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
1887         (get_history), (rb_random_filter_history),
1888         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
1889         remove the tentative history, since it appears to be a remanent from
1890         older play order code. The only thing it was doing was using up
1891         CPU-time and memory. From #345857
1893 2006-07-23  James Livingston  <doclivingston@gmail.com>
1895         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
1897         * shell/main.c: (main):
1898         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
1899         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
1900         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
1901         (rb_playlist_manager_load_playlists),
1902         (rb_playlist_manager_save_data):
1903         * shell/rb-playlist-manager.h:
1904         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
1905         (rb_shell_get_property), (rb_shell_sync_state),
1906         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
1907         (construct_sources), (idle_handle_load_complete):
1908         * shell/rb-shell.h: Add a command-line option for changing the
1909         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
1911 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1913         * daapsharing/rb-daap-share.c: (databases_cb):
1914         Make sure we set status codes on HTTP responses.
1916 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1918         * configure.ac:
1919         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1920         (chunked_message_finished), (send_chunked_file),
1921         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
1922         Use GMappedFile to send local files to DAAP clients where possible.  
1923         iTunes can't seek properly in files sent using chunked transfer 
1924         encoding.  Also remove the useless bitrate calculation code, as we
1925         never even used the result anyway.  From #330410.
1927 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1929         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
1931         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
1932         Enable multiple selection for 'import file'.  Fixes #347478.
1934 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
1936         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
1937         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
1938         deprecated dbus_connection_disconnect () with dbus_connection_close ().
1939         Fixes #348098.
1941 2006-07-20  James Livingston  <doclivingston@gmail.com>
1943         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
1944         aren't NULL before calling strstr. Fixes #347998.
1946 2006-07-19  James Livingston  <doclivingston@gmail.com>
1948         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
1950         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
1951         MB that only have years. Fixes #347906.
1953 2006-07-19  James Livingston  <doclivingston@gmail.com>
1955         * rhythmdb/rhythmdb-private.h:
1956         * rhythmdb/rhythmdb.c: (rhythmdb_init),
1957         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
1958         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
1959         (rhythmdb_finalize), (timeout_rhythmdb_commit),
1960         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
1961         (rhythmdb_execute_stat), (queue_stat_uri),
1962         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
1963         (rhythmdb_load), (rhythmdb_entry_register_type),
1964         (rhythmdb_entry_register_type_alias): Keep track of outstanding
1965         asynchronous vfs operations, and cancel them when shutting down the
1966         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
1968         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
1969         (test_rhythmdb_shutdown): wait until the db has been finalised before
1970         continuing on to the next test.
1972 2006-07-19  James Livingston  <doclivingston@gmail.com>
1974         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
1975         right thing in the #ifdef. From #347832.
1977 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1979         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1980         Fix compile warning.
1982 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1984         * rhythmdb/rhythmdb-query-model.c:
1985         (rhythmdb_query_model_set_property),
1986         (rhythmdb_query_model_reapply_query_cb):
1987         Ignore old query == new query case.
1988         Fixes auto playlists with time-relative queries.
1990         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
1991         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
1992         (rhythmdb_query_to_string):
1993         * rhythmdb/rhythmdb.h:
1994         Add debug helper for printing queries in case someone needs it again.
1996 2006-07-18  James Livingston  <doclivingston@gmail.com>
1998         patch by: Ståle Lyngaas  <staale@lyngaas.com>
1999         * sources/rb-audiocd-source.c: store the MB track ids in the database.
2000         Fixes #347832
2002         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
2003         write then into files.
2005 2006-07-17  William Jon McCann  <mccann@jhu.edu>
2007         * daapsharing/rb-daap-connection.c:
2008         (rb_daap_connection_set_property):
2009         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
2010         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
2011         (add_playlist_to_mlcl), (databases_cb):
2012         * daapsharing/rb-daap-sharing.c: (create_share):
2013         * iradio/rb-new-station-dialog.c:
2014         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
2015         * iradio/rb-station-properties-dialog.c:
2016         (rb_station_properties_dialog_finalize),
2017         (rb_station_properties_dialog_set_property),
2018         (rb_station_properties_dialog_get_current_entry):
2019         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
2020         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
2021         * plugins/generic-player/rb-generic-player-source.c:
2022         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
2023         (handle_playlist_entry_cb):
2024         * plugins/generic-player/rb-nokia770-source.c:
2025         (rb_nokia770_source_new), (hal_udi_is_nokia770):
2026         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
2027         (visit_playlist_dirs), (hal_udi_is_psp):
2028         * podcast/rb-podcast-manager.c:
2029         * podcast/rb-podcast-properties-dialog.c:
2030         (rb_podcast_properties_dialog_finalize),
2031         (rb_podcast_properties_dialog_set_entry_view),
2032         (rb_podcast_properties_dialog_set_property):
2033         * rhythmdb/rhythmdb-property-model.c:
2034         * rhythmdb/rhythmdb-query-model.c:
2035         (rhythmdb_query_model_set_property),
2036         (rhythmdb_query_model_reapply_query_cb):
2037         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
2038         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
2039         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2040         (rhythmdb_event_free), (rhythmdb_shutdown),
2041         (rhythmdb_thread_create), (action_thread_main),
2042         (rhythmdb_do_full_query_async_parsed),
2043         (rhythmdb_do_full_query_internal):
2044         * shell/main.c: (main):
2045         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
2046         * shell/rb-play-order.c: (rb_play_order_finalize),
2047         (rb_play_order_set_player),
2048         (rb_play_order_set_playing_entry_internal),
2049         (rb_play_order_set_property),
2050         (rb_play_order_playing_source_changed),
2051         (rb_play_order_query_model_changed):
2052         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
2053         (rb_playlist_manager_set_source),
2054         (rb_playlist_manager_set_shell_internal),
2055         (rb_playlist_manager_set_property):
2056         * shell/rb-removable-media-manager.c:
2057         (rb_removable_media_manager_set_property),
2058         (rb_removable_media_manager_set_uimanager),
2059         (rb_removable_media_manager_cmd_eject_medium),
2060         (rb_removable_media_manager_cmd_copy_tracks):
2061         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
2062         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
2063         (rb_shell_clipboard_set),
2064         (rb_shell_clipboard_cmd_add_to_playlist_new),
2065         (rb_shell_clipboard_playlist_add_cb),
2066         (rb_shell_clipboard_playlist_renamed_cb),
2067         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
2068         (rebuild_playlist_menu):
2069         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2070         (rb_shell_player_set_queue_source_internal),
2071         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
2072         (rb_shell_player_entry_activated_cb),
2073         (rb_shell_player_property_row_activated_cb),
2074         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
2075         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
2076         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2077         (rb_shell_finalize), (construct_widgets),
2078         (rb_shell_playing_from_queue_cb),
2079         (rb_shell_player_stream_song_changed_cb),
2080         (rb_shell_player_volume_changed_cb):
2081         * shell/rb-statusbar.c: (rb_statusbar_new):
2082         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
2083         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
2084         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2085         * sources/rb-auto-playlist-source.c:
2086         (rb_auto_playlist_source_class_init),
2087         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
2088         (rb_auto_playlist_source_constructor), (impl_receive_drag),
2089         (rb_auto_playlist_source_do_query),
2090         (rb_auto_playlist_source_set_query),
2091         (rb_auto_playlist_source_browser_changed_cb),
2092         (search_action_changed):
2093         * sources/rb-auto-playlist-source.h:
2094         * sources/rb-browser-source.c: (rb_browser_source_finalize),
2095         (search_action_changed), (rb_browser_source_constructor),
2096         (rb_browser_source_cmd_choose_artist), (impl_delete),
2097         (rb_browser_source_browser_changed_cb),
2098         (rb_browser_source_do_query):
2099         * sources/rb-daap-source.c: (rb_daap_source_dispose),
2100         (rb_daap_source_finalize), (rb_daap_source_class_init),
2101         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
2102         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2103         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2104         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
2105         (rb_daap_source_get_headers):
2106         * sources/rb-import-errors-source.c:
2107         (rb_import_errors_source_constructor),
2108         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
2109         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2110         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
2111         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
2112         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
2113         (impl_paste), (impl_receive_drag):
2114         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
2115         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
2116         (impl_song_properties):
2117         * sources/rb-library-source.c: (rb_library_source_constructor),
2118         (rb_library_source_new), (impl_paste),
2119         (rb_library_source_add_child_source):
2120         * sources/rb-missing-files-source.c: (impl_delete),
2121         (impl_get_status):
2122         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
2123         (rb_play_queue_source_class_init),
2124         (rb_play_queue_source_constructor):
2125         * sources/rb-playlist-source.c: (rb_playlist_source_init),
2126         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
2127         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
2128         (rb_playlist_source_new_from_xml),
2129         (rb_playlist_source_save_to_xml):
2130         * sources/rb-podcast-source.c: (rb_podcast_source_init),
2131         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
2132         (search_action_changed), (rb_podcast_source_constructor),
2133         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2134         (construct_query_from_selection),
2135         (rb_podcast_source_cmd_download_post),
2136         (rb_podcast_source_cmd_cancel_download),
2137         (rb_podcast_source_cmd_delete_feed),
2138         (rb_podcast_source_start_download_cb),
2139         (rb_podcast_source_finish_download_cb),
2140         (rb_podcast_source_feed_updates_avaliable_cb),
2141         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
2142         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2143         (impl_get_status):
2144         * sources/rb-removable-media-source.c: (impl_delete_thyself):
2145         * sources/rb-source.c: (rb_source_get_property),
2146         (default_add_to_queue), (default_move_to_trash),
2147         (_rb_source_show_popup), (rb_source_gather_selected_properties),
2148         (_rb_source_register_action_group):
2149         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2150         (rb_sourcelist_model_is_row_visible),
2151         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
2152         (rb_sourcelist_model_row_draggable),
2153         (rb_sourcelist_model_drag_data_get):
2154         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
2155         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
2156         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
2157         (visibility_notify_cb):
2158         * sources/rb-static-playlist-source.c:
2159         (rb_static_playlist_source_class_init),
2160         (rb_static_playlist_source_init),
2161         (rb_static_playlist_source_finalize),
2162         (rb_static_playlist_source_constructor), (impl_delete),
2163         (rb_static_playlist_source_browser_changed_cb),
2164         (rb_static_playlist_source_add_location_internal),
2165         (search_action_changed):
2166         * sources/rb-static-playlist-source.h:
2167         * widgets/rb-druid.c:
2168         * widgets/rb-entry-view.c:
2169         (rb_entry_view_set_shell_player_internal),
2170         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
2171         (rb_entry_view_get_property), (rb_entry_view_new),
2172         (rb_entry_view_button_press_cb):
2173         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
2174         (rb_library_browser_set_property),
2175         (rb_library_browser_get_property):
2176         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
2177         (get_entry_for_property), (get_property_index_from_proptype):
2178         * widgets/rb-song-info.c: (rb_song_info_constructor),
2179         (rb_song_info_finalize), (rb_song_info_set_source_internal),
2180         (rb_song_info_set_property), (rb_song_info_get_property):
2182         More leak and reference counting fixes.  From bug #347446.
2184 2006-07-17  James Livingston  <doclivingston@gmail.com>
2186         * sources/rb-auto-playlist-source.c:
2187         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
2188         rather than setting the base model, as that lets us not import all the
2189         entries from the base model. This fixes some issues whether the search
2190         box wasn't filting automatic playlists.
2192 2006-07-17  James Livingston  <doclivingston@gmail.com>
2194         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
2195         error, which caused blacklist creation to fail.
2197 2006-07-17  James Livingston  <doclivingston@gmail.com>
2199         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
2200         running with -n, because we don't start it then. Fixes a crash on
2201         exit.
2203 2006-07-17  James Livingston  <doclivingston@gmail.com>
2205         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2207         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
2208         Save not Open for the button. Fixes #345816
2210 2006-07-17  James Livingston  <doclivingston@gmail.com>
2212         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2214         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
2215         when track transfer is disabled. Fixes #347705
2217 2006-07-17  James Livingston  <doclivingston@gmail.com>
2219         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2221         * sources/rb-library-source.c: (impl_get_config_widget): fix build
2222         with track transfer disabled. Fixes #347705
2224 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2226         * rhythmdb/rhythmdb-query-model.c:
2227         (rhythmdb_query_model_set_property):
2228         * shell/main.c: (main):
2229         * shell/rb-shell-clipboard.c: (unset_source_internal),
2230         (rb_shell_clipboard_finalize),
2231         (rb_shell_clipboard_set_source_internal),
2232         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
2233         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2234         (rb_shell_player_set_db_internal),
2235         (rb_shell_player_set_queue_source_internal),
2236         (rb_shell_player_finalize), (rb_shell_player_set_property):
2237         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
2238         * sources/rb-auto-playlist-source.c:
2239         (rb_auto_playlist_source_constructor),
2240         (rb_auto_playlist_source_new_from_xml):
2241         * sources/rb-daap-source.c: (create_pixbufs):
2242         * sources/rb-ipod-source.c:
2243         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
2244         * sources/rb-library-source.c:
2245         (rb_library_source_add_child_source):
2246         * sources/rb-play-queue-source.c:
2247         (rb_play_queue_sync_playing_state),
2248         (rb_play_queue_source_track_info_cell_data_func):
2249         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
2250         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2251         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2252         (impl_can_add_to_queue), (impl_add_to_queue):
2253         * sources/rb-source.c: (rb_source_set_property):
2254         * sources/rb-sourcelist.c: (rb_sourcelist_append):
2255         * sources/rb-static-playlist-source.c:
2256         (rb_static_playlist_source_constructor),
2257         (rb_static_playlist_source_load_from_xml):
2258         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
2259         * widgets/rb-entry-view.c: (rb_entry_view_init),
2260         (rb_entry_view_finalize), (rb_entry_view_append_column),
2261         (rb_entry_view_constructor):
2262         * widgets/rb-song-info.c: (rb_song_info_set_property):
2263         Fix leaks.  From bug #347446.
2265 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2267         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
2268         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
2269         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
2270         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
2271         (add_decoding_pipeline), (profile_bin_find_encoder),
2272         (get_profile_from_mime_type), (extract_track), (transcode_track),
2273         (rb_encoder_gst_encode):
2274         * backends/gstreamer/rb-encoder-gst.h:
2275         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
2276         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
2277         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
2278         (rb_player_gst_construct):
2279         * backends/gstreamer/rb-player-gst.h:
2280         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
2281         * backends/rb-encoder.h:
2282         * backends/rb-player.c: (_rb_player_emit_tick):
2283         * backends/rb-player.h:
2284         * daapsharing/rb-daap-connection.c: (build_message),
2285         (actual_http_response_handler), (http_response_handler),
2286         (http_get), (entry_set_string_prop), (emit_progress_idle),
2287         (handle_server_info), (handle_database_info),
2288         (handle_song_listing), (handle_playlists),
2289         (handle_playlist_entries), (rb_daap_connection_new),
2290         (connected_cb), (rb_daap_connection_do_something),
2291         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
2292         (rb_daap_connection_get_property):
2293         * daapsharing/rb-daap-connection.h:
2294         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
2295         (rb_daap_collision_dialog_new_run):
2296         * daapsharing/rb-daap-dialog.h:
2297         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
2298         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
2299         (DigestToString), (rb_daap_hash_generate):
2300         * daapsharing/rb-daap-hash.h:
2301         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
2302         (resolve_cb), (browse_cb):
2303         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
2304         (resolve_cb), (rb_daap_mdns_browser_resolve),
2305         (rb_daap_mdns_browser_start), (resolver_free):
2306         * daapsharing/rb-daap-mdns-browser.h:
2307         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
2308         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
2309         (publish_cb):
2310         * daapsharing/rb-daap-mdns-publisher.h:
2311         * daapsharing/rb-daap-share.c: (name_collision_cb),
2312         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
2313         (message_set_from_rb_daap_structure), (content_codes_cb),
2314         (session_id_validate), (logout_cb), (update_cb),
2315         (add_entry_to_mlcl), (add_playlist_to_mlcl),
2316         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
2317         (rb_daap_share_server_start), (rb_daap_share_server_stop),
2318         (rb_daap_share_publish_start):
2319         * daapsharing/rb-daap-share.h:
2320         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
2321         (share_password_changed_cb), (rb_daap_sharing_shutdown):
2322         * daapsharing/rb-daap-sharing.h:
2323         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
2324         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
2325         (rb_daap_src_open):
2326         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
2327         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
2328         (rb_daap_structure_parse_container_buffer),
2329         (rb_daap_structure_parse), (gnode_find_node),
2330         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
2331         (print_rb_daap_item):
2332         * daapsharing/rb-daap-structure.h:
2333         * iradio/rb-new-station-dialog.c:
2334         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
2335         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
2336         (rb_new_station_dialog_text_changed):
2337         * iradio/rb-station-properties-dialog.c:
2338         (rb_station_properties_dialog_init),
2339         (rb_station_properties_dialog_new),
2340         (rb_station_properties_dialog_response_cb),
2341         (rb_station_properties_dialog_get_current_entry),
2342         (rb_station_properties_dialog_rated_cb),
2343         (rb_station_properties_dialog_update_rating),
2344         (rb_station_properties_dialog_update_playback_error),
2345         (rb_station_properties_dialog_sync_entries):
2346         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
2347         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
2348         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
2349         (rb_metadata_can_save), (rb_metadata_save):
2350         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
2351         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
2352         (_handle_message), (_new_connection), (main):
2353         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
2354         (rb_metadata_dbus_read_from_message):
2355         * metadata/rb-metadata-dbus.h:
2356         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
2357         (rb_add_id3_tagger), (rb_metadata_init),
2358         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
2359         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
2360         (rb_metadata_gst_new_decoded_pad_cb),
2361         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
2362         * metadata/sj-error.c: (sj_error_quark):
2363         * metadata/sj-error.h:
2364         * metadata/sj-metadata-musicbrainz.c:
2365         (sj_metadata_musicbrainz_instance_init),
2366         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
2367         (get_rdf), (lookup_cd):
2368         * metadata/sj-metadata.c: (sj_metadata_get_type):
2369         * metadata/sj-structures.c:
2370         * metadata/sj-structures.h:
2371         * metadata/test-metadata.c: (load_metadata_cb), (main):
2372         * podcast/rb-feed-podcast-properties-dialog.c:
2373         (rb_feed_podcast_properties_dialog_init),
2374         (rb_feed_podcast_properties_dialog_update_title):
2375         * podcast/rb-feed-podcast-properties-dialog.h:
2376         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
2377         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
2378         (rb_new_podcast_dialog_text_changed):
2379         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
2380         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
2381         (rb_podcast_manager_set_property),
2382         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
2383         (rb_podcast_manager_download_entry),
2384         (rb_podcast_manager_update_feeds),
2385         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
2386         (rb_podcast_manager_copy_post),
2387         (rb_podcast_manager_thread_parse_feed),
2388         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
2389         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
2390         (download_info_free), (download_info_new), (start_job),
2391         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
2392         (download_progress_cb), (download_progress_update_cb),
2393         (rb_podcast_manager_remove_feed),
2394         (rb_podcast_manager_db_entry_deleted_cb),
2395         (rb_podcast_manager_cancel_download),
2396         (rb_podcast_manager_update_synctime),
2397         (rb_podcast_manager_set_remove_files),
2398         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
2399         (rb_podcast_manager_abort_subscribe),
2400         (rb_podcast_manager_get_podcast_dir):
2401         * podcast/rb-podcast-manager.h:
2402         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
2403         (rb_validate_channel_propert), (rb_validate_item_propert),
2404         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
2405         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
2406         (rb_podcast_parse_date), (rb_podcast_parse_time),
2407         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
2408         * podcast/rb-podcast-parse.h:
2409         * podcast/rb-podcast-properties-dialog.c:
2410         (rb_podcast_properties_dialog_init),
2411         (rb_podcast_properties_dialog_get_current_entry),
2412         (rb_podcast_properties_dialog_update_title),
2413         (rb_podcast_properties_dialog_update_duration),
2414         (rb_podcast_properties_dialog_update_date):
2415         * podcast/rb-podcast-properties-dialog.h:
2416         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
2417         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
2418         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
2419         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
2420         (g_sequence_search), (g_sequence_set_aggregate_data),
2421         (g_sequence_node_update_fields), (g_sequence_node_rotate),
2422         (find_min), (g_sequence_node_find_by_pos),
2423         (g_sequence_node_find_closest), (g_sequence_node_free),
2424         (g_sequence_node_split), (g_sequence_node_insert_before),
2425         (g_sequence_node_get_length), (g_sequence_node_remove),
2426         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
2427         (g_sequence_calc_tree_height):
2428         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
2429         (rb_refstring_get):
2430         * rhythmdb/rb-refstring.h:
2431         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
2432         (rhythmdb_gda_init), (dump_model), (execute_query),
2433         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
2434         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
2435         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
2436         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
2437         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
2438         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
2439         * rhythmdb/rhythmdb-gda.h:
2440         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
2441         (rhythmdb_finalize_monitoring), (monitor_entry_file),
2442         (monitor_library_directory), (rhythmdb_check_changed_file),
2443         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
2444         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
2445         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
2446         * rhythmdb/rhythmdb-private.h:
2447         * rhythmdb/rhythmdb-property-model.c:
2448         (rhythmdb_property_model_set_property),
2449         (rhythmdb_property_model_row_inserted_cb),
2450         (rhythmdb_property_model_prop_changed_cb),
2451         (rhythmdb_property_model_compare),
2452         (rhythmdb_property_model_get_value),
2453         (rhythmdb_property_model_iter_nth_child),
2454         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
2455         (rhythmdb_property_model_drag_data_get),
2456         (rhythmdb_property_model_enable_drag),
2457         (rhythmdb_property_model_column_get_type):
2458         * rhythmdb/rhythmdb-property-model.h:
2459         * rhythmdb/rhythmdb-query-model.c:
2460         (rhythmdb_query_model_class_init),
2461         (rhythmdb_query_model_set_property),
2462         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
2463         (rhythmdb_query_model_has_pending_changes),
2464         (rhythmdb_query_model_entry_changed_cb),
2465         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2466         (rhythmdb_query_model_add_entry),
2467         (rhythmdb_query_model_remove_from_main_list),
2468         (rhythmdb_query_model_remove_entry),
2469         (rhythmdb_query_model_drag_data_received),
2470         (rhythmdb_query_model_row_drop_possible),
2471         (rhythmdb_query_model_compute_status_normal),
2472         (rhythmdb_query_model_set_sort_order),
2473         (rhythmdb_query_model_get_entry_index),
2474         (rhythmdb_query_model_base_row_inserted),
2475         (rhythmdb_query_model_base_row_deleted),
2476         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2477         (rhythmdb_query_model_date_sort_func),
2478         (rhythmdb_query_model_within_limit):
2479         * rhythmdb/rhythmdb-query-model.h:
2480         * rhythmdb/rhythmdb-query-results.c:
2481         (rhythmdb_query_results_query_complete):
2482         * rhythmdb/rhythmdb-query-results.h:
2483         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
2484         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
2485         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
2486         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
2487         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
2488         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
2489         (rhythmdb_tree_parser_start_element),
2490         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
2491         (save_entry), (save_entry_type), (save_unknown_entry_type),
2492         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
2493         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
2494         (get_or_create_genre), (remove_entry_from_album),
2495         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2496         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
2497         (search_match_properties), (evaluate_conjunctive_subquery),
2498         (clone_remove_ptr_array_index), (conjunctive_query_albums),
2499         (conjunctive_query_artists), (conjunctive_query_genre),
2500         (conjunctive_query), (split_query_by_disjunctions),
2501         (do_query_recurse), (rhythmdb_tree_entry_foreach),
2502         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2503         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
2504         (rhythmdb_hash_tree_foreach),
2505         (rhythmdb_tree_entry_type_registered):
2506         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
2507         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
2508         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2509         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2510         (rhythmdb_shutdown), (rhythmdb_finalize),
2511         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
2512         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2513         (rhythmdb_entry_example_new),
2514         (set_metadata_string_default_unknown), (is_ghost_entry),
2515         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2516         (rhythmdb_process_metadata_load),
2517         (rhythmdb_process_queued_entry_set_event),
2518         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
2519         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
2520         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
2521         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
2522         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
2523         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2524         (rhythmdb_entry_delete_by_type),
2525         (rhythmdb_propid_from_nice_elt_name),
2526         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
2527         (rhythmdb_compute_status_normal),
2528         (rhythmdb_entry_register_type_alias),
2529         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
2530         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
2531         (rhythmdb_entry_import_error_get_type),
2532         (rhythmdb_entry_podcast_post_get_type),
2533         (rhythmdb_entry_podcast_feed_get_type),
2534         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2535         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
2536         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
2537         * rhythmdb/rhythmdb.h:
2538         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
2539         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
2540         (rb_history_limit_size):
2541         * shell/rb-history.h:
2542         * shell/rb-play-order-linear-loop.c:
2543         (rb_linear_play_order_loop_get_next):
2544         * shell/rb-play-order-linear-loop.h:
2545         * shell/rb-play-order-linear.c:
2546         * shell/rb-play-order-linear.h:
2547         * shell/rb-play-order-queue.c:
2548         (rb_queue_play_order_playing_entry_removed):
2549         * shell/rb-play-order-queue.h:
2550         * shell/rb-play-order-random-by-age-and-rating.c:
2551         * shell/rb-play-order-random-by-age-and-rating.h:
2552         * shell/rb-play-order-random-by-age.c:
2553         (rb_random_by_age_get_entry_weight):
2554         * shell/rb-play-order-random-by-age.h:
2555         * shell/rb-play-order-random-by-rating.c:
2556         * shell/rb-play-order-random-by-rating.h:
2557         * shell/rb-play-order-random-equal-weights.c:
2558         * shell/rb-play-order-random-equal-weights.h:
2559         * shell/rb-play-order-random.c: (rb_random_filter_history),
2560         (rb_random_get_total_weight), (rb_random_play_order_get_next),
2561         (rb_random_db_changed), (rb_random_playing_entry_changed),
2562         (rb_random_db_entry_deleted):
2563         * shell/rb-play-order-shuffle.c: (remove_from_history),
2564         (add_randomly_to_history), (get_query_model_contents),
2565         (rb_shuffle_playing_entry_changed):
2566         * shell/rb-play-order-shuffle.h:
2567         * shell/rb-play-order.c: (rb_play_order_class_init),
2568         (rb_play_order_set_property),
2569         (rb_play_order_playing_source_changed),
2570         (rb_play_order_query_model_changed_cb),
2571         (rb_play_order_query_model_changed),
2572         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
2573         * shell/rb-play-order.h:
2574         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2575         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
2576         (rb_playlist_manager_set_property),
2577         (rb_playlist_manager_parse_file),
2578         (rb_playlist_manager_load_playlists),
2579         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
2580         (rb_playlist_manager_save_playlists),
2581         (rb_playlist_manager_new_playlist),
2582         (rb_playlist_manager_new_playlist_from_selection_data),
2583         (rb_playlist_manager_cmd_new_automatic_playlist),
2584         (rb_playlist_manager_cmd_edit_automatic_playlist),
2585         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
2586         (save_playlist_response_cb), (export_set_extension_cb),
2587         (filter_get_export_filter_label), (setup_format_menu),
2588         (rb_playlist_manager_cmd_save_playlist),
2589         (rb_playlist_manager_get_playlists),
2590         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
2591         (rb_playlist_manager_delete_playlist),
2592         (rb_playlist_manager_export_playlist):
2593         * shell/rb-playlist-manager.h:
2594         * shell/rb-removable-media-manager.c:
2595         (rb_removable_media_manager_class_init),
2596         (rb_removable_media_manager_dispose),
2597         (rb_removable_media_manager_finalize),
2598         (rb_removable_media_manager_set_property),
2599         (split_drive_from_cdda_uri),
2600         (rb_removable_media_manager_playing_uri_changed_cb),
2601         (rb_removable_media_manager_load_media),
2602         (rb_removable_media_manager_volume_mounted_cb),
2603         (remove_volume_by_source),
2604         (rb_removable_media_manager_source_deleted_cb),
2605         (rb_removable_media_manager_volume_unmounted_cb),
2606         (rb_removable_media_manager_mount_volume),
2607         (rb_removable_media_manager_set_uimanager),
2608         (rb_removable_media_manager_scan), (do_transfer),
2609         (rb_removable_media_manager_cmd_copy_tracks):
2610         * shell/rb-removable-media-manager.h:
2611         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
2612         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
2613         (rb_shell_clipboard_sync),
2614         (rb_shell_clipboard_idle_poll_deletions),
2615         (rb_shell_clipboard_cmd_add_to_playlist_new),
2616         (rb_shell_clipboard_playlist_add_cb),
2617         (rb_shell_clipboard_playlist_deleted_cb),
2618         (rb_shell_clipboard_playlist_renamed_cb),
2619         (rb_shell_clipboard_playlist_visible_cb),
2620         (rb_shell_clipboard_playlist_added_cb):
2621         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2622         (rb_shell_player_constructor), (volume_pre_unmount_cb),
2623         (rb_shell_player_init), (rb_shell_player_set_property),
2624         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
2625         (rb_shell_player_open_location),
2626         (rb_shell_player_set_playing_entry),
2627         (rb_shell_player_play_order_update_cb),
2628         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
2629         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
2630         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
2631         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
2632         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2633         (gconf_song_position_slider_visibility_changed),
2634         (rb_shell_player_entry_activated_cb),
2635         (rb_shell_player_property_row_activated_cb),
2636         (rb_shell_player_entry_changed_cb),
2637         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2638         (actually_set_playing_source),
2639         (rb_shell_player_set_playing_source_internal),
2640         (rb_shell_player_get_playing_song_duration), (eos_cb),
2641         (rb_shell_player_error), (error_cb), (info_available_cb),
2642         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
2643         (rb_shell_player_error_get_type):
2644         * shell/rb-shell-player.h:
2645         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
2646         (rb_shell_preferences_append_page),
2647         (share_check_button_toggled_cb),
2648         (password_check_button_toggled_cb), (add_daap_preferences),
2649         (rb_shell_preferences_column_check_changed_cb),
2650         (rb_shell_preferences_sync_column_button),
2651         (rb_shell_preferences_sync),
2652         (rb_shell_preferences_browser_views_activated_cb):
2653         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
2654         (rb_shell_set_property), (rb_shell_get_property),
2655         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
2656         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
2657         (rb_shell_get_visibility), (rb_shell_set_visibility),
2658         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
2659         (rb_shell_register_entry_type_for_source),
2660         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
2661         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
2662         (rb_shell_player_stream_song_changed_cb),
2663         (rb_shell_set_window_title),
2664         (rb_shell_view_smalldisplay_changed_cb),
2665         (rb_shell_view_queue_as_sidebar_changed_cb),
2666         (rb_shell_cmd_plugins), (add_to_library_response_cb),
2667         (rb_shell_cmd_add_folder_to_library),
2668         (rb_shell_cmd_add_file_to_library),
2669         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
2670         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
2671         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
2672         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
2673         (handle_playlist_entry_cb), (rb_shell_load_uri),
2674         (rb_shell_add_to_queue), (rb_shell_present),
2675         (rb_shell_get_song_properties), (rb_shell_set_song_property),
2676         (rb_shell_volume_widget_changed_cb),
2677         (rb_shell_player_volume_changed_cb),
2678         (rb_shell_ui_location_get_type):
2679         * shell/rb-shell.h:
2680         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
2681         (rb_source_header_init), (rb_source_header_set_source_internal),
2682         (rb_source_state_sync), (rb_source_header_clear_search),
2683         (rb_source_header_view_browser_changed_cb):
2684         * shell/rb-source-header.h:
2685         * shell/rb-statusbar.c: (rb_statusbar_construct),
2686         (rb_statusbar_init), (rb_statusbar_finalize),
2687         (rb_statusbar_set_property), (rb_statusbar_set_progress),
2688         (rb_statusbar_source_status_changed_cb):
2689         * shell/rb-statusbar.h:
2690         * shell/rb-tray-icon.c: (rb_tray_icon_init),
2691         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
2692         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
2693         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
2694         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
2695         (rb_audiocd_create_track_entry):
2696         * sources/rb-auto-playlist-source.c:
2697         (rb_auto_playlist_source_class_init),
2698         (rb_auto_playlist_source_constructor),
2699         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
2700         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
2701         (rb_auto_playlist_source_query_complete_cb),
2702         (rb_auto_playlist_source_do_query),
2703         (rb_auto_playlist_source_set_query),
2704         (rb_auto_playlist_source_browser_changed_cb),
2705         (search_action_to_prop):
2706         * sources/rb-auto-playlist-source.h:
2707         * sources/rb-browser-source.c: (rb_browser_source_init),
2708         (rb_browser_source_dispose), (search_action_to_prop),
2709         (rb_browser_source_constructor),
2710         (rb_browser_source_cmd_choose_genre),
2711         (rb_browser_source_cmd_choose_artist),
2712         (rb_browser_source_cmd_choose_album), (impl_search),
2713         (rb_browser_source_browser_changed_cb),
2714         (rb_browser_source_do_query):
2715         * sources/rb-browser-source.h:
2716         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2717         (rb_daap_source_init), (rb_daap_source_dispose),
2718         (rb_daap_source_set_property), (start_browsing),
2719         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2720         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2721         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
2722         (rb_daap_source_get_headers), (rb_daap_source_get_status):
2723         * sources/rb-daap-source.h:
2724         * sources/rb-import-errors-source.h:
2725         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2726         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
2727         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
2728         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
2729         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
2730         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
2731         (ipod_mkdir_with_parents), (build_ipod_dir_name),
2732         (generate_ipod_filename), (ipod_path_from_unix_path),
2733         (impl_delete_thyself):
2734         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2735         (rb_iradio_source_init), (rb_iradio_source_constructor),
2736         (rb_iradio_source_new), (guess_uri_scheme),
2737         (rb_iradio_source_add_station),
2738         (rb_iradio_source_async_update_play_statistics),
2739         (genre_selection_reset_cb), (rb_iradio_source_do_query),
2740         (stations_view_drag_data_received_cb),
2741         (rb_iradio_source_cmd_new_station):
2742         * sources/rb-iradio-source.h:
2743         * sources/rb-library-source.c: (rb_library_source_dispose),
2744         (rb_library_source_constructor),
2745         (rb_library_source_location_button_clicked_cb),
2746         (impl_get_config_widget), (rb_library_source_library_location_cb),
2747         (sanitize_path), (filepath_parse_pattern),
2748         (layout_example_label_update),
2749         (rb_library_source_layout_filename_changed), (build_filename),
2750         (impl_can_paste), (impl_paste),
2751         (rb_library_source_add_child_source),
2752         (rb_library_source_sync_child_sources):
2753         * sources/rb-library-source.h:
2754         * sources/rb-missing-files-source.h:
2755         * sources/rb-play-queue-source.c:
2756         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
2757         * sources/rb-play-queue-source.h:
2758         * sources/rb-playlist-source-recorder.c:
2759         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
2760         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
2761         (rb_playlist_source_recorder_init),
2762         (rb_playlist_source_recorder_new):
2763         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2764         (rb_playlist_source_save_playlist),
2765         (rb_playlist_source_entry_added_cb),
2766         (rb_playlist_source_set_query_model),
2767         (rb_playlist_source_add_to_map):
2768         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2769         (rb_podcast_source_init), (rb_podcast_source_dispose),
2770         (rb_podcast_source_finalize), (search_action_to_prop),
2771         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
2772         (rb_podcast_source_get_property), (rb_podcast_source_new),
2773         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2774         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
2775         (rb_podcast_source_show_browser), (construct_query_from_selection),
2776         (rb_podcast_source_do_query), (impl_get_config_widget),
2777         (rb_podcast_source_btn_file_change_cb),
2778         (posts_view_drag_data_received_cb),
2779         (rb_podcast_source_cmd_download_post),
2780         (rb_podcast_source_cmd_cancel_download),
2781         (rb_podcast_source_cmd_delete_feed),
2782         (rb_podcast_source_cmd_properties_feed),
2783         (rb_podcast_source_cmd_update_feed),
2784         (rb_podcast_source_post_status_cell_data_func),
2785         (rb_podcast_source_post_feed_cell_data_func),
2786         (rb_podcast_source_post_date_cell_data_func),
2787         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
2788         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
2789         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2790         (impl_get_status):
2791         * sources/rb-podcast-source.h:
2792         * sources/rb-removable-media-source.c:
2793         (rb_removable_media_source_constructor):
2794         * sources/rb-removable-media-source.h:
2795         * sources/rb-source.h:
2796         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
2797         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
2798         (rb_sourcelist_model_row_is_separator),
2799         (rb_sourcelist_model_drag_data_received),
2800         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
2801         (rb_sourcelist_model_row_drop_position),
2802         (rb_sourcelist_model_get_drag_target),
2803         (rb_sourcelist_model_row_draggable),
2804         (rb_sourcelist_model_drag_data_get),
2805         (rb_sourcelist_model_row_inserted_cb),
2806         (rb_sourcelist_model_get_group_path):
2807         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2808         (match_source_to_iter), (rb_sourcelist_source_to_iter),
2809         (rb_sourcelist_visible_source_to_iter),
2810         (rb_sourcelist_edit_source_name),
2811         (rb_sourcelist_selection_changed_cb), (button_press_cb),
2812         (key_release_cb), (name_notify_cb), (icon_notify_cb),
2813         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2814         * sources/rb-static-playlist-source.c:
2815         (rb_static_playlist_source_class_init),
2816         (rb_static_playlist_source_constructor),
2817         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
2818         (impl_search), (rb_static_playlist_source_do_query),
2819         (rb_static_playlist_source_browser_changed_cb),
2820         (impl_receive_drag), (impl_save_contents_to_xml),
2821         (rb_static_playlist_source_add_location_swapped),
2822         (search_action_to_prop):
2823         * sources/rb-static-playlist-source.h:
2824         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
2825         * widgets/eggtrayicon.c: (egg_tray_icon_init),
2826         (egg_tray_icon_get_orientation_property),
2827         (egg_tray_icon_send_manager_message),
2828         (egg_tray_icon_update_manager_window),
2829         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
2830         (egg_tray_icon_send_message), (egg_tray_icon_notify):
2831         * widgets/eggtrayicon.h:
2832         * widgets/rb-cell-renderer-pixbuf.c:
2833         (rb_cell_renderer_pixbuf_get_property),
2834         (rb_cell_renderer_pixbuf_set_property),
2835         (rb_cell_renderer_pixbuf_get_size),
2836         (rb_cell_renderer_pixbuf_render),
2837         (rb_cell_renderer_pixbuf_activate):
2838         * widgets/rb-cell-renderer-rating.c:
2839         (rb_cell_renderer_rating_class_init),
2840         (rb_cell_renderer_rating_get_property),
2841         (rb_cell_renderer_rating_set_property),
2842         (rb_cell_renderer_rating_get_size),
2843         (rb_cell_renderer_rating_render),
2844         (rb_cell_renderer_rating_activate):
2845         * widgets/rb-dialog.c:
2846         * widgets/rb-dialog.h:
2847         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
2848         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
2849         (rb_druid_page3_finish_cb):
2850         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
2851         (rb_entry_view_init), (rb_entry_view_set_property),
2852         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
2853         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
2854         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
2855         (rb_entry_view_set_sorting_order),
2856         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
2857         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2858         (rb_entry_view_playing_song_changed),
2859         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
2860         (rb_entry_view_scroll_to_entry), (set_column_visibility),
2861         (rb_entry_view_set_fixed_column_width),
2862         (rb_entry_view_get_time_date_column_sample),
2863         (rb_entry_view_state_get_type):
2864         * widgets/rb-entry-view.h:
2865         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
2866         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
2867         (changed_idle_callback), (rb_header_elapsed_changed_cb):
2868         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
2869         (update_browser_property_visibilty),
2870         (rb_library_browser_construct_query), (restore_selection),
2871         (rebuild_child_model), (rb_library_browser_set_selection),
2872         (rb_library_browser_set_model):
2873         * widgets/rb-library-browser.h:
2874         * widgets/rb-property-view.c: (rb_property_view_class_init),
2875         (rb_property_view_set_property), (rb_property_view_reset),
2876         (rb_property_view_get_model), (rb_property_view_constructor),
2877         (rb_property_view_set_selection),
2878         (rb_property_view_selection_changed_cb),
2879         (rb_property_view_button_press_cb),
2880         (rb_property_view_set_search_func):
2881         * widgets/rb-query-creator-private.h:
2882         * widgets/rb-query-creator-properties.c:
2883         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
2884         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
2885         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
2886         (relativeTimeCriteriaCreateWidget),
2887         (relativeTimeCriteriaSetWidgetData):
2888         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2889         (rb_query_creator_dispose), (rb_query_creator_load_query),
2890         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
2891         (get_property_index_from_proptype), (select_criteria_from_value),
2892         (create_property_option_menu), (create_criteria_option_menu),
2893         (sort_option_menu_changed), (setup_sort_option_menu):
2894         * widgets/rb-query-creator.h:
2895         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
2896         (rb_rating_render_stars):
2897         * widgets/rb-rating-helper.h:
2898         * widgets/rb-rating.c: (rb_rating_expose):
2899         * widgets/rb-rating.h:
2900         * widgets/rb-search-entry.c: (rb_search_entry_clear),
2901         (rb_search_entry_timeout_cb):
2902         * widgets/rb-search-entry.h:
2903         * widgets/rb-song-info.c: (rb_song_info_construct_single),
2904         (rb_song_info_constructor), (rb_song_info_new),
2905         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
2906         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
2907         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2908         (rb_song_info_query_model_changed_cb),
2909         (rb_song_info_sync_entries_multiple),
2910         (rb_song_info_sync_entry_single):
2911         Strip all trailing whitespace.  Fixes #344293.
2913 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
2915         * doc/reference/Makefile.am: Fix GTK Doc Build
2917 2006-07-13  James Livingston  <doclivingston@gmail.com>
2919         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
2921         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
2922         instead of the LOCATION, and don't try to get the directory listing
2923         for http URI schemes
2925         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
2926         invalid utf8 in the error message, since apparently it can happen.
2928 2006-07-12  William Jon McCann  <mccann@jhu.edu>
2930         * sources/rb-import-errors-source.c:
2931         (rb_import_errors_source_class_init),
2932         (rb_import_errors_source_init),
2933         (rb_import_errors_source_constructor),
2934         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
2935         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
2936         * sources/rb-missing-files-source.c:
2937         (rb_missing_files_source_class_init),
2938         (rb_missing_files_source_init),
2939         (rb_missing_files_source_constructor),
2940         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
2941         (rb_missing_files_source_songs_sort_order_changed_cb),
2942         (impl_get_status):
2943         * sources/rb-source.c: (rb_source_class_init),
2944         (rb_source_finalize), (update_visibility_idle),
2945         (queue_update_visibility), (rb_source_set_hidden_when_empty),
2946         (rb_source_set_property), (rb_source_get_property),
2947         (default_get_status), (rb_source_update_play_statistics),
2948         (default_add_to_queue), (_rb_source_show_popup),
2949         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
2950         (rb_source_gather_selected_properties),
2951         (_rb_source_register_action_group):
2952         * sources/rb-source.h:
2953         * sources/rb-sourcelist.c: (visibility_notify_cb):
2954         Don't use a fake model for import-errors and missing-files
2955         sources.  Add a new source property "hidden-when-empty".
2956         Update source visibility in an idle.  Clean up some whitespace.
2957         From bug #346800
2959 2006-07-12  James Livingston  <doclivingston@gmail.com>
2961         * bindings/python/rb.defs:
2962         * bindings/python/rb.override: bind rb_error_dialog
2964         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
2965         the current working directory for uninstalled plugins, and add the
2966         class name to the method name.
2968 2006-07-12  James Livingston  <doclivingston@gmail.com>
2970         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
2971         the sources EOF type if it's NULL. Fixes #346284.
2973 2006-07-12  James Livingston  <doclivingston@gmail.com>
2975         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
2976         I accidently committed. Nothing to see here, move along...
2978 2006-07-11  James Livingston  <doclivingston@gmail.com>
2980         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2981         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
2982         Unknown.
2984 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2986         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
2988 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2990         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
2991         Don't try to set mtime if we've deleted the entry.
2993 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2995         * bindings/python/rhythmdb.defs:
2996         * rhythmdb/rhythmdb.c:
2997         * rhythmdb/rhythmdb.h:
2998         * rhythmdb/rhythmdb-private.h:
2999         * rhythmdb/rhythmdb-query.c:
3000         Move data structures holding registered entry types inside the
3001         RhythmDB object, and add a vfunc called when new types are registered.
3002         Add a flag to RhythmDBEntryType specifying whether entries of the type
3003         should be saved to the on-disk database.
3005         * sources/rb-audiocd-source.c:
3006         * sources/rb-daap-source.c:
3007         * sources/rb-ipod-source.c:
3008         * plugins/generic-player/rb-generic-player-source.c:
3009         * plugins/generic-player/rb-nokia770-source.c:
3010         * plugins/generic-player/rb-psp-source.c:
3011         Adjust to the above changes.
3013         * rhythmdb/rhythmdb-tree.c:
3014         If the type for an entry hasn't been registered yet, store the entry's
3015         properties as-is, and convert them to a real entry when the type is
3016         registered.  If the type doesn't get registered, save the entry back
3017         to the database unmodified.  From #330226.
3019 2006-07-10  James Livingston  <doclivingston@gmail.com>
3021         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
3022         os.path.unlink to os.unlink, so removing stuff works.
3024 2006-07-10  James Livingston  <doclivingston@gmail.com>
3026         patch by: Ed Catmur  <ed@catmur.co.uk>
3027               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
3029         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3030         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3031         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
3032         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
3033         internals of the cover database and Amazon lookup engine, and add
3034         support for loading art from the local file system. Fixes #345688.
3036         * plugins/rb/Coroutine.py:
3037         * plugins/rb/Makefile.am:
3038         * plugins/rb/__init__.py: Add the Coroutine class to the common python
3039         plugin classes.
3041 2006-07-10  James Livingston  <doclivingston@gmail.com>
3043         * tests/Makefile.am: don't run the benchmark when doing "make check"
3045         * po/POTFILES.in: more build fixes, from Matti Lindell
3046         <feenixx@hotmail.com>. Fixes #347049.
3049 2006-07-10  James Livingston  <doclivingston@gmail.com>
3051         * plugins/cd-recorder/Makefile.am: build fixes
3053         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
3054         attempt to change properties if we couldn't create an entry.
3056         * shell/rb-source-header.c: (rb_source_header_init),
3057         (rb_source_header_view_browser_changed_cb),
3058         (rb_source_header_sync_control_state):
3059         * shell/rb-tray-icon.c:
3060         * widgets/Makefile.am:
3061         * widgets/disclosure-widget.c:
3062         * widgets/disclosure-widget.h: remove the remanents of the disclosure
3063         widget, as it hasn't been used for a while.
3065 2006-07-09  William Jon McCann  <mccann@jhu.edu>
3067         * Makefile.am:
3068         * configure.ac:
3069         * data/ui/rhythmbox-ui.xml:
3070         * plugins/Makefile.am:
3071         * plugins/cd-recorder/.cvsignore:
3072         * plugins/cd-recorder/Makefile.am:
3073         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
3074         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
3075         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
3076         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
3077         (source_burn), (cmd_burn_source), (playlist_entries_changed),
3078         (playlist_row_inserted_cb), (update_source),
3079         (shell_selected_source_notify_cb), (impl_activate),
3080         (impl_deactivate):
3081         * shell/Makefile.am:
3082         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
3083         (rb_playlist_manager_cmd_save_playlist):
3084         * shell/rb-shell.c: (rb_shell_select_source):
3085         * sources/Makefile.am:
3086         * sources/rb-playlist-source-recorder.c:
3087         (rb_playlist_source_recorder_new):
3088         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3089         (rb_playlist_source_add_to_map):
3090         * sources/rb-playlist-source.h:
3091         Move cd burning into a plugin.  Fixes #344300.
3093 2006-07-10  James Livingston  <doclivingston@gmail.com>
3095         * lib/eel-gconf-extensions.c:
3096         * shell/rb-shell.c: remove some ununsed gnomeui includes
3098         * widgets/Makefile.am:
3099         * widgets/rb-song-display-box.c:
3100         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
3101         since it isn't acutally used anywhere. Fixes #346926
3103 2006-07-09  James Livingston  <doclivingston@gmail.com>
3105         * bindings/python/rb.defs:
3106         * bindings/python/rb.override:
3107         * lib/rb-debug.c: (rb_debug_real):
3108         * lib/rb-debug.h:
3109         * plugins/rb/__init__.py: don't print out an extra newline when
3110         diverting python print statements to RB's debug log.
3112 2006-07-09  James Livingston  <doclivingston@gmail.com>
3114         * rhythmdb/rhythmdb-property-model.c:
3115         (rhythmdb_property_model_drag_data_get):
3116         * sources/rb-sourcelist-model.c:
3117         (rb_sourcelist_model_row_draggable),
3118         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
3119         from the row reference is still valid. Fixes #346709.
3121 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3123         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
3125         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
3126         If all selected entries have the same rating, use that as the initial
3127         rating for the multiple song info dialog.  Fixes #345970.
3129 2006-07-09  James Livingston  <doclivingston@gmail.com>
3131         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
3132         to prevent #343345:
3133                 - don't ever scale to 1x1, just hide the image in that case
3134                 - don't fade when the window is minimised
3135                 - use the last-good allocation width, not the current one - as
3136                   it sometimes get weird values.
3138 2006-07-08  William Jon McCann  <mccann@jhu.edu>
3140         * data/ui/rhythmbox-ui.xml:
3141         * shell/rb-shell.c:
3142         Remove Import audio CD from menu.  Fixes #339732
3144 2006-07-08  James Livingston  <doclivingston@gmail.com>
3146         * metadata/test-metadata.c: (print_metadata_string),
3147         (load_metadata_cb): print out all the metadata we have read, not just
3148         a few.
3150         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
3151         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
3153 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3155         * plugins/lyrics/lyrics.py:
3156         Change the lyrics cache location to match Quod Libet's,
3157         and fix the '&' -> 'and' substitution to require spaces.
3159 2006-07-08  James Livingston  <doclivingston@gmail.com>
3161         * bindings/python/rb.defs:
3162         * bindings/python/rb.override: bind rb_debug_real to rb._debug
3164         * configure.ac:
3165         * plugins/Makefile.am:
3166         * plugins/rb-python-module.c: (rb_python_module_init_python):
3167         * plugins/rb/Makefile.am: add a place to put common python classes.
3168         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
3169         rb module/
3171         * plugins/lyrics/Makefile.am:
3172         * plugins/lyrics/Loader.py:
3173         * plugins/artdisplay/artdisplay/Makefile.am:
3174         * plugins/artdisplay/artdisplay/Loader.py:
3175         * plugins/rb/Loader.py: move the loader class to rb.Loader
3177         * plugins/rb/__init__.py: redirect stdout from python (e.g.
3178         "print ...") to rb_debug. error output (e.g. exceptions) are still
3179         printed on stderr.
3181         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3182         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3183         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
3184         instead of Loader.
3186         Fixes #346895.
3188 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3190         * shell/rb-shell-player.xml:
3191         * shell/rb-shell-player.h:
3192         Correct the details of the playing-song-property-changed signal.
3194 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3196         * lib/rb-marshal.list:
3197         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3198         (rb_shell_player_entry_changed_cb):
3199         * shell/rb-shell-player.h:
3200         * shell/rb-shell-player.xml:
3201         Emit a dbus signal when a property is changed on the playing entry.
3202         Fixes #332461.
3204 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3206         * rhythmdb/rhythmdb-private.h:
3207         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3208         Fix build break with gcc 4.1 by changing RBRefString pointers into
3209         gpointers.
3211 2006-07-07  James Livingston  <doclivingston@gmail.com>
3213         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
3214         remove an extraneous !, which caused it not to monitor folders in the
3215         library with no tracks in them. Fixes #346759.
3217 2006-07-07  James Livingston  <doclivingston@gmail.com>
3219         * rhythmdb/rhythmdb-private.h:
3220         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
3221         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
3222         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
3223         (rhythmdb_entry_get_string):
3224         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
3225         flags for the affected properties. _sync_mirrored will get run
3226         automatically when a dirty property is accessed, which improves
3227         performance a bit (especially during startup) as we don't need to sync
3228         every time they change. From #325215.
3230         * tests/bench-rhythmdb-load.c
3231         * tests/Makefile.am: add a RhythmDB loading benchmark.
3233 2006-07-06  James Livingston  <doclivingston@gmail.com>
3235         * bindings/python/rb.defs:
3236         * bindings/python/rb.override: some more fixes, so that
3237         python classes derived from RBSource work correctly.
3239 2006-07-06  James Livingston  <doclivingston@gmail.com>
3241         * configure.ac: bump pygtk requirements to 2.8, since we're already
3242         using some features of it, and weird things will happen if people are
3243         actually trying to use pygtk 2.6.
3245         * bindings/python/rb.override:
3246         * bindings/python/rhythmdb.defs:
3247         * bindings/python/rhythmdb.override: allow python to set
3248         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
3250         * sources/rb-browser-source.c: remove some left over member variables
3252 2006-07-06  James Livingston  <doclivingston@gmail.com>
3254         * rhythmdb/rhythmdb.c:
3255         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
3256         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
3257         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
3258         former is pointless (as rhythmdb already knows which it should use)
3259         and the latter doesn't seem useful at all, and possibly bad. From
3260         #330226.
3262         * bindings/python/rhythmdb.defs:
3263         * bindings/python/rhythmdb.override:
3264         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
3265         (handle_song_listing):
3266         * podcast/rb-podcast-manager.c:
3267         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
3268         (rb_podcast_manager_insert_feed):
3269         * sources/rb-audiocd-source.c: (entry_set_string_prop),
3270         (rb_audiocd_create_track_entry):
3271         * sources/rb-ipod-source.c: (entry_set_string_prop),
3272         (add_ipod_song_to_db):
3273         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
3274         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
3276 2006-07-05  James Livingston  <doclivingston@gmail.com>
3278         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
3279         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
3280         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
3281         totem-plparser gives us, or the file name if it doesn't give us
3282         anything. Set the default file name when saving too. Fixes #345261
3284 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3286         patch by: Ed Catmur  <ed@catmur.co.uk>
3288         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
3289         Skip all hidden directories, not just trash, and skip unreadable
3290         files.  Fixes #346322.
3292 2006-07-04  James Livingston  <doclivingston@gmail.com>
3294         * plugins/rb-module.h:
3295         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
3296         (rb_module_new):
3297         * plugins/rb-plugin.h:
3298         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
3299         (rb_plugin_finalise), (rb_plugin_set_property),
3300         (rb_plugin_get_property), (rb_plugin_activate),
3301         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
3302         (rb_plugin_find_file):
3303         * plugins/rb-plugins-engine.c: (load_plugin_module):
3304         * plugins/rb-python-module.c: (rb_python_module_new_object),
3305         (rb_python_module_new):
3306         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
3307         rb_plugin_find_file method for locating plugin-specific data. Fixes
3308         346473.
3310         * bindings/python/rb.defs:
3311         * plugins/Makefile.am:
3312         * plugins/generic-player/rb-generic-player-plugin.c:
3313         (create_source_cb):
3314         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
3316 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3318         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
3319         (rb_metadata_can_save), (rb_metadata_save):
3320         Protect the dbus connection with a mutex.
3322 2006-07-03  James Livingston  <doclivingston@gmail.com>
3324         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
3325         case of the parser/tagger not being able to be created.
3327 2006-07-03  James Livingston  <doclivingston@gmail.com>
3329         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3331         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
3332         window resizable, as it used to be. Fixes #345940.
3334 2006-07-01  James Livingston  <doclivingston@gmail.com>
3336         Patch from Ståle Lyngaas  <staale@lyngaas.com>
3338         * rhythmdb/rhythmdb.h:
3339         * rhythmdb/rhythmdb-private.h:
3340         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3341         (rhythmdb_tree_parser_end_element), (save_entry):
3342         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
3343         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
3344         (set_props_from_metadata), (rhythmdb_entry_set_internal),
3345         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
3346         MusicBrainz track IDs in the database, and bump the on-disk version
3347         number to trigger a metadata reload.
3349         * backends/gstreamer/rb-player-gst.c: (process_tag):
3350         * metadata/rb-metadata-common.c:
3351         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
3352         (rb_metadata_gst_field_to_gst_tag):
3353         * metadata/rb-metadata.h: grab MB track IDs and use them.
3355         * plugins/audioscrobbler/rb-audioscrobbler.c:
3356         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
3357         (rb_audioscrobbler_timeout_cb),
3358         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
3359         the other metadata. Fixes #343491.
3361 2006-06-30  James Livingston  <doclivingston@gmail.com>
3363         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
3364         method.
3366 2006-06-30  James Livingston  <doclivingston@gmail.com>
3368         * bindings/python/rb.defs:
3369         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3370         (rb_browser_source_songs_show_popup_cb),
3371         (default_show_entry_popup):
3372         * sources/rb-browser-source.h:
3373         * sources/rb-library-source.c: (rb_library_source_class_init),
3374         (rb_library_source_constructor), (impl_show_popup): allow
3375         RBBrowserSource-derived sources to override the entry context menu
3376         properly - by making it a virtual function, rather than relying on
3377         signal handler order (which doesn't really work).
3379 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3381         * rhythmdb/rhythmdb-query-model.c:
3382         (rhythmdb_query_model_reapply_query_cb):
3383         Use the original query, not the preprocessed query, when redoing
3384         the query to pick up entries that previously didn't match.
3385         Preprocessing the query twice is bad.  Fixes #346186.
3387 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3389         * plugins/audioscrobbler/rb-audioscrobbler.c:
3390         (rb_audioscrobbler_song_changed_cb):
3391         Just check if the elapsed time has been reset, rather
3392         than checking if it's a different track.  Fixes #344827.
3394 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3396         * backends/gstreamer/rb-player-gst.c:
3397         Set cdda source read-speed to 1.  Fixes gaps in playback while the
3398         drive spins up, #344576.
3400 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3402         * plugins/audioscrobbler/rb-audioscrobbler.c:
3403         (rb_audioscrobbler_perform):
3404         Use HTTP/1.1.  Fixes #345895.
3406 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3408         * lib/rb-preferences.h:
3409         * lib/rb-proxy-config.c: (rb_proxy_config_init),
3410         (check_auto_proxy_config), (get_proxy_config):
3411         Don't try to use a HTTP proxy if no proxy host is specified.
3412         Alert the user to the fact that we don't support automatic proxy
3413         configuration as infrequently as possible.  From #345712.
3415 2006-06-25  James Livingston  <doclivingston@gmail.com>
3417         * rhythmdb/rhythmdb-property-model.c:
3418         (rhythmdb_property_model_set_property): connect to the
3419         "post-entry-delete" signal, rather than "entry-deleted". This ensures
3420         things get removed correctly, fixes #338183.
3422 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3424         * rhythmdb/rhythmdb-query-model.c:
3425         (rhythmdb_query_model_drag_data_received):
3426         Fix build break.
3428 2006-06-25  James Livingston  <doclivingston@gmail.com>
3430         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3432         * widgets/rb-search-entry.c: (rb_search_entry_init),
3433         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
3434         search box have a pale yellow background when it's in use, except for
3435         when the user has an "accessability" theme. Code based heavily on
3436         Epiphany's. Fixes #344416.
3438 2006-06-25  James Livingston  <doclivingston@gmail.com>
3440         * plugins/lyrics/lyrics.py:
3441         * plugins/pythonconsole/pythonconsole.py:
3442         * plugins/sample-python/sample-python.py: don't import gettext stuff
3443         as _, as the C code does this for us. Fixes i18n for python plugins,
3444         #343081
3446 2006-06-25  James Livingston  <doclivingston@gmail.com>
3448         * rhythmdb/rhythmdb-query-model.c:
3449         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
3450         a model use a reorder rather then deleting and re-adding the entry.
3451         This means it does do weird things like stop playback of a track that
3452         is dragged, fixing #337657.
3454 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3456         * metadata/rb-metadata-dbus-service.c:
3457         Add missing #include <glib/gi18n.h> from previous commit.
3459 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3461         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3463         * metadata/rb-metadata-dbus-service.c: (main):
3464         Initialize gettext in the metadata helper.
3465         * metadata/rb-metadata-gst.c:
3466         Make some strings translatable.  Fixes #345286.
3468 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3470         * configure.ac:
3471         * lib/Makefile.am:
3472         * lib/rb-stock-icons.c: (rb_stock_icons_init):
3473         Inline the custom icons so they can always be loaded, but are still
3474         themable.  Fixes #345796.
3476 2006-06-23  James Livingston  <doclivingston@gmail.com>
3478         * sources/rb-auto-playlist-source.c:
3479         (rb_auto_playlist_source_do_query): stop the search box being applied
3480         for limits in auto playlists. Fixes #345307.
3482 2006-06-23  James Livingston  <doclivingston@gmail.com>
3484         * shell/rb-shell-clipboard.c:
3485         (rb_shell_clipboard_set_source_internal),
3486         (rb_shell_clipboard_sync), (add_playlist_to_menu),
3487         (rebuild_playlist_menu): don't use the add-to-playlist menu for
3488         non-library tracks, as we don't supprot it yet. From #345248.
3490 2006-06-23  James Livingston  <doclivingston@gmail.com>
3492         patch by: Brian Cameron  <brian.cameron@sun.com>
3494         * plugins/generic-player/rb-generic-player-plugin.c:
3495         * plugins/generic-player/rb-generic-player-source.c:
3496         * plugins/generic-player/rb-nokia770-source.c:
3497         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
3498         Fixes 345673.
3500 2006-06-22  James Livingston  <doclivingston@gmail.com>
3502         * backends/rb-player.c: (rb_player_interface_init):
3503         * lib/rb-marshal.list:
3504         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3505         * rhythmdb/rhythmdb-query-model.c:
3506         (rhythmdb_query_model_class_init):
3507         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
3508         * shell/rb-shell-player.c: (rb_shell_player_class_init):
3509         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
3510         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
3511         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3512         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
3513         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
3514         possible not.
3516 2006-06-20  James Livingston  <doclivingston@gmail.com>
3518         patch by Alex Lancaster  <alexl@users.sourceforge.net>
3520         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
3521         metadata to clients. Fixes #345276.
3523 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3525         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
3526         (rb_add_id3_tagger):
3527         Fix plugin/element version detection for id3v2mux.
3529 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3531         * sources/rb-source.c: (rb_source_finalize),
3532         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
3533         (_autohide_update_visibility),
3534         (_rb_autohide_source_post_entry_deleted_cb),
3535         (_rb_autohide_source_row_inserted_cb),
3536         (_rb_source_hide_when_empty):
3537         Use post-entry-delete signal to update status and autohide sources.
3539 2006-06-20  James Livingston  <doclivingston@gmail.com>
3541         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
3542         "selection changed" idle callback, if present.
3544 2006-06-19  James Livingston  <doclivingston@gmail.com>
3546         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3548         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
3549         don't try to translate the empty string. Fixes #345285.
3551 2006-06-19  James Livingston  <doclivingston@gmail.com>
3553         * bindings/python/rhythmdb.override: more python binding fixes
3555 2006-06-19  James Livingston  <doclivingston@gmail.com>
3557         * lib/rb-util.c: (rb_copy_function):
3558         * lib/rb-util.h: add a function that returns the same pointer it was
3559         passed.
3561         * rhythmdb/rhythmdb.h:
3562         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
3563         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
3564         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
3565         and RhythmDBEntryType into boxed types. This allows them to be used
3566         from python. Note that entry-types aren't actually reference counted
3567         (yet).
3569         * bindings/python/rb.defs:
3570         * bindings/python/rhythmdb.defs:
3571         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
3572         return types of some bindings.
3574         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
3575         (process_added_entries_cb), (rhythmdb_entry_finalize),
3576         (rhythmdb_entry_delete):
3577         * daapsharing/rb-daap-connection.c:
3578         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
3579         (rb_daap_connection_get_property):
3580         * plugins/generic-player/rb-generic-player-source.c:
3581         (rb_generic_player_source_load_songs), (load_playlist_file):
3582         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3583         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
3584         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
3585         (idle_process_update), (rhythmdb_query_model_add_entry),
3586         (rhythmdb_query_model_insert_into_main_list),
3587         (rhythmdb_query_model_insert_into_limited_list),
3588         (rhythmdb_query_model_remove_from_main_list),
3589         (rhythmdb_query_model_remove_from_limited_list),
3590         (rhythmdb_query_model_drag_data_received),
3591         (rhythmdb_query_model_add_results),
3592         (rhythmdb_query_model_get_column_type),
3593         (rhythmdb_query_model_get_value):
3594         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3595         (rhythmdb_tree_entry_delete), (remove_one_song):
3596         * shell/rb-play-order-linear-loop.c:
3597         (rb_linear_play_order_loop_get_next),
3598         (rb_linear_play_order_loop_get_previous):
3599         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
3600         (rb_linear_play_order_get_previous):
3601         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
3602         (rb_queue_play_order_get_previous):
3603         * shell/rb-play-order-random.c: (rb_random_play_order_init),
3604         (rb_random_filter_history), (rb_random_play_order_get_next),
3605         (rb_random_play_order_go_next), (rb_random_db_changed),
3606         (rb_random_playing_entry_changed):
3607         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
3608         (remove_from_history), (add_randomly_to_history),
3609         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
3610         * shell/rb-play-order.c: (rb_play_order_class_init),
3611         (rb_play_order_set_property), (rb_play_order_get_property),
3612         (rb_play_order_update_have_next_previous):
3613         * shell/rb-play-order.h:
3614         * shell/rb-shell-clipboard.c:
3615         (rb_shell_clipboard_process_deletions),
3616         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
3617         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
3618         * sources/rb-auto-playlist-source.c:
3619         (rb_auto_playlist_source_constructor):
3620         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3621         (rb_browser_source_set_property), (rb_browser_source_get_property),
3622         (rb_browser_source_do_query):
3623         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
3624         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
3625         * sources/rb-ipod-source.c: (add_rb_playlist),
3626         (add_ipod_song_to_db), (impl_paste):
3627         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3628         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
3629         * sources/rb-library-source.c: (layout_example_label_update):
3630         * sources/rb-missing-files-source.c:
3631         (rb_missing_files_source_class_init),
3632         (rb_missing_files_source_set_property),
3633         (rb_missing_files_source_get_property),
3634         (rb_missing_files_source_new):
3635         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3636         (rb_playlist_source_set_property),
3637         (rb_playlist_source_get_property):
3638         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3639         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
3640         (construct_query_from_selection):
3641         * sources/rb-removable-media-source.c: (impl_delete_thyself):
3642         * sources/rb-static-playlist-source.c:
3643         (rb_static_playlist_source_constructor),
3644         (rb_static_playlist_source_add_location_internal):
3645         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3646         * widgets/rb-header.c: (rb_header_class_init),
3647         (rb_header_set_property), (rb_header_get_property):
3648         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
3649         (rb_library_browser_set_property),
3650         (rb_library_browser_get_property):
3651         * widgets/rb-song-info.c: (rb_song_info_class_init),
3652         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
3653         change, do s/pointer/boxed/ in many places and free entry-types
3654         properly.
3656 2006-06-18  James Livingston  <doclivingston@gmail.com>
3658         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
3659         unushed GThreadPool non-exclusive threads every now and then.
3661         * rhythmdb/rhythmdb-private.h:
3662         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
3663         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
3664         threads. Fixes #341593
3666 2006-06-19  James Livingston  <doclivingston@gmail.com>
3668         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3669         the "Track number" checkbox actually work for playlists. From #329986.
3671 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3673         * plugins/generic-player/rb-generic-player-source.c:
3674         Get playlist and audio folder information from HAL.  Fixes #333845.
3676 2006-06-18  James Livingston  <doclivingston@gmail.com>
3678         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
3680         * widgets/rb-entry-view.h:
3681         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3682         (rb_entry_view_append_column_custom),
3683         (rb_entry_view_insert_column_custom): add support for inserting custom
3684         columns at arbitrary locations, rather than just appending to the end.
3686         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3687         the playlists "track number" column go at the start, and add a normal
3688         track number column. Fixes #329986.
3690 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
3692         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
3693         a mnemonic conflict.  Add ellipses to the edit button.
3694         * sources/rb-library-source.c:
3695         (rb_library_source_edit_profile_clicked_cb),
3696         (impl_get_config_widget):  Hide dialog separator.  Assign a 
3697         mnemonic widget to the labels. Fixes #344114.
3699 2006-06-18  James Livingston  <doclivingston@gmail.com>
3701         * configure.ac: bump version
3702         * NEWS: add NEWS for 0.9.5
3704 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3706         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
3707         (rb_uri_handle_recursively):
3708         Don't attempt to recurse into directories we can't open.  
3709         Fixes #341485.
3711 2006-06-18  James Livingston  <doclivingston@gmail.com>
3713         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
3715         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
3716         #344610.
3718 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3720         * bindings/python/rb.defs:
3721         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
3722         * shell/rb-shell-player.h:
3723         * shell/rb-shell.c: (rb_shell_play_entry):
3724         Add source parameter to rb_shell_player_play_entry, using the selected
3725         source if not specified.
3727         * shell/rb-play-order.c: (rb_play_order_class_init),
3728         (rb_play_order_finalize), (rb_play_order_query_model_changed),
3729         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
3730         (default_playing_entry_removed):
3731         * shell/rb-play-order.h:
3732         Move entry removal handling back to the row-deleted signal, as we need
3733         the entry to be present in the model.  When changing to the next entry
3734         after the playing entry is deleted, set the new entry as the playing
3735         entry and then sync it to the player in an idle handler, so we don't
3736         end up playing it if it was removed too.
3737         * shell/rb-play-order-queue.c:
3738         (rb_queue_play_order_playing_entry_changed),
3739         (rb_queue_play_order_playing_entry_removed):
3740         Use the playing-entry-removed handler from the play order class,
3741         setting a flag so we don't try to remove the already-removed entry
3742         from the model.
3744         This makes removal of the playing entry from playlists etc. work more
3745         or less correctly for all play orders.  Fixes #344627.
3747 2006-06-17  James Livingston  <doclivingston@gmail.com>
3749         patch by: Elijah Newren  <newren@gmail.com>
3751         * tests/test-rhythmdb.c: fix the build with older versions of check
3752         (again). Fixes #343718.
3754 2006-06-17  James Livingston  <doclivingston@gmail.com>
3756         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
3757         name for capsfilter's "caps" property. Fixes #344968.
3759 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3761         * shell/rb-shell-player.c: (rb_shell_player_playpause):
3762         Don't leak the selected entry list when finding an entry to play.
3764 2006-06-17  James Livingston  <doclivingston@gmail.com>
3766         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
3767         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
3768         as a O(1) one works fine, and it will get called often when the user
3769         deleted multiple tracks. Part of #344922.
3771 2006-06-17  James Livingston  <doclivingston@gmail.com>
3773         * shell/rb-shell-player.c: (rb_shell_player_stop): make
3774         rb_shell_player_stop and rb_shell_player_playpause not mutually
3775         recursive. Fixed #336912.
3777 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3779         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
3780         Treat nested elements inside properties as unknown.  Fixes parsing of
3781         podcast feeds with unescaped HTML in description tags, bug #344532.
3783 2006-06-15  William Jon McCann  <mccann@jhu.edu>
3785         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
3786         when quitting.  Fixes #344875.
3788 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3790         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
3791         Move the playing-entry-removed handling to after the normal entry
3792         delete handling, since we're called after the entry has been removed
3793         from the query model now.  Fixes crashes described in #344627.
3795 2006-06-13  William Jon McCann  <mccann@jhu.edu>
3797         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
3798         (rb_rating_get_rating_from_widget):
3799         * widgets/rb-rating.c: (rb_rating_class_init),
3800         (rb_rating_finalize), (rb_rating_get_property),
3801         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
3802         (rb_rating_button_press_cb):
3803         Don't crash when ratings icons can't be found.  Fixes #344533.
3805 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3807         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
3809 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3811         * Makefile.am:
3812         * configure.ac:
3813         * remote/Makefile.am:
3814         * remote/dbus/Makefile.am:
3815         * remote/dbus/rb-client.c:
3816         * shell/Makefile.am:
3817         New dbus client program providing --play/--next etc. arguments.
3818         Fixes #340863, #155763.
3820 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3822         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
3823         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
3825 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
3827         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
3829         * rhythmdb/rhythmdb-query-model.c:
3830         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
3831         to Library incorrectly
3833 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3835         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
3836         Return input string untouched if gnome_vfs_uri_new returns NULL.
3837         * sources/rb-static-playlist-source.c: (impl_receive_drag),
3838         (rb_static_playlist_source_add_list_uri):
3839         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
3840         URIs don't break it.  Fixes #339033.
3842 2006-06-08  James Livingston  <doclivingston@gmail.com>
3844         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
3845         for sources on the edge (i.e. the queue). Fixes #328409.
3847         * sources/rb-ipod-source.c: fix typo
3849 2006-06-08  James Livingston  <doclivingston@gmail.com>
3851         * configure.ac:
3852         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
3853         --enable-ipod-writing to enable the ipod syncing code.
3855 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3857         * sources/rb-library-source.c: (layout_example_label_update):
3858         add missing comma so we don't generate broken markup.
3860 2006-06-08  James Livingston  <doclivingston@gmail.com>
3862         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
3863         tag-merging with id3v2mux as well as id3mux. From #342330.
3865 2006-06-07  James Livingston  <doclivingston@gmail.com>
3867         * tests/test-rhythmdb.c: #define fail_if for old version of check
3868         which don't have it. Hopefully fixes #343718.
3870 2006-06-07  James Livingston  <doclivingston@gmail.com>
3872         * shell/rb-playlist-manager.c:
3873         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
3874         g_value_array_free with NULL. Fixes #341053.
3876 2006-06-07  James Livingston  <doclivingston@gmail.com>
3878         * shell/rb-playlist-manager.c:
3879         (rb_playlist_manager_playlist_entries_changed),
3880         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
3881         instead of "row-removed", which fixes updating "burn playlist"
3882         sensitivity. Fixes #331119.
3884 2006-06-07  James Livingston  <doclivingston@gmail.com>
3886         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
3887         rather than restarting if the source uses _RETRY and there is an
3888         actual error (like an undecodable stream) rather than it just dropping
3889         out and causing EOS.
3891 2006-06-07  James Livingston  <doclivingston@gmail.com>
3893         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
3894         free the pixbufs if they couldn't be loaded. Fixed #343852.
3896 2006-06-07  James Livingston  <doclivingston@gmail.com>
3898         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
3899         the close button on the dialog work. Fixes #335346.
3901 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3903         * sources/rb-sourcelist-model.c: (path_is_droppable),
3904         (path_is_reorderable):
3905         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
3906         (row_activated_cb), (emit_show_popup), (key_release_cb),
3907         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3908         Ignore group marker rows in the source list.  Fixes #344089, a couple
3909         of other crashers, and some weird UI glitches too.
3911 2006-06-07  James Livingston  <doclivingston@gmail.com>
3913         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
3914         the seeking query fails. This is needed because many gst elements
3915         don't implement the seeking query yet. Should fix 329977.
3917 2006-06-06  James Livingston  <doclivingston@gmail.com>
3919         * configure.ac: bump version for a prerelease, turn on track transfer
3920         by default.
3922         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
3923         ipod transfer stuff, since it has big issues and we'll hopefully land
3924         real support (bug 310774) after 0.9.5
3926 2006-06-06  James Livingston  <doclivingston@gmail.com>
3928         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
3929         id3v2mux once we've detected it.
3931 2006-06-06  James Livingston  <doclivingston@gmail.com>
3933         * lib/Makefile.am:
3934         * tests/test-rhythmdb.c: undo accidental commit which caused
3935         rb-thread.c to be built (which it isn't normally)
3937 2006-06-06  James Livingston  <doclivingston@gmail.com>
3939         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
3940         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
3941         fail_{if/unless} calls, as some versions of check need them (they are
3942         optional in others). Should fix bug 343718.
3944 2006-06-06  James Livingston  <doclivingston@gmail.com>
3946         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
3947         343836.
3948         
3949         * lib/Makefile.am:
3950         * lib/rb-thread.c: (process_actions):
3951         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
3952         tests that don't pass.
3954 2006-06-05  James Livingston  <doclivingston@gmail.com>
3956         * data/glade/Makefile.am:
3957         * data/glade/load-failure.glade:
3958         * data/rhythmbox.schemas: remove the remainder of the old load-failure
3959         dialog.
3961 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3963         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
3964         checked in.
3966 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3968         * bindings/python/rb.defs:
3969         * sources/rb-source.h:
3970         * sources/rb-source.c: (rb_source_class_init),
3971         (rb_source_set_property), (rb_source_get_property),
3972         (rb_sourcelist_group_get_type):
3973         Add 'sourcelist-group' property on the RBSource class, describing how
3974         sources should be grouped in the source list.
3976         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
3977         (rb_sourcelist_model_new), (real_row_is_separator),
3978         (rb_sourcelist_model_is_row_visible),
3979         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
3980         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
3981         (rb_sourcelist_model_row_draggable),
3982         (rb_sourcelist_model_row_inserted_cb),
3983         (rb_sourcelist_model_row_deleted_cb),
3984         (rb_sourcelist_model_get_group_path):
3985         * sources/rb-sourcelist-model.h:
3986         * sources/rb-sourcelist.c: (rb_sourcelist_init),
3987         (rb_sourcelist_append):
3988         Add group marker rows for each sourcelist group, and use these to
3989         insert sources in the right place.  Sort transient sources (DAAP
3990         shares) by name.  Show the group marker rows as separators when the
3991         next visible row is a source.  Make persistant sources (playlists) and
3992         removable sources reorderable using drag and drop, restricting them
3993         within the source groups.
3994         
3995         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
3996         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
3997         * sources/rb-daap-source.c: (rb_daap_source_new):
3998         * sources/rb-ipod-source.c: (rb_ipod_source_new):
3999         * sources/rb-static-playlist-source.c:
4000         (rb_static_playlist_source_new):
4001         * plugins/generic-player/rb-generic-player-source.c:
4002         (rb_generic_player_source_new):
4003         * plugins/generic-player/rb-nokia770-source.c:
4004         (rb_nokia770_source_new):
4005         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
4006         Add source list group information to existing source classes.
4008         Fixes #318754 and #336492.
4010 2006-06-04  James Livingston  <doclivingston@gmail.com>
4012         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
4013         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
4014         win32 build fixes.
4016 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4018         * rhythmdb/rhythmdb-query-model.c:
4019         (rhythmdb_query_model_class_init),
4020         (rhythmdb_query_model_remove_from_main_list):
4021         * rhythmdb/rhythmdb-query-model.h:
4022         Add a new 'post-entry-delete' signal, emitted when the entry has been
4023         removed from the model's data structures.
4025         * shell/rb-play-order.c: (rb_play_order_finalize),
4026         (rb_play_order_query_model_changed),
4027         (rb_play_order_post_entry_delete_cb):
4028         Use the new signal to update the play order, so the queue play order
4029         doesn't try to scroll to entries that don't exist in a way that causes
4030         the tree view to crash.  Fixes #340216.
4032 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4034         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
4035         Fix rb_debug call I missed previously.
4037 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4039         * metadata/rb-metadata-gst.c:
4040         Don't use NULL as the error message for ignored files, as it crashes
4041         with some C libraries.  Fixes #343713.
4043 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4045         * widgets/rb-dialog.c: (rb_error_dialog):
4046         * widgets/rb-dialog.h:
4047         Mark rb_error_dialog as taking printf-like arguments, and use a format
4048         string for the primary message rather than passing in the message
4049         directly.
4051         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
4052         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
4053         (info_available_cb):
4054         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
4055         * shell/rb-removable-media-manager.c:
4056         (rb_removable_media_manager_eject_medium_cb):
4057         Make sure all calls to rb_error_dialog use string constants for the
4058         format string rather than passing the error message directly.  Remove
4059         an extra %s from the message used when playback fails.  Fixes #343562.
4061         * lib/rb-debug.h:
4062         * sources/rb-audiocd-source.c:
4063         * plugins/audioscrobbler/rb-audioscrobbler.c:
4064         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
4065         Mark rb_debug as taking printf-like arguments and fix a few resulting
4066         warnings.
4068 2006-06-02  James Livingston  <doclivingston@gmail.com>
4070         * configure.ac:
4071         + macros/check.m4: add support for using check for unit tests, the .m4
4072         files is so autogen can run without check being installed
4074         * tests/Makefile.am:
4075         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
4076         some of the old tests, and add some new ones. Currently
4077         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
4078         yet (the query doesn't return any entries).
4080         - tests/deserialization-test1.xml:
4081         - tests/deserialization-test2.xml:
4082         - tests/deserialization-test3.xml:
4083         - tests/test-rhythmdb-indexing.c:
4084         - tests/test-rhythmdb-simple.c:
4085         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
4086         have been ported
4088         - tests/test-cd.c:
4089         - tests/test-cmdline.c: remove obsolete tests
4091 2006-06-02  James Livingston  <doclivingston@gmail.com>
4093         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4094         (rb_add_id3_tagger), (rb_metadata_init): add support for using
4095         id3v2mux, and check whether we are using a version of id3mux that has
4096         the correct merge-mode behaviour.
4098         * plugins/sample-python/Makefile.am: fix distcheck.
4100         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
4101         the changed-files source was added before trying to remove it.
4103         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
4104         *old* bug which would crash if a query with top-level disjunctions
4105         tried to check later disjunctive parts. Hooray for unit-testing.
4107 2006-06-02  William Jon McCann  <mccann@jhu.edu>
4109         * player/rb-recorder-gst.c (rb_recorder_set_device):
4110         Check for a null drive.
4112 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4114         * lib/Makefile.am:
4115         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4116         Register the app icon as a builtin if the icon theme can't find it.
4118 2006-05-31  James Livingston  <doclivingston@gmail.com>
4120         * player/rb-recorder-gst.c: add missing include.
4122 2006-05-30  William Jon McCann  <mccann@jhu.edu>
4124         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
4125         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
4126         (tick_timeout_cb), (rb_recorder_sync_pipeline),
4127         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
4128         (rb_recorder_set_device), (rb_recorder_get_default_device):
4129         * shell/main.c: (main):
4130         * shell/rb-removable-media-manager.c:
4131         (rb_removable_media_manager_finalize),
4132         (get_nautilus_burn_drive_for_path),
4133         (rb_removable_media_manager_playing_uri_changed_cb),
4134         (rb_removable_media_manager_load_media),
4135         (nautilus_burn_drive_get_device),
4136         (rb_removable_media_manager_scan):
4137         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
4139         Update for libnautilus-burn 2.15.3 API changes.
4140         Fixes #342604
4142 2006-05-30  James Livingston  <doclivingston@gmail.com>
4144         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
4145         "return" to that it asks for the password again if it was wrong.
4147 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4149         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
4150         typefind element.
4152 2006-05-30  James Livingston  <doclivingston@gmail.com>
4154         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
4155         (download_progress_cb): don't do wonky things if the transfer
4156         "suceeds" without transferring any data.
4158 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4160         * sources/rb-library-source.c: (layout_example_label_update),
4161         (build_filename):  Fix crash when no audio profile is selected.
4162         Fixes #341447.
4164 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4166         * shell/rb-shell.c: (rb_shell_clear_queue):
4167         * shell/rb-shell.h:
4168         * shell/rb-shell.xml:
4169         * sources/rb-play-queue-source.c:
4170         (rb_play_queue_source_clear_queue),
4171         (rb_play_queue_source_cmd_clear):
4172         * sources/rb-play-queue-source.h:
4173         Add clearQueue dbus method.
4175 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4177         * shell/main.c: (main):  Implement --quit option.
4179 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4181         * rhythmdb/rhythmdb-private.h:
4182         * rhythmdb/rhythmdb-tree.h:
4183         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
4184         (rhythmdb_entry_insert), (rhythmdb_entry_set),
4185         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
4186         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
4187         (rhythmdb_entry_get_boolean):
4188         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
4189         bitmask, giving the db backend anything past the first 16 bits for 
4190         its own private use.
4192         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4193         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
4194         Add a 'loading' flag to indicate that an entry is being loaded from
4195         disk, and use that to ignore entry_set operations on such entries
4196         rather than the 'inserted' flag, which doesn't quite mean the same
4197         thing.  Fixes #342694.
4199 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4201         * shell/rb-shell.xml: Remove visibility property, since it causes
4202         crashes (dbus bug 7057) and doesn't do much else.
4204 2006-05-28  James Livingston  <doclivingston@gmail.com>
4206         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
4208         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4209         * po/POTFILES.in: fix some more i18n issues.
4211 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4213         * bindings/python/rb.defs:
4214         * shell/rb-shell-player.c: (rb_shell_player_playpause),
4215         (filter_mmkeys):
4216         * shell/rb-shell-player.h:
4217         Deprecate the useless 'ignore_stop' parameter to
4218         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
4219         API.  From bug #334829.
4221 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4223         * plugins/generic-player/rb-generic-player-source.c:
4224         (visit_playlist_dirs), (default_transform_playlist_uri):
4225         When playlist parsing fails, unref the playlist, not the parent
4226         source.  Fix memory leak in playlist uri transform.
4227         * plugins/generic-player/rb-nokia770-source.c:
4228         (impl_transform_playlist_uri):
4229         Fix memory leak in playlist uri transform.
4231 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
4233         * doc/reference/Makefile.am: fix grk-doc build
4235 2006-05-27  James Livingston  <doclivingston@gmail.com>
4237         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4239         * plugins/lyrics/lyrics.py:
4240         * po/POTFILES.in: Make strings in plugins translatable. From bug
4241         343081.
4243 2006-05-27  James Livingston  <doclivingston@gmail.com>
4245         * backends/Makefile.am:
4246         * backends/gstreamer/Makefile.am:
4247         * lib/Makefile.am:
4248         * plugins/audioscrobbler/Makefile.am:
4249         * plugins/generic-player/Makefile.am:
4250         * po/POTFILES.in:
4251         * rhythmdb/rhythmdb-monitor.c:
4252         * rhythmdb/rhythmdb.c:
4253         * sources/Makefile.am:
4254         * widgets/Makefile.am: fix compilation after some CVS surgery was
4255         done.
4257 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4259         * bindings/python/rhythmdb.defs:
4260         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
4261         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
4262         (rhythmdb_query_deserialize):
4263         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
4264         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
4265         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
4266         (rhythmdb_entry_register_type_alias),
4267         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
4268         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
4269         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
4270         (rhythmdb_entry_podcast_feed_get_type),
4271         (rhythmdb_entry_import_error_get_type),
4272         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
4273         * rhythmdb/rhythmdb.h:
4274         Allocate a specified amount of extra memory for each db entry, to be
4275         used to store fields specific to the entry type.  Optionally associate
4276         a name with each entry type, to be used when saving entries and
4277         auto playlists to disk.  Allow entry types to have multiple names
4278         to handle older playlist files that used '0' to represent 'song'.
4279         Use private data to store podcast fields.
4281         * rhythmdb/rhythmdb-private.h:
4282         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4283         (rhythmdb_tree_parser_end_element), (save_entry),
4284         (rhythmdb_tree_entry_set):
4285         Simplify property handling by using existing code to convert
4286         properties from strings to GValues and to set properties on entries.
4287         Other assorted changes due to the above.
4289         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4290         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
4291         * sources/rb-generic-player-source.c:
4292         (rb_generic_player_source_new):
4293         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4294         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
4295         * sources/rb-psp-source.c: (rb_psp_source_new):
4296         Update for changes to rhythmdb_entry_register_type.  None of these
4297         entry types need names or use private data.
4299         Fixes #337429.
4301 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4303         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
4304         Fix creation of ignored-file db entries - need to check for
4305         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
4307 2006-05-25  James Livingston  <doclivingston@gmail.com>
4309         * AUTHORS:
4310         * MAINTAINERS: update my email address
4312 2006-05-25  James Livingston  <doclivingston@gmail.com>
4314         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
4315         "(... mix)" when searching for lyrics. Cache the lyrics under
4316         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
4318 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4320         * sources/rb-import-errors-source.c:
4321         (rb_import_errors_source_class_init):
4322         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
4323         * sources/rb-browser-source.c: (rb_browser_source_class_init):
4324         * sources/rb-source.c: (rb_source_class_init),
4325         (default_move_to_trash):
4326         Implement the basic move-to-trash operation once in rb-source.c, 
4327         rather than in each source type that supports it.
4329         * plugins/ipod/rb-ipod-plugin.c:
4330         * shell/rb-removable-media-manager.c:
4331         * shell/rb-shell.c: (rb_shell_constructor):
4332         Only scan removable media once after loading plugins.  Add a flag
4333         plugins can use to check if the initial scan has been done.
4335         * data/rhythmbox.schemas:
4336         Enable ipod and generic-player plugins by default.
4337         
4338         * configure.ac:
4339         * data/ui/Makefile.am:
4340         * data/ui/generic-player-ui.xml:
4341         * data/ui/rhythmbox-ui.xml:
4342         * plugins/Makefile.am:
4343         * plugins/generic-player/Makefile.am:
4344         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
4345         * plugins/generic-player/rb-generic-player-plugin.c:
4346         * sources/Makefile.am:
4347         * sources/rb-generic-player-source.c:
4348         * sources/rb-generic-player-source.h:
4349         * sources/rb-nokia770-source.c:
4350         * sources/rb-nokia770-source.h:
4351         * sources/rb-psp-source.c: (visit_playlist_dirs):
4352         * sources/rb-psp-source.h:
4353         Pluginise generic player (and nokia770 and PSP) support and add
4354         move-to-trash for players not mounted read-only.
4355         Fixes #342868.
4357 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4359         * daapsharing/rb-daap-connection.c (handle_song_listing):
4360         Lower bound check for batch commit.  Fixes #342848
4362         * sources/rb-daap-source.c (rb_daap_source_get_status):
4363         Always set output variables if provided.
4365 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4367         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
4368         (rhythmdb_tree_entry_delete), (remove_one_song):
4369         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
4370         Fix two db entry reference counting problems.
4371         The initial reference on the entry is held by the db backend, but it
4372         was never being dropped.  The reference count was incremented when
4373         adding an entry to the deleted_entries map and to the
4374         deleted_entries_to_emit list, but only decremented for one of those.
4376 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4378         * daapsharing/rb-daap-connection.c (http_response_handler) 
4379         (rb_daap_connection_dispose):
4380         Call soup_session_abort to make sure there are no outstanding
4381         requests when we dispose of the connection.  Ignore cancelled
4382         messages in the callback.
4384 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4386         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
4387         (rb_daap_source_disconnect): Set a flag when disconnecting
4388         the source.  Check this flag in connection callback
4389         to see if we should release the connection.
4391 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4393         * daapsharing/Makefile.am:
4394         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
4395         (rb_daap_connection_class_init), (connection_connected),
4396         (connection_disconnected), (connection_operation_done),
4397         (build_message), (connection_set_error_message),
4398         (actual_http_response_handler), (http_get),
4399         (entry_set_string_prop), (emit_progress_idle),
4400         (handle_server_info), (handle_login), (handle_update),
4401         (handle_database_info), (handle_song_listing), (handle_playlists),
4402         (handle_playlist_entries), (handle_logout),
4403         (rb_daap_connection_new), (rb_daap_connection_is_connected),
4404         (connection_response_data_free), (connected_cb),
4405         (rb_daap_connection_connect), (disconnected_cb),
4406         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
4407         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
4408         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
4409         (rb_daap_connection_get_property):
4410         * daapsharing/rb-daap-connection.h:
4411         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
4412         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
4413         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
4414         (rb_daap_hash_generate):
4415         * daapsharing/rb-daap-hash.h:
4416         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4417         (rb_daap_get_icon), (remove_source), (stop_browsing),
4418         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
4419         (connection_connecting_cb), (connection_disconnected_cb),
4420         (release_connection), (rb_daap_source_connection_cb),
4421         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
4422         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
4424         Adds a better async API for connect and disconnect.  Doesn't share
4425         callback data for every async call.  Adds a connect signal.  Uses
4426         an operation-done signal to trigger the callbacks.  Displays an
4427         error when connections fail.  A few refcounting fixes to fix
4428         crashes.  Uses a weak pointer to set the connection to NULL so we
4429         don't clobber references.  Wait for each disconnect when shutting
4430         down sources.  Split out DAAP hash stuff into its own file.  Fix
4431         typo in header.
4433         Fixes #342643
4434         
4435 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4437         * sources/rb-auto-playlist-source.c:
4438         (rb_auto_playlist_source_new_from_xml):
4439         Initialize the gvalue used to hold the size limit correctly.
4440         Fixes #342744.
4442 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4444         * shell/rb-shell.c: (rb_shell_window_delete_cb),
4445         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
4446         * shell/rb-shell.h:
4447         * shell/rb-shell.xml:
4448         Convert rb_shell_quit into a dbus method, and add visibility dbus
4449         property.
4451 2006-05-22  James Livingston  <doclivingston@gmail.com>
4453         * rhythmdb/rhythmdb.h:
4454         * rhythmdb/rhythmdb.c: (sync_entry_changed),
4455         (rhythmdb_entry_is_editable), (action_thread_main),
4456         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
4457         vfuncs for can_sync_metadata, and sync_metadata. The default is always
4458         false, and syncing into the file.
4460         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
4461         (rhythmdb_entry_iradio_get_type),
4462         (rhythmdb_entry_import_error_get_type):
4463         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
4464         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
4465         change the DB.
4467 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4469         * rhythmdb/Makefile.am:
4470         * rhythmdb/rhythmdb-monitor.c:
4471         * rhythmdb/rhythmdb-private.h:
4472         * rhythmdb/rhythmdb-query.c:
4473         * rhythmdb/rhythmdb.c:
4474         Split up rhythmdb.c a bit.
4476 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4478         * data/glade/audioscrobbler-prefs.glade:
4479         Add a link to the last.fm server status page.
4481 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4483         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
4484         Capitalization fix.
4485         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
4486         (impl_create_configure_dialog):  UI layout fixes, remove
4487         dialog separator, and capitalization fix for window title.
4488         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
4489         and remove dialog separator.
4490         * data/glade/plugins.glade:  UI layout fixes.
4491         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
4492         and capitalization fix.  Fixes #342438.
4494 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4496         * data/glade/podcast-properties.glade:  Fix layout of the download 
4497         location.  Fixes #342431.
4499 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4501         * data/ui/rhythmbox-ui.xml:
4502         We only need one copy of the 'add to queue' action in the edit menu.
4504 2006-05-20  James Livingston  <doclivingston@gmail.com>
4506         * data/ui/rhythmbox-ui.xml:
4507         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
4508         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
4509         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
4510         (rb_shell_clipboard_sync),
4511         (rb_shell_clipboard_cmd_add_to_playlist_new),
4512         (rb_shell_clipboard_cmd_queue_song_info),
4513         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
4514         (rb_shell_clipboard_playlist_deleted_cb),
4515         (rb_shell_clipboard_playlist_renamed_cb),
4516         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
4517         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
4518         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
4519         dynamically generated with all the static playlists. Fixes bug 323364.
4521         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
4522         right child, so it doesn't go weird when art appears and disappears.
4524 2006-05-20  James Livingston  <doclivingston@gmail.com>
4526         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
4528         * rhythmdb/rhythmdb-query-model.c:
4529         (rhythmdb_query_model_set_property),
4530         (rhythmdb_query_model_finalize),
4531         (rhythmdb_query_model_reapply_query_cb):
4532         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
4533         (rhythmdb_query_append_prop_multiple),
4534         (rhythmdb_query_is_time_relative):
4535         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
4536         time-based criteria, fixes bug 341131.
4538 2006-05-20  James Livingston  <doclivingston@gmail.com>
4540         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
4541         we have already changed playing entries. Interpolate the art size so
4542         it doesn't jump when the old and new images have different aspect
4543         ratios.
4545 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4547         * rhythmdb/rhythmdb-private.h:
4548         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4549         (save_entry):
4550         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
4551         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
4552         (rhythmdb_entry_get_ulong):
4553         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
4554         and elsewhere, use them on the stack rather than allocating on 
4555         the heap.  From bug #342333.
4557 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4559         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
4560         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
4561         (add_track), (eos_cb), (error_signal_idle),
4562         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
4563         (rb_recorder_construct), (recorder_track_free),
4564         (rb_recorder_finalize):
4565         * sources/rb-playlist-source-recorder.c:
4566         Support libnautilus-burn size -> capacity API change.  Add
4567         some braces to blocks.
4569 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4571         * metadata/sj-metadata-musicbrainz.c:
4572         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
4573         Sync with sound-juicer in CVS.  Fixes #342177
4574         * sources/rb-audiocd-source.c: Don't declare variables
4575         in the middle of a block (c99ism).  Fix order of #includes.
4576         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
4577         one variable per line.  Update copyright date.
4579 2006-05-19  James Livingston  <doclivingston@gmail.com>
4581         patch by: Hendrik Richter  <hendi@gnome-de.org>
4583         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
4584         "translator_credits" to a hyphen, so it doesn't cause problems for
4585         tools that check access keys. Fixes bug 341832.
4587 2006-05-19  James Livingston  <doclivingston@gmail.com>
4589         * po/POTFILES.in: remove references to files that don't exist any more
4590         (fixes make distcheck).
4592 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
4594         * plugins/lyrics/lyrics.py:  Fix layout close button in 
4595         Song Lyrics dialog. Fixes bug 342322.
4597 2006-05-19  James Livingston  <doclivingston@gmail.com>
4599         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
4601         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
4602         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
4603         version checks not break when libnotify goes to 1.0.0. Fixes bug
4604         342244.
4606 2006-05-18  James Livingston  <doclivingston@gmail.com>
4608         * shell/rb-shell-clipboard.c:
4609         * shell/rb-shell.c:
4610         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
4612 2006-05-17  William Jon McCann  <mccann@jhu.edu>
4614         * sources/rb-playlist-source-recorder.c (get_song_description):
4615         Reverse artist and title in song description.  This
4616         is useful because at least the title will be visible
4617         when there is limited space.
4619 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4621         * daapsharing/rb-daap-connection.c: (connection_get_password):
4622         Take gdk lock before emitting authenticate signal.
4623         * sources/rb-daap-source.c: (connection_connecting_cb):
4624         Get rid of the unnecessary idle handler (it's already called from one)
4625         Fixes #342047 once more.
4627 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4629         * shell/rb-shell.c: (rb_shell_class_init):
4630         * shell/rb-shell.h:
4631         * widgets/rb-song-info.c: (rb_song_info_class_init),
4632         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
4633         (rb_song_info_constructor), (rb_song_info_get_property),
4634         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
4635         (rb_song_info_forward_clicked_cb):
4636         * widgets/rb-song-info.h:
4637         * data/glade/song-info-multiple.glade:
4638         * lib/rb-marshal.list:
4639         * bindings/python/Makefile.am:
4640         * bindings/python/rb.defs:
4641         * bindings/python/rb.override:
4642         Allow plugins to add pages to the notebooks used in song info windows,
4643         and to track the current song displayed in single-entry windows.
4644         
4645         * configure.ac:
4646         * plugins/Makefile.am:
4647         * plugins/lyrics/Loader.py:
4648         * plugins/lyrics/Makefile.am:
4649         * plugins/lyrics/lyrics.py:
4650         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
4651         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
4652         as a separate window (for the playing song) or as a page in the song
4653         info window.  A few TODO items left, but this fixes #319320.
4655 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4657         Patch by:  Roozbeh Pournader
4659         * configure.ac:
4660         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
4661         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
4663 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4664         
4665         * sources/rb-daap-source.c: (update_connection_status):
4666         Correct return value.  Fixes #342047 again.
4668 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4670         * sources/rb-daap-source.c: (update_connection_status),
4671         (connection_connecting_cb):
4672         Update status in an idle handler so we don't rely on the gdk lock
4673         being recursive (because it isn't any more).  Fixes #342047.
4675 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4677         * lib/rb-util.c: (rb_make_duration_string),
4678         (rb_make_elapsed_time_string):
4679         * lib/rb-util.h:
4680         Add a function for formatting an elapsed time string.
4682         * shell/rb-shell-player.c: (rb_shell_player_init),
4683         (rb_shell_player_sync_with_source),
4684         (rb_shell_player_get_playing_time_string), (tick_cb):
4685         Store elapsed time in the private data structure, and use the above
4686         function.
4687         
4688         * widgets/rb-header.c:
4689         * widgets/rb-header.h:
4690         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
4691         object, so everything has the same idea of the elapsed time.
4692         Fixes #339693.
4694 2006-05-16  James Livingston  <doclivingston@gmail.com>
4696         * bindings/python/rhythmdb.defs:
4697         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
4698         some parametre defaults, so you don't have to pass None, False for the
4699         sorting order.
4701 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4703         * bindings/python/rhythmdb.defs:
4704         * rhythmdb/rhythmdb-query-model.c:
4705         (rhythmdb_query_model_compute_status_normal):
4706         * rhythmdb/rhythmdb-query-model.h:
4707         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
4708         * rhythmdb/rhythmdb.h:
4709         Change the various compute_status methods to accept a singular/plural
4710         pair to use in the status string.
4711         
4712         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4713         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
4714         * sources/rb-source.c: (default_get_status):
4715         Call entries 'songs' by default, and 'episodes' in the podcast source.
4716         Fixes #340227.
4718 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4720         patch by:  Paul Drain
4722         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
4723         Fixes #341817.
4725 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4727         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
4728         Generate reorder maps correctly.
4729         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
4730         Scroll to the first entry from the old selection.
4731         Fixes #322992.
4733 2006-05-15  William Jon McCann  <mccann@jhu.edu>
4735         * data/ui/rhythmbox-ui.xml:
4736         * lib/rb-preferences.h:
4737         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4738         (rb_shell_playlist_created_cb),
4739         (rb_shell_view_sidepane_changed_cb),
4740         (rb_shell_sync_sidepane_visibility),
4741         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
4742         (sidepane_visibility_changed_cb):
4743         * sources/rb-podcast-source.c:
4744         Convert sourcelist visibility to side-pane visbility.
4745         Fixes #339733
4747 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4749         * widgets/rb-header.c:
4750         * widgets/rb-header.h: Stop RBHeader from referring to itself as
4751         'player', and make it use the private data structure allocated for it.
4753 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4755         * configure.ac: enable metadata helper with dbus < 0.35.
4757 2006-05-15  James Livingston  <doclivingston@gmail.com>
4759         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4761         * data/glade/song-info.glade:
4762         * widgets/rb-song-info.c: (rb_song_info_construct_single),
4763         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
4764         (rb_song_info_update_filesize): Add the file size into the song info
4765         window. Fixes bug 340861.
4767 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4769         * bindings/python/rhythmdb.defs:
4770         * rhythmdb/rhythmdb-query-model.c:
4771         (rhythmdb_query_model_set_property),
4772         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
4773         * rhythmdb/rhythmdb-query-model.h:
4774         Add a new method to chain query models without importing entries from
4775         the parent into the child.  This is useful when the subset of entries
4776         in the child can be more easily determined by running a query than by
4777         filtering entries from the parent.
4779         * bindings/python/rb.defs:
4780         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4781         (rb_library_browser_set_property),
4782         (rb_library_browser_get_property), (rb_library_browser_new),
4783         (rebuild_child_model):
4784         * widgets/rb-library-browser.h:
4785         * sources/rb-auto-playlist-source.c:
4786         (rb_auto_playlist_source_constructor):
4787         * sources/rb-static-playlist-source.c:
4788         (rb_static_playlist_source_constructor):
4789         * sources/rb-browser-source.c: (rb_browser_source_constructor):
4790         Use more efficient queries for constructing the browser query model
4791         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
4792         backend to optimise the query) and run new queries rather than
4793         filtering entries from the parent.  Fixes #341402.
4795         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
4797 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4799         * configure.ac:
4800         * shell/Makefile.am:
4801         * shell/main.c: (main), (load_uri_args), (send_present_message),
4802         (unregister_dbus_handler), (handle_dbus_message),
4803         (register_dbus_handler):
4804         Add minimal support for dbus 0.31 - 0.35.
4806         * doc/reference/Makefile.am:
4807         * doc/reference/rhythmbox.types:
4808         * data/Makefile.am:
4809         * data/GNOME_Rhythmbox.server.in:
4810         * data/rhythmbox.pc.in:
4811         * remote/*:
4812         * remote/bonobo/*:
4813         Remove remaining bonobo and generic remote interface files.
4815 2006-05-14  James Livingston  <doclivingston@gmail.com>
4817         * shell/rb-shell.c: (construct_widgets):
4818         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
4819         resize the browser and queue-sidebar section of their panes, unless
4820         the other section is below the minimum size. Fixes bug 331927.
4822 2006-05-13  James Livingston  <doclivingston@gmail.com>
4824         * rhythmdb/rhythmdb-query-model.c:
4825         (rhythmdb_query_model_class_init),
4826         (rhythmdb_query_model_set_property),
4827         (rhythmdb_query_model_get_property),
4828         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
4829         (rhythmdb_query_model_insert_into_main_list),
4830         (rhythmdb_query_model_insert_into_limited_list),
4831         (rhythmdb_query_model_do_reorder),
4832         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
4833         (rhythmdb_query_model_location_sort_func),
4834         (rhythmdb_query_model_title_sort_func),
4835         (rhythmdb_query_model_album_sort_func),
4836         (rhythmdb_query_model_artist_sort_func),
4837         (rhythmdb_query_model_genre_sort_func),
4838         (rhythmdb_query_model_track_sort_func),
4839         (rhythmdb_query_model_double_ceiling_sort_func),
4840         (rhythmdb_query_model_ulong_sort_func),
4841         (rhythmdb_query_model_date_sort_func),
4842         (rhythmdb_query_model_string_sort_func):
4843         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
4844         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
4845         "data destroy" property. Fixed bug 341543.
4847         * bindings/python/rhythmdb.defs:
4848         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
4849         rhythmdb_query_model_set_sorting_order
4851         * rhythmdb/rhythmdb-property-model.c:
4852         (rhythmdb_property_model_drag_data_get):
4853         * sources/rb-import-errors-source.c:
4854         (rb_import_errors_source_constructor):
4855         * sources/rb-missing-files-source.c:
4856         (rb_missing_files_source_constructor):
4857         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
4858         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
4859         * widgets/rb-entry-view.h: adapt to the above change.
4861 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4863         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4864         (rhythmdb_tree_load):
4865         Commit loaded entries in batches, rather than individually.  
4866         More startup time reduction.
4868 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
4870         * doc/reference/Makefile.am: fix gtk-doc compilation
4872 2006-05-12  William Jon McCann  <mccann@jhu.edu>
4874         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4875         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4876         * plugins/artdisplay/artdisplay/Loader.py:
4877         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
4878         Only call the first artist the best match when album==Unknown.
4879         Don't perform each query twice if album doesn't include "Vol N".
4880         Fix searching for compilations.  Fix blacklisting.
4881         Part of bug #307848
4883 2006-05-12  William Jon McCann  <mccann@jhu.edu>
4885         * Makefile.am:
4886         * bindings/python/Makefile.am:
4887         * bindings/python/rb.defs:
4888         * bindings/python/rb.override:
4889         * configure.ac:
4890         * doc/reference/Makefile.am:
4891         * plugins/Makefile.am:
4892         * plugins/audioscrobbler/Makefile.am:
4893         * plugins/ipod/Makefile.am:
4894         * plugins/lirc/Makefile.am:
4895         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
4896         (impl_activate), (impl_deactivate):
4897         * plugins/sample/Makefile.am:
4898         * remote/Makefile.am:
4899         * shell/Makefile.am:
4900         * shell/main.c: (main), (main_shell_weak_ref_cb):
4901         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
4902         (rb_shell_get_property), (rb_shell_window_state_cb),
4903         (idle_hide_mainwindow), (rb_shell_set_visibility),
4904         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
4905         (rb_shell_set_song_property):
4906         * shell/rb-shell.h:
4907         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
4908         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
4909         (rb_tray_icon_get_property), (rb_tray_icon_new),
4910         (rb_tray_icon_button_press_event_cb),
4911         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
4912         (rb_tray_icon_show_window_changed_cb):
4913         * shell/rb-tray-icon.h:
4915         Remove bonobo, require DBUS.
4916         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
4917         Fixes #339720
4919 2006-05-13  James Livingston  <doclivingston@gmail.com>
4921         * bindings/python/rb.override: fix some pointer-type warnings
4923 2006-05-12  James Livingston  <doclivingston@gmail.com>
4925         * lib/rb-util.c: (rb_value_free):
4926         * lib/rb-util.h: Add function to unset and free a GValue* that was
4927         allocated in the heap.
4929         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
4930         the metadata hastable values
4931         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
4932         leak the metadata hashtable structure
4933         * metadata/rb-metadata-dbus.c:
4934         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
4935         using g_strdup and then _take_string
4937         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
4938         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
4939         stat something.
4941         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
4942         leak the encoded string
4944         * widgets/rb-property-view.c:
4945         (rb_property_view_selection_changed_cb): set some variables to have
4946         inital values, because some code paths may not set them before we use
4947         them.
4949         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
4950         don't have python warning into a debug message".
4952 2006-05-10  William Jon McCann  <mccann@jhu.edu>
4954         * data/rhythmbox.schemas: Use zero instead of null for
4955         default burn speed.  Fixes #341283.
4957 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4959         * bindings/python/rb.defs:
4960         * widgets/rb-library-browser.c:
4961         (rb_library_browser_get_property_view):
4962         * widgets/rb-library-browser.h:
4963         Add a method to get the property view for a given property.
4965         * sources/rb-browser-source.c:
4966         (rb_browser_source_cmd_choose_genre),
4967         (rb_browser_source_cmd_choose_artist),
4968         (rb_browser_source_cmd_choose_album):
4969         Change the browser selection by changing the property view selection. 
4970         Makes the selection change visible, fixing #331740.
4972 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4974         * bindings/python/rb.defs:
4975         * bindings/python/rb.override:
4976         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
4977         * shell/rb-statusbar.c: (*),
4978         * sources/rb-import-errors-source.c: (impl_get_status):
4979         * sources/rb-iradio-source.c: (impl_get_status):
4980         * sources/rb-missing-files-source.c: (impl_get_status):
4981         * sources/rb-source.c: (default_get_status),
4982         (rb_source_get_status):
4983         * sources/rb-source.h:
4984         Allow sources to provide a progress value for the status bar.
4985         Simplify status bar processing (much less polling).
4986         Consider rhythmdb busy while it's still loading the database.
4988         * daapsharing/rb-daap-connection.c: (*)
4989         * daapsharing/rb-daap-connection.h:
4990         * lib/rb-marshal.list:
4991         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4992         (rb_daap_source_init), (connection_connecting_cb),
4993         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
4994         (rb_daap_source_get_status):
4995         Provide status information for DAAP connections, and move processing
4996         of large responses into a separate thread.
4997         Fixes bugs #322020 and #338978.
4999 2006-05-09  James Livingston  <doclivingston@gmail.com>
5001         Split the artdisplay plugin into several files.
5002         Fix loader and amazon-search re-use issues.
5003         Add some better search heuristics.
5005         * configure.ac:
5006         * plugins/artdisplay/Makefile.am:
5007         * plugins/artdisplay/artdisplay.py:
5008         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5009         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5010         * plugins/artdisplay/artdisplay/Loader.py:
5011         * plugins/artdisplay/artdisplay/Makefile.am:
5012         * plugins/artdisplay/artdisplay/__init__.py:
5014 2006-05-09  James Livingston  <doclivingston@gmail.com>
5016         * sources/rb-browser-source.h: remove the _has_first_added_column
5017         stuff since it isn't actually used anywhere. Sources that want it
5018         should just add it themselves, as the library already does
5020         * bindings/python/rb.defs:
5021         * sources/rb-daap-source.c: (rb_daap_source_class_init):
5022         * sources/rb-library-source.c: (rb_library_source_class_init):
5023         * sources/rb-removable-media-source.c:
5024         (rb_removable_media_source_class_init): Remove the remanants of the
5025         above.
5027 2006-05-09  James Livingston  <doclivingston@gmail.com>
5029         * bindings/python/rb.defs:
5030         * sources/rb-browser-source.h: remove a function that was declared in
5031         the header, but not defined anywhere.
5033 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5035         * plugins/artdisplay/.cvsignore:
5036         * plugins/ipod/.cvsignore: Added.
5038 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5040         * sources/rb-auto-playlist-source.c:
5041         (rb_auto_playlist_source_new_from_xml):
5042         Fix reading of older playlist files where all three limits were
5043         specified so we take the first nonzero limit.  From #341053.
5045 2006-05-09  James Livingston  <doclivingston@gmail.com>
5047         * bindings/python/Makefile.am:
5048         * bindings/python/rb.defs:
5049         * bindings/python/rb.override: bind RBBrowserSource,
5050         RBRemovableMediaSource and RBRemovableMediamanager.
5052 2006-05-09  James Livingston  <doclivingston@gmail.com>
5054         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5056         * data/glade/plugins.glade: make the plugin dialog look a bit better.
5057         Fixes bug 339221.
5059 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5061         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5062         Don't explode when trying to edit a query with no limit set.
5064 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5066         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5067         Clear the should_queue flag when switching to a non-submittable entry,
5068         so we don't submit songs that played for three seconds before
5069         switching to a podcast episode.
5071         * rhythmdb/rhythmdb-query-model.c
5072         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
5073         in the drag data list.
5075 2006-05-08  James Livingston  <doclivingston@gmail.com>
5077         * lib/rb-util.c: (rb_value_array_append_data):
5078         * lib/rb-util.h: add function which is basically a combination of
5079         G_VALUE_COLLECT and g_value_array_append.
5081         * rhythmdb/rhythmdb-query-model.h:
5082         * rhythmdb/rhythmdb-query-model.c:
5083         (rhythmdb_query_model_class_init),
5084         (rhythmdb_query_model_set_property),
5085         (rhythmdb_query_model_get_property),
5086         (rhythmdb_query_model_finalize),
5087         (rhythmdb_query_model_update_limited_entries),
5088         (rhythmdb_query_model_set_sort_order),
5089         (rhythmdb_query_model_within_limit),
5090         (rhythmdb_query_model_limit_type_get_type): Make query model limits
5091         saner. Rather than having <count=N, time=N, size=N> we now have a
5092         <type, value> pair. This will also make it much easier to add new
5093         limit types in the future.
5095         * shell/rb-playlist-manager.c:
5096         (rb_playlist_manager_set_automatic_playlist),
5097         (rb_playlist_manager_cmd_edit_automatic_playlist):
5098         * sources/rb-auto-playlist-source.c:
5099         (rb_auto_playlist_source_finalize),
5100         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
5101         (_save_write_ulong), (_save_write_uint64),
5102         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
5103         (rb_auto_playlist_source_set_query),
5104         (rb_auto_playlist_source_get_query):
5105         * sources/rb-auto-playlist-source.h:
5106         * sources/rb-library-source.c:
5107         (rb_library_source_add_child_source):
5108         * sources/rb-psp-source.c: (visit_playlist_dirs):
5109         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
5110         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
5111         * widgets/rb-query-creator.h: Adapt to the above change.
5113 2006-05-08  James Livingston  <doclivingston@gmail.com>
5115         * shell/rb-playlist-manager.c:
5116         (rb_playlist_manager_cmd_edit_automatic_playlist):
5117         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
5118         (rb_auto_playlist_source_set_query),
5119         (rb_auto_playlist_source_get_query): copy the query in the _get method
5120         and free it in things calling that. Fixes a crasher.
5122 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5124         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5125         Make entries on newly mounted volumes visible immediately, hiding them
5126         later if they turn out to be missing.  Fixes #340068.
5128 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5130         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
5131         Ignore zip files and ignore errors for files we've decided to ignore.
5133 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5135         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
5136         Add missing }, should fix #340844.
5138 2006-05-06  James Livingston  <doclivingston@gmail.com>
5140         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
5141         typo.
5143 2006-05-06  James Livingston  <doclivingston@gmail.com>
5145         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
5146         that we work with libnotify >= 0.4
5148 2006-05-06  James Livingston  <doclivingston@gmail.com>
5150         patch by: Joe Barnett  <thejoe@gmail.com>
5152         * configure.ac: check if we're using a version of libgpod that
5153         supports the Motorola ROKR
5155         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
5156         for the db path, if we using the newer version.
5158         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
5160 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5162         * rhythmdb/rhythmdb-query-model.c:
5163         (rhythmdb_query_model_drag_data_get):
5164         Use playback URI, not location, for drag data.  Fixes #322597.
5166 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
5168         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
5170 2006-05-03  James Livingston  <doclivingston@gmail.com>
5172         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
5173         (rb_add_id3_tagger), (rb_metadata_save):
5174         Set the tags on the tagging element when it is
5175         created, not during pipeline creation - which is required for
5176         dynamically created elements.
5178         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
5179         support for using the "vorbistag" element to re-tag ogg vorbis files.
5180         Fixes bug 339878.
5182 2006-05-03  James Livingston  <doclivingston@gmail.com>
5184         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
5186         * plugins/artdisplay/artdisplay.py:
5187         - Fix small bug callback of data loader getting overwritten on fast
5188         connections.
5189         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
5190         Jonathan Matthew)
5191         - Fix Rhythmbox UI blocking while loading/searching cover art
5192         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
5193         - Initial approach to allow additional "art search engines"
5194         - Further modularization in a couple of places
5195         - Minor fixes for empty entries (iradio, album, artist etc.)
5197 2006-05-03  James Livingston  <doclivingston@gmail.com>
5199         * shell/rb-playlist-manager.c:
5200         (rb_playlist_manager_playlist_entries_changed),
5201         (rb_playlist_manager_set_source): don't show the edit/delete/rename
5202         options for non-local sources, rather than showing disabled ones.
5204         * sources/rb-library-source.c: (add_child_sources_idle),
5205         (rb_library_source_constructor), (rb_library_source_new),
5206         (rb_library_source_library_location_changed),
5207         (rb_library_source_add_child_source),
5208         (rb_library_source_sync_child_sources): Create "child library" sources
5209         when the user has multiple library locations set. Fixes bug 100552.
5211 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5213         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
5214         * plugins/sample/sample.rb-plugin.desktop.in:
5215         Finish changing 'Author' to 'Authors'
5216         
5217         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
5218         (rhythmdb_entry_import_error_get_type):
5219         Implement get_playback_uri for import errors (returns NULL)
5221         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
5222         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
5223         entry, rather than doing entry type checks.
5225 2006-05-02  James Livingston  <doclivingston@gmail.com>
5227         patch from Alessandro Decina  <alessandro@nnva.org>
5229         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
5230         the signal emission in the case of fatal-on-init errors. From bug
5231         322268.
5233 2006-05-02  James Livingston  <doclivingston@gmail.com>
5235         * rhythmdb/rhythmdb.h:
5236         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
5237         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
5238         (rhythmdb_entry_podcast_post_get_type),
5239         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
5240         virtual function to entry-types for getting the playback URI. From bug
5241         330226.
5243         * backends/gstreamer/rb-encoder-gst.c:
5244         (create_pipeline_and_source), (extract_track):
5245         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
5246         to get the URI.
5248 2006-05-02  James Livingston  <doclivingston@gmail.com>
5250         patch by: Brian Cameron  <brian.cameron@sun.com>
5252         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
5253         340337.
5255 2006-05-01  William Jon McCann  <mccann@jhu.edu>
5257         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
5258         instead of clear.  Use regex matching to strip "disc N"
5259         from album.  Match titles in ProductName.  Perform
5260         fallback queries including various artist compilations.
5261         Include "us" locale.  Improve queries when artist or album
5262         is unknown.  Use medium size image if large is unavailable.
5264         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
5265         William Jon McCann  <mccann@jhu.edu>
5266         
5267 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5269         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
5270         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
5271         (conjunctive_query): Sanity check.
5272         (evaluate_conjunctive_subquery): 
5273         Don't return TRUE immediately when a relative-time query criterion
5274         matches.  Fixes #339972.
5276 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5278         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5279         Don't crash if primary or secondary are NULL.
5281 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5283         * doc/reference/Makefile.am: fix gtk-doc build yet again
5285 2006-04-28  James Livingston  <doclivingston@gmail.com>
5287         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
5288         python console. Fixes bug 339934.
5290 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5292         * rhythmdb/rhythmdb-property-model.c:
5293         (rhythmdb_property_model_drag_data_get):
5294         When creating uri list drag data, create a new query model based on
5295         the query model the property model is attached to.  Makes the
5296         resulting query use the right entry type and include the upstream
5297         query criteria.  Fixes half of #327540.
5299 2006-04-27  James Livingston  <doclivingston@gmail.com>
5301         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
5302         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
5303         build fixes.
5305 2006-04-27  James Livingston  <doclivingston@gmail.com>
5307         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
5309 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5311         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
5312         (rb_playlist_manager_save_data),
5313         (rb_playlist_manager_save_playlists):
5314         * shell/rb-playlist-manager.h:
5315         * shell/rb-shell.c: (rb_shell_sync_state),
5316         (idle_save_playlist_manager):
5317         Remove a bit more threading insanity from the playlist manager.
5319 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5321         * shell/rb-playlist-manager.c: 
5322         * shell/rb-playlist-manager.h:
5323         Remove dead code, add gtk-doc, remove threading insanity (mostly).
5324         
5325         * shell/rb-shell.c: (rb_shell_sync_state),
5326         (idle_save_playlist_manager), (construct_sources),
5327         (rb_shell_select_source), (rb_shell_sync_party_mode):
5328         Adjustments for above changes.
5330 2006-04-26  William Jon McCann  <mccann@jhu.edu>
5332         * sources/rb-browser-source.c (impl_browser_toggled):
5333         Reset browser when hidden.  Fixes #339617.
5335 2006-04-26  James Livingston  <doclivingston@gmail.com>
5337         * backends/Makefile.am:
5338         * backends/gstreamer/Makefile.am: work again with separated
5339         built-roots
5341 2006-04-26  James Livingston  <doclivingston@gmail.com>
5343         * shell/rb-removable-media-manager.c:
5344         (rb_removable_media_manager_set_uimanager): fix compilation with
5345         -Werror and --enable-track-transfer.
5347 2006-04-26  James Livingston  <doclivingston@gmail.com>
5349         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
5350         implementing class. In theory allows alternate player implementations
5351         to be selected at run-time rather than compile-time. Fixes bug 338667.
5353         * Makefile.am:
5354         * backends/Makefile.am:
5355         * backends/gstreamer/Makefile.am:
5356         * backends/gstreamer/rb-player-gst.h:
5357         * backends/rb-player.c: (rb_player_interface_init),
5358         (rb_player_get_type), (rb_player_open), (rb_player_opened),
5359         (rb_player_close), (rb_player_play), (rb_player_pause),
5360         (rb_player_playing), (rb_player_set_volume),
5361         (rb_player_get_volume), (rb_player_set_replaygain),
5362         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
5363         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
5364         (_rb_player_emit_buffering), (_rb_player_emit_error),
5365         (_rb_player_emit_tick), (rb_player_error_quark):
5366         * player/Makefile.am:
5367         * player/rb-player-gst.c: (rb_player_gst_class_init),
5368         (rb_player_init), (tick_timeout), (rb_player_gst_init),
5369         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
5370         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
5371         (process_tag), (found_tag_cb), (buffering_cb),
5372         (rb_player_gst_bus_cb), (rb_player_gst_construct),
5373         (rb_player_gst_new):
5374         * player/rb-player.h:
5375         * shell/Makefile.am:
5376         * sources/rb-audiocd-source.c:
5377         * widgets/Makefile.am:
5378         * widgets/rb-header.c: (rb_header_class_init):
5380 2006-04-26  James Livingston  <doclivingston@gmail.com>
5382         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
5383         don't try to download an episode if it couldn't be parsed. Fixes bug
5384         339712.
5386         * shell/rb-removable-media-manager.c:
5387         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
5388         Library" option when track transfer is disabled. Fixes bug 339728.
5390 2006-04-26  James Livingston  <doclivingston@gmail.com>
5392         * data/ui/Makefile.am:
5393         * data/ui/daap-ui.xml:
5394         * data/ui/rhythmbox-ui.xml:
5395         * sources/rb-daap-source.c: (rb_daap_sources_init),
5396         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
5397         way that the ipod ui is. Fixes bug 339743.
5399 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5401         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
5402         (process_added_entries_cb), (process_deleted_entries_cb),
5403         (rhythmdb_commit_internal): 
5404         Combine the idle functions to emit entry-added and entry-deleted,
5405         and combine as many invocations of same as possible.  Another
5406         significant reduction in startup time.
5407         
5408         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
5409         Delay the next call to rhythmdb_process_events if the queue is
5410         empty or if we can't process any of the events in the queue because
5411         the database is read only.
5413         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
5415 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5417         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
5419         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
5420         Don't special case errors quite so much.
5422 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5424         * data/rhythmbox.schemas: Remove default speed.
5426         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
5427         Add n-c-b 2.15 support.  Make the default speed to slowest since
5428         that is all that works reliably.
5430 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5432         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
5433         Fix compiler error from last commit.
5435 2006-04-25  James Livingston  <doclivingston@gmail.com>
5437         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
5438         transcoding-related issues. From bug 322268.
5440         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
5441         don't emit the signal, since the object is being finalised, which os a
5442         Bad Thing To Do.
5444         (profile_bin_find_encoder), (get_profile_from_mime_type),
5445         (transcode_track): find the encoding element by iterating looking for
5446         element in the class Codec/Encoder/Audio rather than the one named
5447         "enc".
5449 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5451         * shell/rb-shell-player.xml:
5452         * shell/rb-shell.xml:
5453         Add signal argument information.  
5454         Patch by Tim Moloney  <t.moloney@verizon.net>
5456         * shell/rb-shell.c: (rb_shell_window_state_cb):
5457         Use the right value for the visibility_changed signal.  Most of the
5458         time, anyway.
5460 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5462         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5463         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5464         (impl_create_configure_dialog):
5465         * data/glade/audioscrobbler-prefs.glade:
5466         * shell/rb-audioscrobbler.c (*):
5467         * lib/rb-preferences.h:
5468         * data/rhythmbox.schemas:
5469         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
5470         Add status information (# tracks submitted, # queued, last submit
5471         time, result of last submission) to the plugin config window.
5472         Remove 'enabled' setting, since it's easier to just disable the
5473         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
5474         nonexistant (so far) 'last.fm streaming' plugin.
5475         
5476         * help/C/rhythmbox.xml: Update documentation for last.fm profile
5477         plugin
5479         Fixes some of #325848.  We still don't provide a way to view the
5480         submission queue.
5482 2006-04-25  James Livingston  <doclivingston@gmail.com>
5484         patch by: Anders Petersson  <demitar@worldforge.org>
5486         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
5487         the YY-MM-DD format.
5489 2006-04-23  James Livingston  <doclivingston@gmail.com>
5491         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
5492         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
5493         * bindings/python/override_common.h:
5494         * bindings/python/rb.override: python binding fixes
5496 2006-04-23  James Livingston  <doclivingston@gmail.com>
5498         * shell/rb-statusbar.c: (rb_statusbar_finalize),
5499         (rb_statusbar_sync_with_source),
5500         (rb_statusbar_source_status_changed_cb): do the sync in an idle
5501         callback, rather than immediately every time. Takes ~5% off my warm-cache
5502         startup time.
5504         * bindings/python/rhythmdb.defs: fix the types using for
5505         RhythmDBEntryTypes.
5507 2006-04-22  James Livingston  <doclivingston@gmail.com>
5509         * data/ui/rhythmbox-ui.xml:
5510         * shell/rb-shell.c:
5511         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5512         (remove_source), (rb_daap_sources_init),
5513         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
5514         (rb_daap_source_disconnect):
5515         * sources/rb-source.c: (rb_source_class_init),
5516         (rb_source_deactivate):
5517         * sources/rb-source.h: move the "disconnect" functionality from into
5518         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
5520 2006-04-22  James Livingston  <doclivingston@gmail.com>
5522         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
5523         actually get the translated strings for browser headers (they were
5524         already marked as translatable). Fixes bug 339380.
5526 2006-04-22  James Livingston  <doclivingston@gmail.com>
5528         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
5529         submission timeout when the object is finalised.
5531         * bindings/python/Makefile.am:
5532         * bindings/python/rb.defs:
5533         * bindings/python/rb.override:
5534         * bindings/python/rhythmdb.defs: fix some python binding stuff.
5536         * widgets/rb-library-browser.c:
5537         (rb_library_browser_construct_query), (rebuild_output_model),
5538         (rebuild_child_model):
5539         * widgets/rb-library-browser.h: change from GPtrArray to
5540         RhythmDBQuery (which in C is the same thing).
5542 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5544         * shell/rb-shell.c: (rb_shell_get_song_properties):
5545         Don't try to include entry-type (or anything else not easily
5546         marshallable) in the song properties hash table.
5548         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
5550         * sources/rb-playlist-source.c: (rb_playlist_source_init),
5551         (rb_playlist_source_constructor): Fix entry-type initialization as
5552         with previous commit.
5554 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5556         * sources/rb-iradio-source.c: (rb_iradio_source_init),
5557         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
5558         * sources/rb-podcast-source.c: (rb_podcast_source_init),
5559         (rb_podcast_source_constructor):
5560         Set default values for entry-type after base class construction,
5561         rather than in _init, because gobject will set the entry-type property
5562         to NULL after _init if no value is provided.  Fixes #339206.
5564 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
5566         patch by: Gunnar Steinn Magnusson
5568         * COPYING:
5569         * backends/gstreamer/rb-encoder-gst.c:
5570         * backends/gstreamer/rb-encoder-gst.h:
5571         * backends/rb-encoder.c:
5572         * backends/rb-encoder.h:
5573         * bindings/python/override_common.c:
5574         * bindings/python/override_common.h:
5575         * daapsharing/rb-daap-connection.c:
5576         * daapsharing/rb-daap-connection.h:
5577         * daapsharing/rb-daap-dialog.c:
5578         * daapsharing/rb-daap-dialog.h:
5579         * daapsharing/rb-daap-mdns-browser-avahi.c:
5580         * daapsharing/rb-daap-mdns-browser-howl.c:
5581         * daapsharing/rb-daap-mdns-browser.h:
5582         * daapsharing/rb-daap-mdns-publisher-avahi.c:
5583         * daapsharing/rb-daap-mdns-publisher-howl.c:
5584         * daapsharing/rb-daap-mdns-publisher.h:
5585         * daapsharing/rb-daap-share.c:
5586         * daapsharing/rb-daap-share.h:
5587         * daapsharing/rb-daap-sharing.c:
5588         * daapsharing/rb-daap-sharing.h:
5589         * daapsharing/rb-daap-src.c:
5590         * daapsharing/rb-daap-src.h:
5591         * daapsharing/rb-daap-structure.c:
5592         * daapsharing/rb-daap-structure.h:
5593         * help/C/fdl-appendix.xml:
5594         * help/es/es.po:
5595         * help/ja/fdl-appendix.xml:
5596         * iradio/rb-new-station-dialog.c:
5597         * iradio/rb-new-station-dialog.h:
5598         * iradio/rb-station-properties-dialog.c:
5599         * iradio/rb-station-properties-dialog.h:
5600         * lib/mkdtemp.c:
5601         * lib/mkdtemp.h:
5602         * lib/rb-cut-and-paste-code.c:
5603         * lib/rb-cut-and-paste-code.h:
5604         * lib/rb-debug.c:
5605         * lib/rb-debug.h:
5606         * lib/rb-file-helpers.c:
5607         * lib/rb-file-helpers.h:
5608         * lib/rb-glade-helpers.c:
5609         * lib/rb-glade-helpers.h:
5610         * lib/rb-preferences.h:
5611         * lib/rb-proxy-config.c:
5612         * lib/rb-stock-icons.c:
5613         * lib/rb-stock-icons.h:
5614         * lib/rb-thread.c:
5615         * lib/rb-thread.h:
5616         * lib/rb-tree-dnd.c:
5617         * lib/rb-tree-dnd.h:
5618         * lib/rb-util.c:
5619         * lib/rb-util.h:
5620         * metadata/rb-metadata-common.c:
5621         * metadata/rb-metadata-dbus-client.c:
5622         * metadata/rb-metadata-dbus-service.c:
5623         * metadata/rb-metadata-dbus.c:
5624         * metadata/rb-metadata-dbus.h:
5625         * metadata/rb-metadata-gst.c:
5626         * metadata/rb-metadata.h:
5627         * metadata/sj-error.c:
5628         * metadata/sj-error.h:
5629         * metadata/sj-metadata-musicbrainz.c:
5630         * metadata/sj-metadata-musicbrainz.h:
5631         * metadata/sj-metadata.c:
5632         * metadata/sj-metadata.h:
5633         * metadata/sj-structures.c:
5634         * metadata/sj-structures.h:
5635         * metadata/test-metadata.c:
5636         * player/rb-player-gst.c:
5637         * player/rb-player.h:
5638         * player/rb-recorder-gst.c:
5639         * player/rb-recorder.h:
5640         * plugins/artdisplay/artdisplay.py:
5641         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5642         * plugins/ipod/rb-ipod-plugin.c:
5643         * plugins/lirc/rb-lirc-plugin.c:
5644         * plugins/pythonconsole/pythonconsole.py:
5645         * plugins/rb-module.c:
5646         * plugins/rb-module.h:
5647         * plugins/rb-plugin-manager.c:
5648         * plugins/rb-plugin-manager.h:
5649         * plugins/rb-plugin.c:
5650         * plugins/rb-plugin.h:
5651         * plugins/rb-plugins-engine.c:
5652         * plugins/rb-plugins-engine.h:
5653         * plugins/rb-python-module.c:
5654         * plugins/rb-python-module.h:
5655         * plugins/rb-python-plugin.c:
5656         * plugins/rb-python-plugin.h:
5657         * plugins/sample/rb-sample-plugin.c:
5658         * po/de.po:
5659         * po/el.po:
5660         * po/en_CA.po:
5661         * po/eu.po:
5662         * po/fi.po:
5663         * po/fr.po:
5664         * po/it.po:
5665         * po/ja.po:
5666         * po/mk.po:
5667         * po/pt_BR.po:
5668         * po/ru.po:
5669         * podcast/rb-feed-podcast-properties-dialog.c:
5670         * podcast/rb-feed-podcast-properties-dialog.h:
5671         * podcast/rb-new-podcast-dialog.c:
5672         * podcast/rb-new-podcast-dialog.h:
5673         * podcast/rb-podcast-manager.c:
5674         * podcast/rb-podcast-manager.h:
5675         * podcast/rb-podcast-parse.c:
5676         * podcast/rb-podcast-parse.h:
5677         * podcast/rb-podcast-properties-dialog.c:
5678         * podcast/rb-podcast-properties-dialog.h:
5679         * remote/bonobo/libmain.c:
5680         * remote/bonobo/rb-nautilus-context-menu.c:
5681         * remote/bonobo/rb-nautilus-context-menu.h:
5682         * remote/bonobo/rb-remote-bonobo.c:
5683         * remote/bonobo/rb-remote-bonobo.h:
5684         * remote/rb-remote-client-proxy.c:
5685         * remote/rb-remote-client-proxy.h:
5686         * remote/rb-remote-common.c:
5687         * remote/rb-remote-common.h:
5688         * remote/rb-remote-proxy.c:
5689         * remote/rb-remote-proxy.h:
5690         * rhythmdb/gsequence.c:
5691         * rhythmdb/gsequence.h:
5692         * rhythmdb/rb-refstring.c:
5693         * rhythmdb/rb-refstring.h:
5694         * rhythmdb/rhythmdb-gda.c:
5695         * rhythmdb/rhythmdb-gda.h:
5696         * rhythmdb/rhythmdb-private.h:
5697         * rhythmdb/rhythmdb-property-model.c:
5698         * rhythmdb/rhythmdb-property-model.h:
5699         * rhythmdb/rhythmdb-query-model.c:
5700         * rhythmdb/rhythmdb-query-model.h:
5701         * rhythmdb/rhythmdb-query-results.c:
5702         * rhythmdb/rhythmdb-query-results.h:
5703         * rhythmdb/rhythmdb-tree.c:
5704         * rhythmdb/rhythmdb-tree.h:
5705         * rhythmdb/rhythmdb.c:
5706         * rhythmdb/rhythmdb.h:
5707         * shell/main.c:
5708         * shell/rb-audioscrobbler.c:
5709         * shell/rb-audioscrobbler.h:
5710         * shell/rb-history.c:
5711         * shell/rb-history.h:
5712         * shell/rb-play-order-linear-loop.c:
5713         * shell/rb-play-order-linear-loop.h:
5714         * shell/rb-play-order-linear.c:
5715         * shell/rb-play-order-linear.h:
5716         * shell/rb-play-order-queue.c:
5717         * shell/rb-play-order-queue.h:
5718         * shell/rb-play-order-random-by-age-and-rating.c:
5719         * shell/rb-play-order-random-by-age-and-rating.h:
5720         * shell/rb-play-order-random-by-age.c:
5721         * shell/rb-play-order-random-by-age.h:
5722         * shell/rb-play-order-random-by-rating.c:
5723         * shell/rb-play-order-random-by-rating.h:
5724         * shell/rb-play-order-random-equal-weights.c:
5725         * shell/rb-play-order-random-equal-weights.h:
5726         * shell/rb-play-order-random.c:
5727         * shell/rb-play-order-random.h:
5728         * shell/rb-play-order-shuffle.c:
5729         * shell/rb-play-order-shuffle.h:
5730         * shell/rb-play-order.c:
5731         * shell/rb-play-order.h:
5732         * shell/rb-playlist-manager.c:
5733         * shell/rb-playlist-manager.h:
5734         * shell/rb-removable-media-manager.c:
5735         * shell/rb-removable-media-manager.h:
5736         * shell/rb-shell-clipboard.c:
5737         * shell/rb-shell-clipboard.h:
5738         * shell/rb-shell-player.c:
5739         * shell/rb-shell-player.h:
5740         * shell/rb-shell-preferences.c:
5741         * shell/rb-shell-preferences.h:
5742         * shell/rb-shell.c:
5743         * shell/rb-shell.h:
5744         * shell/rb-source-header.c:
5745         * shell/rb-source-header.h:
5746         * shell/rb-statusbar.c:
5747         * shell/rb-statusbar.h:
5748         * shell/rb-tray-icon.c:
5749         * shell/rb-tray-icon.h:
5750         * sources/rb-audiocd-source.c:
5751         * sources/rb-audiocd-source.h:
5752         * sources/rb-auto-playlist-source.c:
5753         * sources/rb-auto-playlist-source.h:
5754         * sources/rb-browser-source.c:
5755         * sources/rb-browser-source.h:
5756         * sources/rb-daap-source.c:
5757         * sources/rb-daap-source.h:
5758         * sources/rb-generic-player-source.c:
5759         * sources/rb-generic-player-source.h:
5760         * sources/rb-import-errors-source.c:
5761         * sources/rb-import-errors-source.h:
5762         * sources/rb-ipod-source.c:
5763         * sources/rb-ipod-source.h:
5764         * sources/rb-iradio-source.c:
5765         * sources/rb-iradio-source.h:
5766         * sources/rb-library-source.c:
5767         * sources/rb-library-source.h:
5768         * sources/rb-missing-files-source.c:
5769         * sources/rb-missing-files-source.h:
5770         * sources/rb-nokia770-source.c:
5771         * sources/rb-nokia770-source.h:
5772         * sources/rb-play-queue-source.c:
5773         * sources/rb-play-queue-source.h:
5774         * sources/rb-playlist-source-recorder.c:
5775         * sources/rb-playlist-source-recorder.h:
5776         * sources/rb-playlist-source.c:
5777         * sources/rb-playlist-source.h:
5778         * sources/rb-playlist-xml.h:
5779         * sources/rb-podcast-source.c:
5780         * sources/rb-podcast-source.h:
5781         * sources/rb-psp-source.c:
5782         * sources/rb-psp-source.h:
5783         * sources/rb-removable-media-source.c:
5784         * sources/rb-removable-media-source.h:
5785         * sources/rb-source.c:
5786         * sources/rb-source.h:
5787         * sources/rb-sourcelist-model.c:
5788         * sources/rb-sourcelist-model.h:
5789         * sources/rb-sourcelist.c:
5790         * sources/rb-sourcelist.h:
5791         * sources/rb-static-playlist-source.c:
5792         * sources/rb-static-playlist-source.h:
5793         * tests/test-cd.c:
5794         * tests/test-cmdline.c:
5795         * tests/test-rhythmdb-indexing.c:
5796         * tests/test-rhythmdb-query.c:
5797         * tests/test-rhythmdb-simple.c:
5798         * tests/test-rhythmdb-tree-deserialization.c:
5799         * tests/test-rhythmdb-tree-serialization.c:
5800         * tests/test-rhythmdb-view.c:
5801         * widgets/bacon-volume.c:
5802         * widgets/bacon-volume.h:
5803         * widgets/disclosure-widget.c:
5804         * widgets/disclosure-widget.h:
5805         * widgets/eel-gconf-extensions.c:
5806         * widgets/eel-gconf-extensions.h:
5807         * widgets/eggtrayicon.c:
5808         * widgets/eggtrayicon.h:
5809         * widgets/libsexy/sexy-icon-entry.c:
5810         * widgets/libsexy/sexy-icon-entry.h:
5811         * widgets/rb-cell-renderer-pixbuf.c:
5812         * widgets/rb-cell-renderer-pixbuf.h:
5813         * widgets/rb-cell-renderer-rating.c:
5814         * widgets/rb-cell-renderer-rating.h:
5815         * widgets/rb-dialog.c:
5816         * widgets/rb-dialog.h:
5817         * widgets/rb-druid.c:
5818         * widgets/rb-druid.h:
5819         * widgets/rb-entry-view.c:
5820         * widgets/rb-entry-view.h:
5821         * widgets/rb-header.c:
5822         * widgets/rb-header.h:
5823         * widgets/rb-library-browser.c:
5824         * widgets/rb-library-browser.h:
5825         * widgets/rb-property-view.c:
5826         * widgets/rb-property-view.h:
5827         * widgets/rb-query-creator-private.h:
5828         * widgets/rb-query-creator-properties.c:
5829         * widgets/rb-query-creator.c:
5830         * widgets/rb-query-creator.h:
5831         * widgets/rb-rating-helper.c:
5832         * widgets/rb-rating-helper.h:
5833         * widgets/rb-rating.c:
5834         * widgets/rb-rating.h:
5835         * widgets/rb-search-entry.c:
5836         * widgets/rb-search-entry.h:
5837         * widgets/rb-song-display-box.c:
5838         * widgets/rb-song-display-box.h:
5839         * widgets/rb-song-info.c:
5840         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
5842 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
5844         patch by: Gareth Murphy, James Livingston
5846         * bindings/python/rb.defs:
5847         * configure.ac:
5848         * plugins/Makefile.am:
5849         * plugins/artdisplay/Makefile.am:
5850         * plugins/artdisplay/artdisplay.py:
5851         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
5852         * plugins/rb-python-module.c: (rb_python_module_init_python):
5853         * shell/rb-shell.c: (construct_widgets),
5854         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
5855         (rb_shell_add_widget), (rb_shell_remove_widget),
5856         (rb_shell_ui_location_get_type):
5857         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
5859 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5861         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5862         Fix build failure caused by the combination of the previous two
5863         commits.
5865 2006-04-20  James Livingston  <doclivingston@gmail.com>
5867         patch by: Christophe Fergeau  <teuf@gnome.org> to make
5868         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
5869         table to the entry types, which will allow us to get rid of some of
5870         the "if entry type == WHATEVER" code everywhere. From bug 
5872         * bindings/python/rb.defs:
5873         * bindings/python/rb.override:
5874         * bindings/python/rhythmdb.defs:
5875         * bindings/python/rhythmdb.override:
5876         * daapsharing/rb-daap-connection.c:
5877         (rb_daap_connection_class_init), (rb_daap_connection_init),
5878         (rb_daap_connection_set_property),
5879         (rb_daap_connection_get_property):
5880         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
5881         * podcast/rb-podcast-manager.c:
5882         (rb_podcast_manager_entry_downloaded),
5883         (rb_podcast_manager_subscribe_feed),
5884         (rb_podcast_manager_db_entry_added_cb),
5885         (rb_podcast_manager_db_entry_deleted_cb),
5886         (rb_podcast_manager_insert_feed):
5887         * rhythmdb/rhythmdb-private.h:
5888         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5889         (conjunctive_query):
5890         * rhythmdb/rhythmdb.c: (sync_entry_changed),
5891         (process_added_entries_cb), (rhythmdb_entry_allocate),
5892         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
5893         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
5894         (rhythmdb_process_metadata_load),
5895         (rhythmdb_process_file_created_or_modified), (action_thread_main),
5896         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
5897         (write_encoded_gvalue), (read_encoded_property),
5898         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
5899         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
5900         (rhythmdb_entry_iradio_get_type),
5901         (rhythmdb_entry_podcast_post_get_type),
5902         (rhythmdb_entry_podcast_feed_get_type),
5903         (rhythmdb_entry_import_error_get_type),
5904         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
5905         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
5906         (rhythmdb_entry_type_get_type):
5907         * rhythmdb/rhythmdb.h:
5908         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5909         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
5910         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
5911         (rb_shell_player_entry_activated_cb), (info_available_cb):
5912         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
5913         (rb_shell_register_entry_type_for_source),
5914         (rb_shell_playing_from_queue_cb),
5915         (rb_shell_playing_entry_changed_cb),
5916         (rb_shell_player_stream_song_changed_cb),
5917         (rb_shell_jump_to_entry_with_source),
5918         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
5919         (handle_playlist_entry_cb), (rb_shell_load_uri):
5920         * shell/rb-shell.h:
5921         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
5922         * sources/rb-browser-source.c: (rb_browser_source_class_init),
5923         (rb_browser_source_init), (rb_browser_source_set_property),
5924         (rb_browser_source_get_property):
5925         * sources/rb-ipod-source.c: (impl_paste):
5926         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
5927         (rb_iradio_source_init), (rb_iradio_source_set_property),
5928         (rb_iradio_source_get_property):
5929         * sources/rb-library-source.c: (impl_paste):
5930         * sources/rb-missing-files-source.c:
5931         (rb_missing_files_source_class_init),
5932         (rb_missing_files_source_init),
5933         (rb_missing_files_source_set_property),
5934         (rb_missing_files_source_get_property):
5935         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
5936         (rb_playlist_source_init), (rb_playlist_source_set_property),
5937         (rb_playlist_source_get_property):
5938         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5939         (rb_podcast_source_init), (rb_podcast_source_set_property),
5940         (rb_podcast_source_get_property):
5941         * sources/rb-static-playlist-source.c:
5942         (rb_static_playlist_source_add_location_internal):
5944 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5946         * rhythmdb/rhythmdb.c: (rhythmdb_init),
5947         (rhythmdb_add_import_error_entry),
5948         (entry_volume_mounted_or_unmounted),
5949         (rhythmdb_volume_unmounted_cb):
5950         When a volume is unmounted, delete import errors for files stored on
5951         it.  When a volume is mounted, stat all tracks stored on it, rather
5952         than assuming they're present.  Fixes #339023.
5954 2006-04-20  James Livingston  <doclivingston@gmail.com>
5956         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
5957         browser visibility for non-gconf-using sources (like playlists). Part
5958         of bug 118862.
5960         * shell/rb-source-header.c: (sourcestate_free),
5961         (rb_source_header_init), (rb_source_header_finalize),
5962         (rb_source_header_source_weak_destroy_cb): switch from storing the
5963         search string to storing a "source state" structure
5965         (rb_source_header_set_source_internal),  (rb_source_state_sync),
5966         (rb_source_header_search_cb), (rb_source_header_clear_search),
5967         (rb_source_header_disclosure_toggled_cb): as well as storing the
5968         string, stop the visibility of the source's browser.
5970 2006-04-20  James Livingston  <doclivingston@gmail.com>
5972         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
5973         library entries back into the library. Fixes bug 339065.
5975 2006-04-20  James Livingston  <doclivingston@gmail.com>
5977         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
5978         only exists in glib 2.10.
5980 2006-04-20  James Livingston  <doclivingston@gmail.com>
5982         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
5983         Solaris. From bug 335318.
5985         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
5986         * shell/rb-audioscrobbler.c:
5987         * sources/rb-psp-source.c:
5989 2006-04-20  James Livingston  <doclivingston@gmail.com>
5991         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
5992         issues for some people.
5994         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
5995         accidental s/suffix/prefix/
5997         * sources/rb-auto-playlist-source.c:
5998         (rb_auto_playlist_source_set_query): fix the invered logic preventing
5999         you from sorting playlists which aren't limited by time.
6001 2006-04-19  James Livingston  <doclivingston@gmail.com>
6003         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
6004         duration or bitrate back to the file, since they are properties of the
6005         audio data, not tags we can set.
6007 2006-04-19  James Livingston  <doclivingston@gmail.com>
6009         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
6010         of libtool, to fix builds which are using a different version. Fixes
6011         bug 338996.
6013         * shell/Makefile.am:
6015 2006-04-19  James Livingston  <doclivingston@gmail.com>
6017         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
6018         to sync data to a file which is uneditable.
6020 2006-04-19  James Livingston  <doclivingston@gmail.com>
6022         patch by: Gavin Stewart  <gavin@brokentrain.net>
6024         * data/glade/playlist-save.glade:
6025         * data/glade/Makefile.am:
6026         * po/POTFILES.in: add the playlist saving dialog.
6028         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
6029         (export_set_extension_cb), (filter_get_export_filter_label),
6030         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
6031         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
6032         formats (PLS and M3U at the moment). Fixes bug 316295.
6034 2006-04-19  James Livingston  <doclivingston@gmail.com>
6036         * shell/rb-playlist-manager.c:
6037         (rb_playlist_manager_set_source_internal): don't let you edit remove
6038         auto playlists.
6040         * sources/rb-auto-playlist-source.c:
6041         (rb_auto_playlist_source_set_query): correctly handle time-limited
6042         playlists.
6044 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6046         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
6048         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
6049         Don't crash if the queue file contains no newlines.
6050         Fixes #338924.
6052 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6054         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
6055         condition
6057 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6059         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
6060         case. Moreover, they may not exist yet, so take that into account when
6061         generating the iPod filename.
6063 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
6065         * sources/rb-ipod-source.c: added support for drag and drop from the
6066         library to the iPod (only enabled if --enable-track-transfer was
6067         passed to configure)
6069 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
6071         * configure.ac:
6072         * lib/rb-marshal.list:
6073         * lib/rb-util.c: 
6074         * lib/rb-util.h:
6075         * plugins/Makefile.am:
6076         * plugins/ipod/Makefile.am:
6077         * plugins/ipod/ipod.rb-plugin.desktop.in:
6078         * plugins/ipod/rb-ipod-plugin.c: 
6079         * plugins/rb-plugin.h:
6080         * shell/Makefile.am:
6081         * shell/rb-removable-media-manager.c:
6082         * shell/rb-removable-media-manager.h:
6083         * shell/rb-shell.c: 
6084         * sources/Makefile.am:
6085         * sources/rb-ipod-source.c: 
6086         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
6087         various iPod related files should be moved to plugins/ipod/ now...
6089 2006-04-17  James Livingston  <doclivingston@gmail.com>
6091         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
6092         and "vic".
6094         * help/C/figures/rb-iradio-main.png:
6095         * help/C/figures/rb-notification-area-menu.png:
6096         * help/C/figures/rb-notification-window.png:
6097         * help/C/figures/rb-notification-zone.png:
6098         * help/C/figures/rb-podcast-main.png:
6099         * help/C/figures/rb-statusbar.png:
6100         * help/C/figures/rb-volume-changer.png:
6101         * help/C/figures/rb-window-small.png:
6102         * help/C/figures/rb-window.png:
6103         * help/C/rhythmbox.xml:
6105 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6107         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
6108         more obviously.
6110         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6111         (make_undecodable_error), (rb_metadata_gst_error_cb),
6112         (rb_metadata_gst_new_decoded_pad_cb),
6113         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
6114         Ignore really small files (<4kB) for which typefinding fails.
6115         Always link decoded pads from decodebin to fakesink.
6116         Shut the pipeline down by posting an error on the bus when decodebin
6117         emits unknown-type signals.  Fixes bug #338062.
6119 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6121         * shell/rb-shell.c: (rb_shell_load_uri):
6122         Fix glaring mistakes in previous commit: actually pass arguments to
6123         rb_debug, and specify the right entry type when adding a new iradio
6124         station so we don't try to add local playlist files to the library.
6126 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6128         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
6129         before trying to add them, as iradio streams often fail rb_uri_exists().
6131         * shell/rb-shell-player.c: (notify_playing_idle),
6132         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
6133         (open_location_thread), (rb_shell_player_open_location),
6134         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
6135         (eos_cb):  When playing an iradio stream using a playlist, keep a list
6136         of all the stream URLs, and try them in turn.  If we get through the
6137         whole playlist too quickly, error out.  Various other fixes that make
6138         iradio work a lot better.
6140         * shell/rb-shell.c: (add_to_library_response_cb),
6141         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6142         (handle_playlist_entry_cb), (rb_shell_load_uri):
6143         Add playlists containing streams as iradio stations.  If the playlist
6144         is local, add each stream URL, but if the playlist is remote, just add
6145         the playlist URL.
6146         
6147         * sources/rb-iradio-source.c: (new_station_location_added):
6148         Add new station URLs as-is, rather than parsing the playlist and
6149         adding the streams.
6150         
6151         * rhythmdb/rhythmdb-query-model.c:
6152         (rhythmdb_query_model_entry_changed_cb),
6153         (rhythmdb_query_model_emit_reorder),
6154         (rhythmdb_query_model_do_reorder):
6155         Emit row-changed notifications when an entry changes but is not
6156         reordered.
6158         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
6159         Display the playback error icon when the entry has an error and
6160         there's nothing else to display.
6161         
6162         Fixes bug #320336 and some of #324402.
6163         
6164 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6166         * sources/rb-ipod-source.c: use a GHashTable for the
6167         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
6168         time, this fixes compilation breakage for people not having libgpod
6169         CVS HEAD
6171 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
6173         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6175         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
6176         (rb_podcast_manager_insert_feed):
6177         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
6178         fixes bug 321945
6180 2006-04-16  James Livingston  <doclivingston@gmail.com>
6182         * sources/rb-library-source.c:
6183         (rb_library_source_library_location_cb): return FALSE like we are
6184         supposed to, not void.
6186         patch by: FreeBSD GNOME Project
6187         * configure.ac: fix some bash-isms.
6189         patch by: Pawel Worach  <pawel.worach@gmail.com>
6190         * metadata/rb-metadata-dbus-client.c:
6191         * rhythmdb/rhythmdb-query-model.c:
6192         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
6195 2006-04-16  James Livingston  <doclivingston@gmail.com>
6197         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
6198         for transcoding to RBEncoderGst.
6200         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
6201         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
6202         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
6203         (add_decoding_pipeline), (encoder_match_mime),
6204         (get_profile_from_mime_type), (extract_track), (transcode_track),
6205         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
6207 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6209         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
6210         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
6211         load_ipod_db_idle_cb to a new separate function
6213 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6215         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
6216         source
6218 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6220         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
6221         variables
6223 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6225         * data/ui/Makefile.am:
6226         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
6227         menu
6228         * lib/rb-util.c: check if the widget we got from the UI manager isn't
6229         NULL before using it as a popup menu
6230         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
6231         'eject' an iPod
6233 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6235         * sources/rb-ipod-source.c: when hal tells us a partition is on an
6236         iPod, check if it contains an iPod database before using it (in case
6237         the iPod was repartitionned somehow). Should fix bug #325034
6239 2006-04-16  Steve Frécinaux  <steve@istique.net>
6241         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
6243         * data/Makefile.am: install application icon into the default theme.
6245         * data/rhythmbox.desktop.in: don't specify icon file extension.
6246         
6247         * shell/main.c: (main): set default window icon from theme.
6248         
6249         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
6250         code concerning window icon, and fix leak by unreferencing the about
6251         logo pixbuf once it's not used anymore.
6253 2006-04-16  James Livingston  <doclivingston@gmail.com>
6255         * configure.ac: bump version to 0.9.4
6256         * NEWS: update NEWS and 0.9.4 insert translations
6258 2006-04-16  James Livingston  <doclivingston@gmail.com>
6260         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
6261         namespace automatically.
6263 2006-04-16  James Livingston  <doclivingston@gmail.com>
6265         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
6267         * doc/reference/Makefile.am:
6268         * doc/reference/rhythmbox.types: make distcheck work again
6270         * doc/reference/tmpl/eggnotificationbubble.sgml:
6271         * doc/reference/tmpl/eggtrayicon.sgml:
6272         * doc/reference/tmpl/rb-debug.sgml:
6273         * doc/reference/tmpl/rb-entry-view.sgml:
6274         * doc/reference/tmpl/rb-enums.sgml:
6275         * doc/reference/tmpl/rb-metadata.sgml:
6276         * doc/reference/tmpl/rb-new-station-dialog.sgml:
6277         * doc/reference/tmpl/rb-playlist-manager.sgml:
6278         * doc/reference/tmpl/rb-refstring.sgml:
6279         * doc/reference/tmpl/rb-shell-player.sgml:
6280         * doc/reference/tmpl/rb-shell-preferences.sgml:
6281         * doc/reference/tmpl/rb-shell.sgml:
6282         * doc/reference/tmpl/rb-song-info.sgml:
6283         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
6284         * doc/reference/tmpl/rb-statusbar.sgml:
6285         * doc/reference/tmpl/rhythmbox-unused.sgml:
6286         * doc/reference/tmpl/rhythmdb-query-model.sgml:
6287         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
6289 2006-04-16  James Livingston  <doclivingston@gmail.com>
6291         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
6293         * po/LINGUAS: don't split the variable across two lines, as it breaks
6294         the build. Fixes bug 338625.
6296 2006-04-15  James Livingston  <doclivingston@gmail.com>
6298         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
6299         add a "sourcelist-model" gobject property.
6301 2006-04-14  William Jon McCann  <mccann@jhu.edu>
6303         * .cvsignore:
6304         * backends/.cvsignore:
6305         * backends/gstreamer/.cvsignore:
6306         * bindings/.cvsignore:
6307         * bindings/python/.cvsignore:
6308         * help/es/.cvsignore:
6309         * metadata/.cvsignore:
6310         * plugins/.cvsignore:
6311         * plugins/audioscrobbler/.cvsignore:
6312         * plugins/lirc/.cvsignore:
6313         * plugins/pythonconsole/.cvsignore:
6314         * plugins/sample-python/.cvsignore:
6315         * plugins/sample/.cvsignore:
6316         * shell/.cvsignore:
6317         * widgets/libsexy/.cvsignore:
6318         Make CVS ignore files.
6320 2006-04-14  James Livingston  <doclivingston@gmail.com>
6322         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
6323         the track-loading thread hold a reference on the source, so it doesn't
6324         explode if the cd is removed before it is done. Fixes bug 337237.
6326 2006-04-14  James Livingston  <doclivingston@gmail.com>
6328         * bindings/python/override_common.c:
6329         (_helper_unwrap_pointer_pylist):
6330         * bindings/python/override_common.h:
6331         * bindings/python/rb.override:
6332         * bindings/python/rhythmdb.override: Bind some more functions and
6333         virtual functions.
6335         * shell/rb-shell.c: (rb_shell_select_source):
6336         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
6337         * sources/rb-audiocd-source.c:
6338         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
6339         * sources/rb-browser-source.c: (impl_get_search_actions):
6340         * sources/rb-iradio-source.c: (impl_get_ui_actions):
6341         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
6342         * sources/rb-playlist-source.c: (impl_get_ui_actions):
6343         * sources/rb-podcast-source.c: (impl_get_ui_actions),
6344         (impl_get_search_actions):
6345         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
6346         the impl_get_ui_actions and impl_get_search_actions functions return
6347         lists that contain copies of the strings, instead of constant ones.
6348         Needed to bindings
6350 2006-04-14  James Livingston  <doclivingston@gmail.com>
6352         * bindings/python/rhythmdb.defs:
6353         * bindings/python/rhythmdb.override: fix the method argument format
6354         specifiers.
6356 2006-04-14  James Livingston  <doclivingston@gmail.com>
6358         * bindings/python/rhythmdb.defs:
6359         * bindings/python/rhythmdb.override:
6360         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
6361         (entry_to_rb_metadata), (record_entry_change),
6362         (rhythmdb_entry_set_visibility):
6363         * rhythmdb/rhythmdb.h:
6364         * shell/rb-shell.c: (rb_shell_get_song_properties): change
6365         rhythmdb_entry_get to take the db as the first parameter. Fixes the
6366         python bindings of it. The rhythmdb_entry_get_* ones are left the same
6367         since they are used in too many places, and not in the Python
6368         bindings.
6370 2006-04-13  William Jon McCann  <mccann@jhu.edu>
6372         * lib/rb-debug.c: (_rb_profile_log):
6373         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
6374         * rhythmdb/rhythmdb.c: (rhythmdb_load):
6375         * shell/main.c: (main):
6376         * shell/rb-shell.c: (rb_shell_constructor),
6377         (rb_shell_set_visibility), (rb_shell_sync_window_state),
6378         (rb_shell_present):
6379         Fix profile output indentation.  Add more profiling points.
6380         Fixes part of #338114
6382 2006-04-13  James Livingston  <doclivingston@gmail.com>
6384         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
6385         library source being deleted, by setting the active source to NULL.
6386         From bug 338116.
6388 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6390         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
6391         Update the last-seen string when hiddenness changes.
6393 2006-04-12  James Livingston  <doclivingston@gmail.com>
6395         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
6396         which caused the first-seen time to be reset when a metadata load was
6397         done. Fixes bug 336874.
6399         * shell/rb-shell.h: remove old function declaration.
6401         * bindings/python/rhythmdb.defs:
6402         * bindings/python/rhythmdb.override: Fix some python binding stuff.
6404 2006-04-11  James Livingston  <doclivingston@gmail.com>
6406         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
6407         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
6408         interaction. Fixes bug 337999.
6410 2006-04-11  James Livingston  <doclivingston@gmail.com>
6412         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
6413         track transfer. Fixes bug 338056.
6415         * shell/Makefile.am:
6417 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6419         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
6421 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6423         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
6424         (_rb_profile_log):
6425         * lib/rb-debug.h:
6426         * shell/rb-shell.c: (construct_db), (construct_widgets),
6427         (construct_sources), (construct_load_ui), (rb_shell_constructor):
6428         Add profiling.  Fixes #337387
6430 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6432         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
6433         * widgets/rb-header.c:
6434         Use italics for artist and album. Fixes #336748
6436 2006-04-10  James Livingston  <doclivingston@gmail.com>
6438         * Makefile.am:
6439         * backends/gstreamer/Makefile.am:
6440         * configure.ac:
6441         * data/glade/library-prefs.glade:
6442         * shell/Makefile.am:
6443         * shell/rb-removable-media-manager.c:
6444         * shell/rb-removable-media-manager.h:
6445         * sources/Makefile.am:
6446         * sources/rb-audiocd-source.c:
6447         * sources/rb-library-source.c: (rb_library_source_class_init),
6448         (rb_library_source_finalize), (impl_get_config_widget),
6449         (rb_library_source_preferences_sync), (impl_can_paste): add a
6450         --enable-track-transfer configure option, abd make cd ripping disabled
6451         by default.
6453         * shell/rb-source-header.c:
6454         * sources/rb-source.c: (rb_source_class_init),
6455         (rb_source_delete_thyself), (default_get_entry_view):
6456         * lib/rb-glade-helpers.c:
6457         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
6458         some compiler warnings, and also bug 337427.
6460 2006-04-10  James Livingston  <doclivingston@gmail.com>
6462         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
6463         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
6464         if the gconf key is missing. Fixes bug 337742.
6466 2006-04-10  James Livingston  <doclivingston@gmail.com>
6468         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6469         to fix build problems I caused with a commit yesterday. Fixed bug
6470         337806.
6472         * daapsharing/rb-daap-mdns-browser-howl.c:
6473         (rb_daap_mdns_browser_class_init):
6474         * podcast/Makefile.am:
6475         * rhythmdb/Makefile.am:
6476         * widgets/eggtrayicon.h:
6478 2006-04-09  Steve Frécinaux  <steve@istique.net>
6480         * configure.ac:
6481         * po/LINGUAS:
6482         
6483         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
6484         translators' life easier.
6486 2006-04-09  James Livingston  <doclivingston@gmail.com>
6488         * bindings/python/rb.defs:
6489         * bindings/python/rb.override: add bindings for most RBSource virtual
6490         functions.
6492         * sources/rb-source.h:
6493         * sources/rb-source.c: (rb_source_class_init): make
6494         impl_get_browser_key return a non-consht string, since Python can't
6495         really give us constant strings.
6497         * shell/rb-source-header.c: (rb_source_header_finalize),
6498         (rb_source_header_set_source_internal):
6499         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
6500         * sources/rb-iradio-source.c: (impl_get_browser_key):
6501         * sources/rb-library-source.c: (impl_get_browser_key):
6502         * sources/rb-playlist-source.c:
6503         * sources/rb-browser-source.c: (rb_browser_source_constructor),
6504         (rb_browser_source_state_prefs_sync):
6505         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
6506         above change.
6508         * plugins/sample-python/sample-python.py: show how to add a new
6509         source.
6511 2006-04-09  James Livingston  <doclivingston@gmail.com>
6513         * daapsharing/Makefile.am:
6514         * daapsharing/rb-daap-connection.c:
6515         (rb_daap_connection_class_init):
6516         * daapsharing/rb-daap-marshal.list:
6517         * daapsharing/rb-daap-mdns-browser-avahi.c:
6518         (rb_daap_mdns_browser_class_init):
6519         * lib/rb-marshal.list:
6520         * player/Makefile.am:
6521         * player/rb-recorder-gst.c: (rb_recorder_class_init):
6522         * player/rb-recorder-marshal.list:
6523         * podcast/Makefile.am:
6524         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
6525         * podcast/rb-podcast-marshal.list:
6526         * rhythmdb/Makefile.am:
6527         * rhythmdb/rhythmdb-marshal.list:
6528         * rhythmdb/rhythmdb-query-model.c:
6529         (rhythmdb_query_model_class_init):
6530         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
6531         into one file, as there is no point having several of them.
6533 2006-04-09  James Livingston  <doclivingston@gmail.com>
6535         * lib/Makefile.am:
6536         * lib/rb-enums.h:
6537         * widgets/Makefile.am:
6538         * widgets/eggnotificationbubble.c:
6539         * widgets/eggnotificationbubble.h:
6540         * widgets/rb-song-info.c: remove lib/rb-enums.h and
6541         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
6543         * rhythmdb/rhythmdb-property-model.h:
6544         * rhythmdb/rhythmdb-query-model.h:
6545         * rhythmdb/rhythmdb.h:
6546         * shell/rb-playlist-manager.h:
6547         * widgets/rb-cell-renderer-pixbuf.h:
6548         * widgets/rb-cell-renderer-rating.h:
6549         * widgets/rb-rating.h: fix the prototypes of various class-closures.
6551 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6553         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
6554         so we can build without a system-wide installed copy.
6556 2006-04-09  James Livingston  <doclivingston@gmail.com>
6558         * data/glade/general-prefs.glade:
6559         * data/rhythmbox.schemas:
6560         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
6561         (rb_combo_box_hyphen_separator_func):
6562         * lib/rb-glade-helpers.h:
6563         * lib/rb-preferences.h:
6564         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6565         (rb_shell_preferences_sync),
6566         (rb_shell_preferences_toolbar_style_cb),
6567         (rb_shell_preferences_browser_views_activated_cb):
6568         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
6569         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
6570         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
6572 2006-04-09  James Livingston  <doclivingston@gmail.com>
6574         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
6575         data that MusicBrainz returns to us. Last part of bug 334167.
6577 2006-04-09  James Livingston  <doclivingston@gmail.com>
6579         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
6580         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
6582 2006-04-09  James Livingston  <doclivingston@gmail.com>
6584         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
6585         the entry view properly when the rows are reordered. Fixes bug 337019.
6587 2006-04-09  James Livingston  <doclivingston@gmail.com>
6589         * configure.ac:
6590         * widgets/Makefile.am:
6591         * widgets/libsexy/Makefile.am:
6592         * widgets/libsexy/sexy-icon-entry.c:
6593         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
6594         libsexy, and allow building against it or a system-wide installed
6595         copy.
6598         * widgets/rb-search-entry.c: (rb_search_entry_init),
6599         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
6600         search box. Fixes bug 128109.
6602 2006-04-09  James Livingston  <doclivingston@gmail.com>
6604         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6606         * widgets/rb-entry-view.c: (rb_entry_view_init),
6607         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
6608         and Pause icons rather than the volume ones in the Now Playing column.
6609         Closes bug 336482.
6611 2006-04-08  James Livingston  <doclivingston@gmail.com>
6613         * bindings/python/override_common.h:
6614         * bindings/python/rb.override:
6615         * bindings/python/rhythmdb.override: bind some more functions 
6617 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6619         * metadata/rb-metadata-dbus-service.c: (_send_error):
6620         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
6621         are sent properly and we don't get 'method doesn't exist' messages
6622         from dbus instead.
6624 2006-04-08  James Livingston  <doclivingston@gmail.com>
6626         * bindings/python/override_common.h:
6627         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
6628         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
6629         more utility functions for C<->Python conversions
6631         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
6632         (rb_entry_view_state_get_type):
6633         * widgets/rb-entry-view.h: make the colume type and entry view state
6634         GTypes
6636         * bindings/python/Makefile.am:
6637         * bindings/python/rb.defs:
6638         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
6639         RBSource.
6641 2006-04-08  James Livingston  <doclivingston@gmail.com>
6643         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
6644         initialiser for a GError
6646         * sources/rb-source.c: (rb_source_eof_type_get_type):
6647         * sources/rb-source.h: add a GType for RBSourceEOFType
6649         * bindings/python/Makefile.am:
6650         * bindings/python/rb.defs:
6651         * bindings/python/rb.override: bind RBSource and RBSourceList
6653 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6655         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6656         (rb_shell_player_get_property),
6657         (rb_shell_player_get_active_source),
6658         (rb_shell_player_set_playing_source_internal):
6659         * shell/rb-shell-player.h:
6660         Change 'playing-from-queue' from being a signal to being a property.
6662         * shell/rb-shell.c: (rb_shell_constructor),
6663         (rb_shell_playing_from_queue_cb),
6664         (rb_shell_view_queue_as_sidebar_changed_cb),
6665         (rb_shell_jump_to_entry_with_source):
6666         When the queue side pane is used, make 'jump to current' jump to the
6667         entry in the registered source for its type, rather than in the queue,
6668         and show it as playing in that source.
6669         
6670         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
6671         * sources/rb-sourcelist.h:
6672         Remove the 'preempted source' stuff, since it wasn't doing anything
6673         anyway.
6675 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6677         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
6678         (download_progress_cb): Canonicalise downloaded file location before
6679         setting the mountpoint property of the corresponding entry.
6680         Fixes #337287 and a couple of memory leaks.
6682 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6684         * metadata/rb-metadata-dbus-service.c: (test_can_save),
6685         (test_load), (main): Call g_set_prgname, report errors more
6686         usefully in test mode.
6687         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
6688         (rb_metadata_load): Don't ignore the have-type signal for non-audio
6689         files.  Run the event loop when the state change fails so we get the
6690         error messages from the bus.  Fixes #336921.
6692 2006-04-05  William Jon McCann  <mccann@jhu.edu>
6694         * data/art/Makefile.am: Install media-eject.
6696         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
6697         return value of rb_file.
6699         Fixes #337209
6701 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6703         Patch by: William Jon McCann  <mccann@jhu.edu>
6705         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
6706         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
6707         Fix GError leak.
6709 2006-04-04  William Jon McCann  <mccann@jhu.edu>
6711         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
6712         Don't try to add a date when we don't have one.  Fixes #336741.
6714         Also fix variable declaration in middle of block.
6716 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6718         * shell/rb-shell-player.c: (rb_shell_player_playpause):
6719         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
6721 2006-04-02  James Livingston  <doclivingston@gmail.com>
6723         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
6724         inverted logic causing imports to fail.
6726 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6728         * shell/main.c: (main): Fix dbusless build.
6730 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
6732         * player/rb-recorder-gst.c: fix packing of the C struct holding a
6733         wav header for non-gcc compilers (not tested much, was only written
6734         according to docs)
6736 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6738         * shell/main.c: (main): Check if we got a dbus connection before
6739         trying to create a proxy for the shell object.  Fixes #336634.
6741 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6743         * doc/reference/Makefile.am:
6744         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
6745         * shell/rb-source-header.c:
6746         * sources/rb-generic-player-source.c:
6747         (default_transform_playlist_uri):
6748         Fix various build issues.  Patch approximately 50% by Alex Lancaster
6749         <alexl@users.sourceforge.net>
6751 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6753         * configure.ac: Detect LIRC.
6754         
6755         * plugins/Makefile.am:
6756         * plugins/lirc/Makefile.am:
6757         * plugins/lirc/lirc.rb-plugin.desktop.in:
6758         * plugins/lirc/rb-lirc-plugin.c:
6759         LIRC plugin.
6761         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
6762         Remove obsolete files.
6764 2006-04-02  James Livingston  <doclivingston@gmail.com>
6766         * sources/rb-generic-player-source.c:
6767         (default_transform_playlist_uri): consider playlist paths as relative
6768         to the volume root by default, since that is what most players use.
6770 2006-04-02  James Livingston  <doclivingston@gmail.com>
6772         * lib/rb-util.c: (rb_mime_get_friendly_name):
6773         * lib/rb-util.h: add helper function to get the "friendly" name for a
6774         mime-type
6776         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6777         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
6778         the user better error messages about undecodable streams, using the
6779         "friendly" name if possible. Fixes bug 128109.
6781 2006-04-02  James Livingston  <doclivingston@gmail.com>
6783         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
6784         (start_pipeline): fix building with gstreamer 0.8
6786 2006-04-02  James Livingston  <doclivingston@gmail.com>
6788         * sources/rb-podcast-source.c: (impl_delete),
6789         (rb_podcast_source_cmd_delete_feed),
6790         (rb_podcast_source_cmd_update_feed): copy the list before traversing
6791         it, since it may change during traversal. Fixes bug 336204.
6793 2006-04-01  James Livingston  <doclivingston@gmail.com>
6795         * data/art/media-eject.png: add the media-eject icon from Banshee
6796         (BSD-licensed), for use when the user's icon theme doesn't have one.
6798         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
6799         bug 334897.
6801 2006-04-01  James Livingston  <doclivingston@gmail.com>
6803         * shell/rb-shell-player.h:
6804         * shell/rb-shell-player.c: (rb_shell_player_play),
6805         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
6806         new rb_shell_player_{play,pause} functions, so everyone doesn't have
6807         to do rb_shell_player_playing followed by rb_shell_player_playpause.
6809         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
6810         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
6811         * shell/rb-shell.h: add rb_shell_get_ui_manager.
6813         * bindings/python/rb.defs: bind the above to Python, and remove some
6814         useless stuff from the bindings.
6816 2006-04-01  James Livingston  <doclivingston@gmail.com>
6818         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
6819         number tag.
6821         * shell/rb-shell.c:
6822         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
6824         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
6825         to true.
6827         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
6828         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
6829         method assigning, so it's understandable
6831         * sources/rb-library-source.c: (rb_library_source_class_init),
6832         (impl_paste): rather than hard-coding the types to ignore, use
6833         rb_source_can_copy.
6835 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6837         * sources/rb-library-source.c:
6838         (rb_library_source_preferences_sync):
6839         Don't crash if no audio profile is selected and the gconf schemas are 
6840         not installed.
6842 2006-03-31  James Livingston  <doclivingston@gmail.com>
6844         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
6845         "*" which caused compilation to fail
6847 2006-03-31  James Livingston  <doclivingston@gmail.com>
6849         * configure.ac:
6850         * Makefile.am:
6851         * backends/Makefile.am:
6852         * backends/gstreamer/Makefile.am:
6853         * backends/gstreamer/rb-encoder-gst.c:
6854         * backends/gstreamer/rb-encoder-gst.h:
6855         * backends/rb-encoder.c:
6856         * backends/rb-encoder.h: add a interface for transcoding, and a
6857         GStreamer implementation of it (based on Sound-Juicer's code).
6859         * shell/Makefile.am:
6860         * shell/rb-removable-media-manager.c:
6861         (rb_removable_media_manager_class_init),
6862         (rb_removable_media_manager_init),
6863         (rb_removable_media_manager_dispose),
6864         (rb_removable_media_manager_finalize),
6865         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
6866         (progress_cb), (completed_cb), (do_transfer),
6867         (rb_removable_media_manager_queue_transfer), (copy_entry),
6868         (rb_removable_media_manager_cmd_copy_tracks):
6869         * shell/rb-removable-media-manager.h: use the encoder interface to
6870         perform transfers of entries to other locations
6872         * shell/rb-shell-player.c: (open_location_thread):
6873         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
6874         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
6875         (rb_shell_quit):
6876         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
6877         progress in the status bar.
6879         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6880         (rb_shell_preferences_sync),
6881         (rb_shell_preferences_browser_views_activated_cb):
6882         * data/glade/general-prefs.glade: move the browser views setting from
6883         the library tab to the general one.
6885         * data/glade/library-prefs.glade: add settings for the layout of the
6886         user's library, and their preferred encoding format (e.g. for CD
6887         ripping).
6889         * lib/rb-preferences.h:
6890         * data/rhythmbox.schemas: add keys for the above options (and a few
6891         other minor ones)
6893         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
6894         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
6895         entry, that isn't inserted into the database.
6897         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
6898         (rb_audiocd_create_track_entry):
6899         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
6900         cds, and set the mime-type of audio cd tracks correctly.
6902         * sources/rb-library-source.c: (rb_library_source_class_init),
6903         (rb_library_source_finalize),
6904         (rb_library_source_edit_profile_clicked_cb),
6905         (impl_get_config_widget), (rb_library_source_preferences_sync),
6906         (impl_receive_drag), (rb_library_source_path_changed_cb),
6907         (rb_library_source_filename_changed_cb),
6908         (rb_library_source_format_changed_cb), (sanitize_path),
6909         (filepath_parse_pattern), (layout_example_label_update),
6910         (rb_library_source_layout_path_changed),
6911         (rb_library_source_layout_filename_changed), (build_filename),
6912         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
6913         entries to the library. Large chunks of code for determining the
6914         destination file name stolen from Sound-Juicer.
6916         * sources/rb-sourcelist-model.c: (path_is_droppable):
6917         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
6918         * sources/rb-static-playlist-source.c:
6919         (rb_static_playlist_source_class_init):
6920         * sources/rb-removable-media-source.c:
6921         (rb_removable_media_source_class_init):
6922         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
6923         (rb_source_can_paste):
6924         * sources/rb-source.h: add a new _can_paste method, and use it (rather
6925         than _can_copy) to determine whether we can paste into the source.
6928 2006-03-31  Steve Frécinaux  <steve@istique.net>
6930         * plugins/rb-python-module.c: allow import of python modules with a '.'
6931         (gedit's bug 336403). Patch by Johan Dahlin.
6933 2006-03-31  James Livingston  <doclivingston@gmail.com>
6935         * sources/rb-library-source.c: 
6936         * sources/rb-library-source.h:
6937         * sources/rb-browser-source.c:
6938         * sources/rb-browser-source.h: Split RBLibrarySource into two.
6939         RBBrowserSource now contains all the stuff for having a source which
6940         views a particular entry type (including browsers and searching).
6941         RBLibrarySource derives from this, and includes the library-specific
6942         stuff, like importing and library watching. Fixes some issues where
6943         library-derived sources were doing things that should be
6944         library-specific. Fixes bug 335185.
6946         * data/ui/rhythmbox-ui.xml:
6947         * sources/Makefile.am: modifications for the above
6949         * sources/rb-daap-source.c: (rb_daap_source_class_init),
6950         (rb_daap_source_get_paned_key):
6951         * sources/rb-daap-source.h:
6952         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
6953         * sources/rb-removable-media-source.c:
6954         (rb_removable_media_source_class_init):
6955         * sources/rb-removable-media-source.h: derive from RBBrowserSource
6956         instead of RBLibrarySource.
6958 2006-03-31  James Livingston  <doclivingston@gmail.com>
6960         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
6961         I buggered up when changing from GnomeVFSFileSize.
6963 2006-03-30  James Livingston  <doclivingston@gmail.com>
6965         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
6966         for "-Wno-error".
6968         * bindings/python/rb.override:
6969         * bindings/python/Makefile.am: make the RB python bindings depend on
6970         the RhythmDB ones, and use "-Wno-error" since the machine-generated
6971         code sometimes emits warnings.
6973         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6974         (rb_shell_player_error_get_type):
6975         * shell/rb-shell-player.h:
6976         * bindings/python/rb.defs: add bindings for RBShellPlayer
6978         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6979         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
6980         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
6981         * rhythmdb/rhythmdb.h:
6982         * shell/rb-shell.c: (rb_shell_get_song_properties):
6983         * widgets/rb-entry-view.c: (propid_from_name):
6984         * widgets/rb-property-view.c: (rb_property_view_class_init):
6985         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
6986         than just plain GPtrArray, and add bindings for it.
6988         * bindings/python/rhythmdb.override: wrap some functions that use
6989         GValues
6991 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6993         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
6994         Only watch directories from which entries of type SONG have been
6995         added.
6997 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6999         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7000         No need to restore the selection after rebuilding the child model,
7001         since that can't have changed the selection.
7003 2006-03-29  James Livingston  <doclivingston@gmail.com>
7005         * bindings/python/override_common.c:
7006         * bindings/python/override_common.h: add some for missing files to
7007         cvs.
7009 2006-03-29  James Livingston  <doclivingston@gmail.com>
7011         * configure.ac:
7012         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
7013         copied from gedit's autofoo and we don't need it
7015         * bindings/python/rhythmdb.defs:
7016         * bindings/python/rhythmdb.override: add missing files to cvs
7018 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7020         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
7021         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
7022         before running any of the debug/test modes.
7023         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
7024         Make plugin loading work when running uninstalled from the shell/
7025         directory.
7027 2006-03-29  James Livingston  <doclivingston@gmail.com>
7029         * rhythmdb/rhythmdb-property-model.c:
7030         (rhythmdb_property_model_sync),
7031         (rhythmdb_property_model_column_get_type):
7032         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
7034         * rhythmdb/rhythmdb-private.h:
7035         * rhythmdb/rhythmdb-query-model.c:
7036         (rhythmdb_query_model_class_init):
7037         * rhythmdb/rhythmdb-query-model.h:
7038         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
7039         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
7040         (rhythmdb_entry_get_type):
7041         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
7043         * widgets/rb-query-creator-properties.c:
7044         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
7045         was missing.
7047         * bindings/python/Makefile.am:
7048         * bindings/python/rb.defs:
7049         * bindings/python/rb.override:
7050         * plugins/rb-python-module.c: (rb_python_module_init_python): add
7051         Python bindings for RhythmDB.
7053 2006-03-29  James Livingston  <doclivingston@gmail.com>
7055         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
7056         sharing when using --no-registration
7058 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7060         * rhythmdb/rhythmdb-query-model.c:
7061         (rhythmdb_query_model_reapply_query):
7062         Don't remove entries while iterating, as it breaks the sequence
7063         nodes.  Instead, collect a list of removed entries and process it
7064         after iterating the sequence.  Fixes #334642.
7066 2006-03-29  James Livingston  <doclivingston@gmail.com>
7068         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7069         (row_activated_cb), (plugin_manager_toggle_all):
7070         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
7071         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
7072         (button_press_cb), (source_name_edited_cb):
7073         * widgets/rb-property-view.c: (rb_property_view_set_property),
7074         (rb_property_view_post_row_deleted_cb),
7075         (rb_property_view_row_activated_cb),
7076         (rb_property_view_selection_changed_cb),
7077         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
7078         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
7080 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7082         * rhythmdb/rhythmdb-query-model.c:
7083         (rhythmdb_query_model_drag_data_received):
7084         Increment the reference count for entries added by drag and drop.
7085         Fixes #336045.
7087 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7089         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
7090         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
7091         Ignore invalid UTF-8 strings.  Fixes most of #334167.
7093 2006-03-27  James Livingston  <doclivingston@gmail.com>
7095         * shell/rb-shell.c: (rb_shell_constructor),
7096         (rb_shell_sync_window_state): fix a maximise-realise race that would
7097         cause some widgets to be resized after we had explicity set theri
7098         size. Hopefully fixes bug 331927.
7100 2006-03-27  James Livingston  <doclivingston@gmail.com>
7102         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7103         (row_activated_cb), (plugin_manager_set_active),
7104         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
7105         configure button sensitivity when a plugin is enabled/disabled.
7107 2006-03-27  James Livingston  <doclivingston@gmail.com>
7109         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
7110         stop warnings, only the vbos is used anyway
7112         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
7113         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
7114         collection every now an then.
7116         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
7117         if we are finalising because the python object couldn't be created.
7119         * plugins/rb-python-module.c: (rb_python_module_new_object): return
7120         NULL if the python-side object couldn't be created. Stops crashes when
7121         the object is later used when it doesn't exist in Python.
7123         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
7124         (rb_python_shutdown): do better garbage collection when shutting down.
7125         Fixes the problem where Python was holding a reference to the shell,
7126         causing RB not to exit.
7128 2006-03-27  James Livingston  <doclivingston@gmail.com>
7130         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
7131         336131.
7133 2006-03-27  James Livingston  <doclivingston@gmail.com>
7135         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
7136         From bug 334829.
7138 2006-03-26  James Livingston  <doclivingston@gmail.com>
7140         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
7141         library location list to NULL after we free it. Fixes bug 336047.
7143 2006-03-26  James Livingston  <doclivingston@gmail.com>
7145         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7147         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
7148         supplies. Fixes bug 335947.
7150 2006-03-25  James Livingston  <doclivingston@gmail.com>
7152         * data/glade/audioscrobbler-prefs.glade:
7153         * shell/rb-audioscrobbler.c:
7154         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
7155         "submit songs" checkbox, and make it not disable username/password
7156         entry. This will be needed when we support other last.fm stuff
7157         (profile access, radio, etc).
7159 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
7161         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
7162         Volume should not display stock_volume-0 for volume > 0. Fixes bug
7163         335777.
7165 2006-03-24  James Livingston  <doclivingston@gmail.com>
7167         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7168         (rb_shell_player_sync_play_order),
7169         (rb_shell_player_play_order_update_cb),
7170         (actually_set_playing_source): update the next/previous availablility
7171         in places where it was missing. Fixes bug 335490.
7173 2006-03-24  James Livingston  <doclivingston@gmail.com>
7175         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
7176         can't find the widget
7178         * lib/rb-util.c: (rb_uri_list_parse):
7179         * lib/rb-util.h: add function for parsing a URI list into strings.
7181         * metadata/Makefile.am: make the metdata helper build when linking
7182         with --as-needed
7184         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
7185         g_mkdir_with_parents instead of coding our own.
7187         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
7188         <itunes:author> over <generator>, instead of using whichever comes
7189         last.
7191         * rhythmdb/rhythmdb-private.h:
7192         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
7193         field, as we don't ever check it (to detect corruption). Saves a bit
7194         of memory.
7196 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7198         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
7199         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
7200         Escape '&' and '=' in the paths we get back from
7201         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
7203 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7205         * shell/rb-shell.c: (rb_shell_constructor):
7206         Issue startup notification after creating the main window, so
7207         notification is issued whether the window is visible or not.
7208         Fixes #335086.
7210 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7212         * sources/rb-auto-playlist-source.c: (impl_search),
7213         (rb_auto_playlist_source_query_complete_cb),
7214         (rb_auto_playlist_source_do_query):
7215         * sources/rb-library-source.c: (impl_search),
7216         (rb_library_source_query_complete_cb),
7217         (rb_library_source_do_query):
7218         Defer subset searches (where text is appended to an existing search)
7219         until the original query is complete.
7221 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
7223         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
7225         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7226         (rb_refstring_get_sort_key): fixes for strict-aliasing
7228 2006-03-21  James Livingston  <jrl@ids.org.au>
7230         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
7231         importing a single file. Fixes bug 335307.
7233 2006-03-21  James Livingston  <jrl@ids.org.au>
7235         * shell/Makefile.am: remove the reference to backends/ that I
7236         accidently included.
7238 2006-03-21  James Livingston  <jrl@ids.org.au>
7240         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
7241         with Forte (on Solaris). Closes bug 335318.
7243         * configure.ac:
7244         * lib/Makefile.am:
7245         * player/rb-recorder-gst.c:
7246         * podcast/rb-podcast-parse.c:
7247         * remote/bonobo/Makefile.am:
7248         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
7249         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
7250         (rhythmdb_query_model_add_entry),
7251         (rhythmdb_query_model_add_results):
7252         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
7253         * rhythmdb/rhythmdb.h:
7254         * shell/Makefile.am:
7255         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
7256         (update_speed_combobox):
7257         * sources/rb-sourcelist-model.c:
7259 2006-03-21  James Livingston  <jrl@ids.org.au>
7261         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7263         * player/Makefile.am:
7264         * shell/Makefile.am: work correctly with a separate build root.
7266 2006-03-21  James Livingston  <jrl@ids.org.au>
7268         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
7269         get handed NULL.
7271 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7273         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
7274         Only create ignore entries when importing into the library.  
7275         Ignore entries for files in removable media sources don't help.
7277 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7279         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
7280         * shell/rb-source-header.h:
7281         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
7282         * widgets/rb-search-entry.h:
7283         Add functions to make the search box grab focus.
7285         * shell/rb-shell.c: (rb_shell_cmd_view_all):
7286         Focus the search box after handling the 'view all' action.
7288 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7290         * rhythmdb/rhythmdb.h:
7291         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7292         (rhythmdb_execute_multi_stat_info_cb),
7293         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
7294         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
7295         (action_thread_main):
7296         Collect all the get_file_info requests on startup into one gnome-vfs
7297         job to reduce overhead and avoid contention for the rhythmdb lock.
7298         Add a new method to call when all initial query models are set up.
7299         
7300         * shell/rb-shell.c: (idle_handle_load_complete):
7301         Call rhythmdb startup complete function when we've loaded all the
7302         playlists.  Fixes #334106.
7304 2006-03-20  James Livingston  <jrl@ids.org.au>
7306         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
7307         (rb_entry_view_selection_changed_cb),
7308         (rb_entry_view_have_complete_selection): make has_complete_selection
7309         not slow. Fixes a performance issue I added a week or so ago.
7311 2006-03-20  James Livingston  <jrl@ids.org.au>
7313         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
7314         before passing to strcmp. From bug 334559.
7316 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7318         * configure.ac:
7319         * lib/Makefile.am:
7320         * lib/rb-proxy-config.c:
7321         * lib/rb-proxy-config.h:
7322         Add a new object to watch the HTTP proxy configuration and emit
7323         signals when it changes.
7325         * shell/rb-audioscrobbler.c:
7326         * shell/rb-audioscrobbler.h:
7327         Use rb-proxy-config to watch HTTP proxy configuration.
7329         * shell/rb-shell.c:
7330         Construct rb-proxy-config object on startup, and remove all
7331         audioscrobbler references.
7333         * shell/Makefile.am:
7334         * plugins/audioscrobbler/Makefile.am:
7335         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
7336         Move all audioscrobbler code into the plugin.  We should move
7337         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
7338         point.  Don't use a private data structure in the plugin, since the
7339         class definition isn't in a header file.  Fixes #335091.
7341 2006-03-20  James Livingston  <jrl@ids.org.au>
7343         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
7344         don't enable Next if the source has an EOS type other than
7345         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
7347 2006-03-20  James Livingston  <jrl@ids.org.au>
7349         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
7350         (rb_song_info_forward_clicked_cb): deal with there being no
7351         next/previous entry.
7353         (rb_song_info_query_model_inserted_cb),
7354         (rb_song_info_query_model_deleted_cb),
7355         (rb_song_info_query_model_reordered_cb),
7356         (rb_song_info_query_model_changed_cb): monitor the query for changes,
7357         to update the button status. Fixes bug 333293.
7359 2006-03-20  James Livingston  <jrl@ids.org.au>
7361         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
7362         caused by my last commit
7364 2006-03-20  James Livingston  <jrl@ids.org.au>
7366         * bindings/python/Makefile.am:
7367         * bindings/python/rb.defs:
7368         * bindings/python/rb.override: add python bindings of RBRemoteProxy
7370         * shell/rb-shell.c: (rb_shell_constructor),
7371         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
7372         tray-icon detection slightly
7374 2006-03-19  Steve Frécinaux  <steve@istique.net>
7376         * data/ui/rhythmbox-ui.xml:
7377         * shell/rb-shell.c:
7379         Add an empty Tool Menu (hidden by default) containing placeholders for
7380         plugins.
7382         * configure.ac:
7383         * plugins/Makefile.am:
7384         * plugins/pythonconsole/Makefile.am:
7385         * plugins/pythonconsole/pythonconsole.py:
7386         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
7387         
7388         Python Console plugin
7390 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7392         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
7393         Extra step to encode '&' and '=' to match what gnome-vfs does
7394         internally.
7395         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
7396         (rhythmdb_tree_save):
7397         Increment rhythmdb xml version to 1.2, and force another uri
7398         re-canonicalisation when loading v1.1 databases.
7399         Fixes bug #333998.
7401 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7403         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
7404         (avahi_client_init), (browse_cb):
7405         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
7406         (avahi_client_init):
7407         Fix compilation with Avahi 0.5.x (bug #334551).
7409 2006-03-19  James Livingston  <jrl@ids.org.au>
7411         Add Increase/Decrease Volume menu items and keybindings. From bug
7412         123383.
7414         * data/ui/rhythmbox-ui.xml:
7415         * shell/rb-shell-player.c: (rb_shell_player_constructor),
7416         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
7417         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
7419 2006-03-19  James Livingston  <jrl@ids.org.au>
7421         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
7423         * shell/Makefile.am: fix the link order, so that we compile with
7424         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
7426 2006-03-19  James Livingston  <jrl@ids.org.au>
7428         patch by: Adam Petaccia  <adam@tpetaccia.com>
7430         * data/ui/rhythmbox-ui.xml: move preferences below "configure
7431         plugins". Fixes bug 335037.
7433 2006-03-18  James Livingston  <jrl@ids.org.au>
7435         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7436         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
7437         332992.
7439         * widgets/rb-header.c: don't make artist/album info in the header the
7440         small size, since it's hard to read.
7442 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7444         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
7445         (rhythmdb_finalize): Don't leak the hash tables.
7446         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
7447         (rhythmdb_commit_internal): Make sure to process the deletions.
7448         (rhythmdb_entry_delete): Use a hash.
7450         * podcast/rb-podcast-manager.c: Random analness about char*
7451         (rb_podcast_manager_remove_feed): Add debugging.
7452         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
7453         the result of gnome_vfs_unlink.  Don't leak a uri.
7455         Fixes #334786
7457 2006-03-18  James Livingston  <jrl@ids.org.au>
7459         * NEWS: update NEWS file
7461 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7463         * rhythmdb/rhythmdb-property-model.c:
7464         (rhythmdb_property_model_prop_changed_cb):
7465         Remove entries from the hash table after processing visible->hidden
7466         changes.
7468 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7470         * sources/rb-daap-source.c (connection_connected_cb) 
7471         (connection_disconnected_cb): Add debug.
7472         (rb_daap_source_get_headers): Check for NULL connection.
7474         * daapsharing/rb-daap-src.c (rb_daap_src_open):
7475         Check return value of rb_daap_source_get_headers.
7477         Fixes #332089
7479 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7481         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7482         Restore the selection after rebuilding the child model, so the
7483         selection is shown correctly after using the 'browse this
7484         album/artist/genre' menu items.
7486 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7488         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
7489         Clear the selection before changing the active model.
7490         Fixes crash reported in bug 334549.
7492 2006-03-15  James Livingston  <jrl@ids.org.au>
7494         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
7495         (rb_tray_icon_sync_action):
7496         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
7497         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
7498         for non-libnotify notification bubbles. Fixes bug 331721.
7500 2006-03-15  James Livingston  <jrl@ids.org.au>
7502         Add search-bar options to playlists. Fixes bug 334407.
7504         * sources/rb-auto-playlist-source.c:
7505         (rb_auto_playlist_source_class_init),
7506         (rb_auto_playlist_source_constructor),
7507         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
7508         (search_action_to_prop), (search_action_changed):
7509         * sources/rb-static-playlist-source.c:
7510         (rb_static_playlist_source_class_init),
7511         (rb_static_playlist_source_constructor),
7512         (construct_query_from_selection), (impl_get_search_actions),
7513         (search_action_to_prop), (search_action_changed):
7515 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7517         * shell/rb-source-header.c (rb_source_header_set_source_internal):
7518         Remove broken attempt at making the search bar buttons not
7519         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
7521 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7523         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
7524         Chain up to parent's dispose instead of finalize.  Fixes #334479.
7526 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7528         * widgets/rb-header.c (rb_header_sync): Escape album and
7529         artist before adding to markup.
7531 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7533         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
7534         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
7535         (rb_header_set_property), (rb_header_get_property),
7536         (rb_header_sync):
7537         Remove the GnomeUrl song links until we can do it properly.
7538         Fixes #334453.
7540 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7542         * shell/rb-source-header.c: (rb_source_header_clear_search):
7543         Remove the stored search text from the hash table, so it doesn't
7544         reappear after switching to another source and back.
7546         * sources/rb-auto-playlist-source.c: (impl_search):
7547         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
7548         * sources/rb-static-playlist-source.c: (impl_search):
7549         Make sure all sources treat impl_search(NULL) and impl_search("") the
7550         same.  Fixes #334525.
7552 2006-03-14  James Livingston  <jrl@ids.org.au>
7554         Store which thread created new entries, and make rhythmdb_commit only
7555         insert the entries for the thread that calls it. This stops one thread
7556         calling rhythmdb_commit inserting entries that are half-way through
7557         construction by another thread (as happens with audio cds). From bug
7558         330226.
7560         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7561         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
7562         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
7563         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
7564         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
7565         (rhythmdb_process_metadata_load),
7566         (rhythmdb_process_queued_entry_set_event),
7567         (rhythmdb_prop_get_type):
7569 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7571         * rhythmdb/rhythmdb-query-model.c:
7572         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
7573         (rhythmdb_query_model_finalize):
7574         Move object unrefs from _finalize into _dispose.
7575         
7576         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
7577         Remove extra g_object_ref that was causing query model leaks.
7578         
7579         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
7580         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
7581         (genre_selection_reset_cb), (rb_iradio_source_do_query):
7582         Remove the cached 'all' query, since it doesn't really help and it
7583         makes the code more complicated.  Attach the genre property view to
7584         the query model build from the search text, so only genres for
7585         stations matching the search terms are displayed.  Preserve the genre
7586         selection across searches.
7588         * widgets/rb-library-browser.c: 
7589         (rb_library_browser_class_init), (rb_library_browser_get_property):
7590         Add properties for the input and output models for the browser, and
7591         remove the 'changed' signal as we can just use notify::output-model.
7592         (ignore_selection_changes),
7593         (selection_restore_data_destroy), (query_complete_cb),
7594         (restore_selection): Helper functions for preserving selections across
7595         query model rebuilds.
7596         (rebuild_output_model):  New function for creating a query model to
7597         use as the display model for a source using the browser.
7598         (rebuild_child_model): Add a call to rebuild_output_model, add missing
7599         g_object_unrefs, reuse the parent's query model when there's no
7600         selection, and use ignore_selection_changes and restore_selection.
7601         (rb_library_browser_set_selection): rebuild_child_model emits the
7602         changed signal, so no need to do it here.
7603         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
7604         ignore_selection_changes and restore_selection. 
7605         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
7606         flag to rb_library_browser_set_model indicating whether the query is
7607         asynchronous.
7609         * sources/rb-static-playlist-source.c:
7610         (rb_static_playlist_source_class_init),
7611         (rb_static_playlist_source_dispose):
7612         (rb_static_playlist_source_constructor):  Add an extra reference on
7613         the base model, so it doesn't vanish when we set a new display model
7614         based on a search or browser selection.
7615         (impl_search): Ensure the search_text field in the source is NULL if
7616         the search box is empty.
7617         (construct_query_from_selection),
7618         (rb_static_playlist_source_do_query): Use the query model constructed
7619         from the search as the input model for the browser.
7620         (rb_static_playlist_source_browser_changed_cb): Use the browser's
7621         output model as the query model for the source.
7623         * sources/rb-auto-playlist-source.c:
7624         (rb_auto_playlist_source_finalize): Free more stuff.
7625         (rb_auto_playlist_source_constructor),
7626         (rb_auto_playlist_source_browser_changed_cb):
7627         Update for rb-library-browser changes, use the browser's output query
7628         model as the query model for the source.
7629         (impl_reset_filters), (impl_search), 
7630         (rb_auto_playlist_source_do_query),
7631         (rb_auto_playlist_source_set_query):
7632         Use the query model constructed from the search text as the input to
7633         the library browser, and when adding text to an existing search, apply
7634         the new query to the existing query model.
7635         
7636         * sources/rb-library-source.c: (rb_library_source_dispose):
7637         (rb_library_source_finalize): Chain dispose up to the parent class.
7638         (rb_library_source_constructor): Update for rb-library-browser
7639         changes. 
7640         (impl_search): Ensure search_text is NULL if the search box is empty,
7641         and use the subset flag to _do_query if text has been appended to an
7642         existing search.
7643         (search_action_changed), (impl_reset_filters):
7644         (rb_library_source_browser_changed_cb),
7645         (rb_library_source_do_query): Use the browser's output model as the
7646         query model for the source.
7648         Rework library and playlist sources to use a single query chain,
7649         and to limit the entries shown in property views based on the search
7650         terms.  Fixes bug #322787.
7652 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7654         * configure.ac:  Enable metadata helper by default, and fix a typo.
7656 2006-03-13  James Livingston  <jrl@ids.org.au>
7658         Make RBRefStrings lazily create the folded and sort-key strings when
7659         they are first used. This will same some memory by not creating ones
7660         that are never used, and delaying some of the others to when the user
7661         resorts or performs a similar action. Fixes bug 332992.
7663         * rhythmdb/rb-refstring.c: (rb_refstring_free),
7664         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
7665         (rb_refstring_get), (rb_refstring_get_folded),
7666         (rb_refstring_get_sort_key), (rb_refstring_hash),
7667         (rb_refstring_equal):
7668         * rhythmdb/rb-refstring.h:
7669         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
7671 2006-03-12  William Jon McCann  <mccann@jhu.edu>
7673         * data/ui/rhythmbox-ui.xml:
7674         * lib/rb-stock-icons.c: (rb_stock_icons_init):
7675         * lib/rb-stock-icons.h:
7676         * shell/rb-shell-player.c:
7677         * shell/rb-shell.c: (rb_shell_constructor):
7678         * shell/rb-source-header.c: (force_no_shadow),
7679         (ui_manager_add_widget_cb), (rb_source_header_constructor),
7680         (rb_source_header_class_init), (rb_source_header_init),
7681         (merge_source_ui_cb), (toolbar_set_homogeneous),
7682         (rb_source_header_set_source_internal),
7683         (rb_source_header_set_property), (rb_source_header_get_property),
7684         (rb_source_header_set_source), (rb_source_header_new),
7685         (rb_source_header_filter_changed_cb):
7686         * shell/rb-source-header.h:
7687         * sources/rb-library-source.c: (rb_library_source_class_init),
7688         (rb_library_source_init), (search_action_to_prop),
7689         (search_action_changed), (rb_library_source_constructor),
7690         (impl_search), (impl_reset_filters), (impl_get_search_actions),
7691         (construct_query_from_selection):
7692         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
7693         (rb_podcast_source_init), (search_action_to_prop),
7694         (search_action_changed), (rb_podcast_source_constructor),
7695         (construct_query_from_selection), (impl_get_ui_actions),
7696         (impl_get_search_actions):
7697         * sources/rb-source.c: (rb_source_class_init),
7698         (rb_source_get_ui_actions), (default_get_search_actions),
7699         (rb_source_get_search_actions):
7700         * sources/rb-source.h:
7702         Add a search bar.  Fixes #328618
7704 2006-03-12  James Livingston  <jrl@ids.org.au>
7706         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
7707         * shell/main.c: (main): make --no-update not stat files checking for
7708         changes, instead of doing nothing. Fixes bug 125177.
7710 2006-03-12  James Livingston  <jrl@ids.org.au>
7712         * podcast/rb-podcast-manager.c:
7713         (rb_podcast_manager_thread_parse_feed):
7714         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
7715         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
7716         having an invalid mime-type. Fixed bug 329813.
7718 2006-03-12  James Livingston  <jrl@ids.org.au>
7720         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
7721         Finally lets us close bug 309609.
7723         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
7724         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
7725         0.10
7727         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
7728         inverted logic of the editable check.
7730 2006-03-12  James Livingston  <jrl@ids.org.au>
7732         Make API doc generation work again. Fixes bug 334276.
7734         * doc/reference/Makefile.am:
7735         * doc/reference/tmpl/rb-debug.sgml:
7736         * doc/reference/tmpl/rb-druid.sgml:
7737         * doc/reference/tmpl/rb-entry-view.sgml:
7738         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
7739         * doc/reference/tmpl/rb-metadata.sgml:
7740         * doc/reference/tmpl/rb-shell.sgml:
7741         * doc/reference/tmpl/rhythmbox-unused.sgml:
7742         * doc/reference/tmpl/rhythmdb.sgml:
7744 2006-03-12  James Livingston  <jrl@ids.org.au>
7746         * shell/rb-shell-clipboard.c:
7747         (rb_shell_clipboard_set_source_internal),
7748         (rb_shell_clipboard_sync): don't try to use the source's entry view if
7749         it doesn't have one. Fixes bug 331673.
7751         * sources/rb-source.c: (rb_source_class_init): provide a default
7752         have_url implementation that returns FALSE.
7754 2006-03-12  James Livingston  <jrl@ids.org.au>
7756         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
7757         doing a distclean. Fixes bug 334221.
7760         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
7762         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
7764 2006-03-11  James Livingston  <jrl@ids.org.au>
7766         * shell/rb-shell.c: (rb_shell_window_state_cb),
7767         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
7768         update the window width/height when iconified. Stops the window
7769         changing size when it is restored from the tray, fixing bug 333824. 
7771 2006-03-11  James Livingston  <jrl@ids.org.au>
7773         Try to get cvs to actually add the necessary files for plugin support
7775 2006-03-11  James Livingston  <jrl@ids.org.au>
7777         Add a plugin framework, with basic support for Python plugins (based
7778         on gedit's). Closes bug 330523.
7780         * Makefile.am:
7781         * shell/Makefile.am:
7782         * configure.ac: necessary autofoo.
7784         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
7786         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
7787         * lib/rb-file-helpers.h:
7789         * data/glade/plugins/glade:
7790         * lib/rb-preferences.h:
7791         * plugins/*:
7792         * bindings/*: plugin framework
7794         * plugins/sample/*:
7795         * plugins/sample-python/*: sample plugins
7797         * plugins/audioscrobbler/*:
7798         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
7799         (rb_audioscrobbler_set_property),
7800         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
7801         submission into a plugin. shell/audioscrobbler.* should really be
7802         moved, but that sucks with cvs.
7804         * shell/rb-shell.h:
7805         * shell/rb-shell.c: (rb_shell_constructor),
7806         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
7807         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
7808         (rb_shell_quit): start and stop plugin framework.
7810 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7812         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
7813         (rhythmdb_entry_delete):
7814         Emit entry-deleted signals when rhythmdb_commit is called, rather than
7815         immediately, so we can't get change notifications afterwards.  
7816         Fixes #331732.
7817         (rhythmdb_process_metadata_load): Add a commit after removing an
7818         entry so we can recreate it with a different type without getting
7819         confused.
7821 2006-03-11  James Livingston  <jrl@ids.org.au>
7823         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
7824         use the drive name for audio CDs, use "Unknown CD".
7826 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7828         patch by:  James Henstridge  <james@jamesh.id.au>
7830         * sources/rb-removable-media-source.c:
7831         (rb_removable_media_source_constructor):
7832         Get the device name from the GnomeVFSDrive if possible,
7833         since this is usually a more descriptive name.  Fixes #333080.
7835 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7837         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7839         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
7840         Don't automatically download episodes when configured for manual
7841         updating.  Fixes #331564.
7843 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7845         * rhythmdb/rhythmdb-property-model.c:
7846         (rhythmdb_property_model_iter_from_string):
7847         Return an iterator for the 'all' property when name == NULL,
7848         and don't write to *iter if iter == NULL.
7850 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7852         * shell/rb-shell-player.c: (rb_shell_player_do_next):
7853         When switching to the play queue, still call _go_next on the normal
7854         play order, so self-emptying auto playlists ("play count = 0" etc.)
7855         don't restart once the queue is empty.
7857         * shell/rb-tray-icon.c:
7858         Change shortcut for 'show notifications' to 'o' so it doesn't clash
7859         with 'next'.
7861 2006-03-05  James Livingston  <jrl@ids.org.au>
7863         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
7864         don't submit tracks which could not be played. Fixed bug 333013.
7866         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
7867         tracks which could not be played.
7869 2006-03-05  James Livingston  <jrl@ids.org.au>
7871         Sync musicbrainz lookup code from Sound-Juicer cvs.
7873         * metadata/sj-metadata-musicbrainz.c:
7874         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
7875         (get_offline_track_listing), (artist_and_title_from_title),
7876         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
7877         (mb_list_albums), (mb_get_submit_url):
7878         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
7879         * metadata/sj-metadata.h:
7880         * metadata/sj-structures.c: (track_details_free),
7881         (album_details_free):
7882         * metadata/sj-structures.h:
7884 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7886         * lib/rb-debug.h:
7887         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
7888         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
7889         (rb_profiler_reset), (rb_profiler_free):
7890         Filter debug output by matching the file and function names against a
7891         match string.
7893         * shell/main.c: (main):
7894         Add -D command line option to specify the debug match string.
7896         * shell/rb-removable-media-manager.c:
7897         (rb_removable_media_manager_mount_volume):
7898         Fix some typos in debug output.
7900 2006-03-03  James Livingston  <jrl@ids.org.au>
7902         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
7903         * shell/rb-shell.c: (rb_shell_load_uri):
7904         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
7905         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
7906         use the new "recurse" property from totem-plparser, if present. Stop
7907         RB hanging for new users who don't have a 'net connection. From bug
7908         331508.
7910 2006-03-02  Bastien Nocera  <hadess@hadess.net>
7912         * shell/rb-removable-media-manager.c:
7913         (rb_removable_media_manager_mount_volume):
7914         * sources/Makefile.am:
7915         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
7916         Fix missing files on make dist (conditional files), only build the
7917         N770 support if there's HAL support, as we have no other ways of
7918         detecting it
7920 2006-03-03  James Livingston  <jrl@ids.org.au>
7922         * shell/rb-shell-clipboard.c:
7923         (rb_shell_clipboard_set_source_internal): really fix it this time.
7924         hopefully.
7926 2006-03-03  James Livingston  <jrl@ids.org.au>
7928         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
7929         with the idle function not being removed.
7931 2006-03-02  James Livingston  <jrl@ids.org.au>
7933         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
7934         * widgets/rb-entry-view.h: add function for determining whether all
7935         entries are selected.
7937         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
7938         (rb_shell_clipboard_set_source_internal),
7939         (rb_shell_clipboard_finalize),
7940         (rb_shell_clipboard_idle_poll_deletions),
7941         (rb_shell_clipboard_entryview_changed_cb),
7942         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
7943         removals, to update things.
7945         (rb_shell_clipboard_sync): update the Select All and Select None
7946         sensitivity, based on what is selected. Fixed bug 172220.
7948 2006-03-02  James Livingston  <jrl@ids.org.au>
7950         * widgets/rb-library-browser.c: (rebuild_child_model): save and
7951         restore the selections of later models. This means that selecting the
7952         artist for the selected album does not reset the album selection.
7954 2006-03-02  James Livingston  <jrl@ids.org.au>
7956         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
7957         Stops it emitting critical warnings.
7959 2006-03-02  James Livingston  <jrl@ids.org.au>
7961         * lib/rb-file-helpers.c: (rb_uri_append_uri):
7962         * lib/rb-file-helpers.h: Add uri concatenation function for when the
7963         second fragment is already escaped.
7965         * sources/rb-generic-player-source.c:
7966         (rb_generic_player_source_class_init),
7967         (rb_generic_player_source_constructor), (impl_show_popup),
7968         (rb_generic_player_source_load_playlists),
7969         (rb_generic_player_source_transform_playlist_uri),
7970         (handle_playlist_entry_cb), (visit_playlist_dirs),
7971         (default_load_playlists), (default_transform_playlist_uri):
7972         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
7973         the device. Allow subclasses to override the playlist loading, and
7974         (playlist uri)->(actual uri) mapping. A lot of devices which have
7975         playlists won't work right now, but people will see them and hopefully
7976         file bugs.
7978         * sources/rb-psp-source.c: (rb_psp_source_class_init),
7979         (rb_psp_source_create_playlists): Adapt the PSP for the above change
7980         
7981         * sources/Makefile.am:
7982         + sources/rb-nokia770-source.{c,h}:
7983         * shell/rb-removable-media-manager.c:
7984         (rb_removable_media_manager_mount_volume): Add support for reading
7985         playlists of Nokia 770s.
7987 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7989         * data/glade/podcast-properties.glade:
7990         * podcast/rb-podcast-properties-dialog.c:
7991         (rb_podcast_properties_dialog_init),
7992         (rb_podcast_properties_dialog_update),
7993         (rb_podcast_properties_dialog_update_location),
7994         (rb_podcast_properties_dialog_update_download_location):
7995         Add 'download location' field showing the path to the downloaded copy.
7996         Fixes #330696.
7998 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8000         * configure.ac: simplify HAVE_HAL define
8002 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8004         * configure.ac:
8005         * lib/rb-file-helpers.c: (rb_uri_append_path):
8006         * lib/rb-file-helpers.h:
8007         * shell/rb-removable-media-manager.c:
8008         (rb_removable_media_manager_mount_volume):
8009         * sources/Makefile.am:
8010         * sources/rb-ipod-source.c:
8011         * sources/rb-psp-source.*:
8012         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
8013         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
8015 2006-03-02  James Livingston  <jrl@ids.org.au>
8017         * shell/rb-shell-player.c: (rb_shell_player_set_property),
8018         (rb_shell_player_play), (rb_shell_player_jump_to_current),
8019         (swap_playing_source), (rb_shell_player_playpause),
8020         (rb_shell_player_sync_buttons), (actually_set_playing_source),
8021         (rb_shell_player_set_playing_source_internal): check for the entry
8022         view being NULL before trying to use it. Lets us support sources which
8023         don't have an entry view. From bug 331673.
8025 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8027         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
8028         use gnome_vfs_read_entire_file with a URI, not a local filename
8030 2006-03-01  James Livingston  <jrl@ids.org.au>
8032         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
8033         first-seen and last-seen when merging duplicate entries.
8035 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8037         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
8038         * widgets/rb-property-view.h:  New function, allowing custom 
8039         interactive search functions for property views.
8040         
8041         * sources/rb-podcast-source.c: 
8042         (feed_select_change_cb): Only do a new query when the selection
8043         actually changes.
8044         (rb_podcast_source_constructor),
8045         (rb_podcast_source_feed_title_search_func):
8046         Interactive search function for podcast feed titles.  Fixes #327451.
8048 2006-03-01  James Livingston  <jrl@ids.org.au>
8050         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
8051         the uri in the callback, since it causes symbols to not be escaped.
8052         Fixes bug 332976.
8054         * data/ui/rhythmbox-ui.xml:
8055         * sources/rb-import-errors-source.c:
8056         (rb_import_errors_source_class_init),
8057         (rb_import_errors_source_constructor), (impl_get_status),
8058         (impl_move_to_trash),
8059         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
8060         import errors source
8061         
8062         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
8063         (rb_entry_view_append_column): unescape the URI for display.
8065 2006-03-01  James Livingston  <jrl@ids.org.au>
8067         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
8068         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
8069         function fails.
8071 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
8073         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
8074         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
8075         * sources/rb-play-queue-source.c:
8076         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
8077         (rb_play_queue_source_update_count):  Use "Play Queue" instead
8078         of "Queued Songs".
8080         Fixes #331637.
8082 2006-03-01  James Livingston  <jrl@ids.org.au>
8084         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
8085         Fixes bug 332913.
8087 2006-03-01  James Livingston  <jrl@ids.org.au>
8089         * daapsharing/rb-daap-mdns-browser-howl.c:
8090         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
8091         * daapsharing/rb-daap-mdns-publisher-avahi.c:
8092         (rb_daap_mdns_publisher_class_init),
8093         (rb_daap_mdns_publisher_finalize):
8094         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
8095         * player/rb-recorder-gst.c: (rb_recorder_class_init),
8096         (rb_recorder_finalize):
8097         * rhythmdb/rhythmdb-query-model.c:
8098         (rhythmdb_query_model_constructor):
8099         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
8100         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
8101         * sources/rb-playlist-source-recorder.c:
8102         (rb_playlist_source_recorder_style_set),
8103         (rb_playlist_source_recorder_class_init),
8104         (rb_playlist_source_recorder_finalize):
8105         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
8106         other classes in the same way, so they don't break when derived from.
8108 2006-03-01  James Livingston  <jrl@ids.org.au>
8110         * sources/rb-generic-player-source.c:
8111         (rb_generic_player_source_constructor): don't get the parent class in
8112         a dumb way, and it breaks when the class is derived from.
8114 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
8116         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
8118 2006-03-01  James Livingston  <jrl@ids.org.au>
8120         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
8121         not work in glib 2.8 systems.
8123 2006-03-01  James Livingston  <jrl@ids.org.au>
8125         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
8126         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
8127         say it is crap.
8129         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
8130         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
8131         podcasts on ion-local places
8133         * rhythmdb/gsequence.c: (g_sequence_node_new),
8134         (g_sequence_node_free): use gslice if we are building against glib
8135         2.10.
8137         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
8138         local files too, so it doesn't block.
8140 2006-02-28  James Livingston  <jrl@ids.org.au>
8142         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
8143         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
8144         stats the file. Stops the UI blocking while stats are done.
8146 2006-02-28  James Livingston  <jrl@ids.org.au>
8148         * sources/rb-static-playlist-source.c:
8149         (rb_static_playlist_source_class_init),
8150         (rb_static_playlist_source_constructor), (impl_reset_filters),
8151         (impl_get_property_views), (impl_browser_toggled),
8152         (rb_static_playlist_source_do_query),
8153         (rb_static_playlist_source_browser_changed_cb): add browsers to static
8154         playlists. From bug 118862.
8156         * sources/rb-play-queue-source.c:
8157         (rb_play_queue_source_class_init): disable them for the play queue.
8159 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
8161         * data/glade/library-prefs.glade:  Add a mnemonic.
8162         * sources/rb-library-source.c:
8163         (rb_library_source_location_button_clicked_cb):  Use title
8164         capitalization for window title.
8166 2006-02-28  James Livingston  <jrl@ids.org.au>
8168         * sources/rb-auto-playlist-source.c:
8169         (construct_query_from_selection): don't create a subquery for only one
8170         criteria, as it's a silly effifiency degredation.
8172 2006-02-28  James Livingston  <jrl@ids.org.au>
8174         * rhythmdb/rhythmdb.h:
8175         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8176         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
8177         saved to disk
8179         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
8180         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
8181         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
8182         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
8183         IGNORE (e.g. known video stream) create an entry of the Ignore type.
8184         This will make importing files quicker as we don't need to try files
8185         that we know are not going to be interesting - especially useful when
8186         using the library watching facility.
8188         Fixes bug 323179.
8190 2006-02-28  James Livingston  <jrl@ids.org.au>
8192         * shell/rb-shell.c: (rb_shell_constructor),
8193         (rb_shell_set_visibility): fix browser and source-list pane
8194         positioning, that I broke with the "remember visibility" patch.
8196 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8198         * metadata/rb-metadata-dbus-service.c: (main):
8199         Change argument handling so you can use --debug with the --load and
8200         --can-save test modes.
8201         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
8202         Use a separate GMainContext, not the default one.  Probably fixes
8203         #332344.
8205 2006-02-27  James Livingston  <jrl@ids.org.au>
8207         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
8208         first starting up. Fixes bug 330342.
8210 2006-02-27  James Livingston  <jrl@ids.org.au>
8212         * sources/rb-sourcelist-model.c:
8213         (rb_sourcelist_model_set_dnd_targets):
8214         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
8215         COPY action for draging sources and tracks, not MOVE as well. Stops
8216         Nautilus moving file away, and fixes bug 332488.
8218 2006-02-27  James Livingston  <jrl@ids.org.au>
8220         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
8222         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
8223         and Last Played metadata off iPods. Closes bug 324648.
8225 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8227         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
8228         Disable audioscrobbler when run with the --no-registration flag, since
8229         last.fm doesn't allow multiple concurrent clients per user.
8231 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8233         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
8234         Rename renamable sources when F2 is pressed when the sourcelist has
8235         focus.  Fixes #330700.
8237 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8239         * shell/rb-playlist-manager.c: (cleanup_edit_data),
8240         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
8241         (rb_playlist_manager_cmd_edit_automatic_playlist):
8242         Fix various crashes when deleting auto playlists previously edited
8243         by disconnecting signal handlers when the query editor is closed or
8244         the playlist is deleted.
8246 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8248         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
8249         removed load failure dialog, and actually use the friendly file type
8250         name in error messages.
8252 2006-02-24  James Livingston  <jrl@ids.org.au>
8254         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
8256         * sources/rb-library-source.c:
8257         (rb_library_source_location_button_clicked_cb),
8258         (rb_library_source_preferences_sync),
8259         (rb_library_source_library_location_cb): convert the library URI to
8260         for display, and back again. Fixes bug 332356.
8262 2006-02-23  James Livingston  <jrl@ids.org.au>
8264         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
8265         (rhythmdb_process_metadata_load), (monitor_subdirectory),
8266         (rhythmdb_sync_library_location): don't monitor files at all if
8267         watching is turned off. From bug 323096.
8269 2006-02-23  James Livingston  <jrl@ids.org.au>
8271         * data/rhythmbox.schemas:
8272         * lib/rb-preferences.h:
8273         * shell/rb-shell.c: (rb_shell_constructor),
8274         (rb_shell_set_visibility): remember main window visibility between
8275         sessions. Fixes bug 127320.
8277 2006-02-23  James Livingston  <jrl@ids.org.au>
8279         * data/glade/library-prefs.glade:
8280         * sources/rb-library-source.c: (impl_get_config_widget),
8281         (rb_library_source_location_button_clicked_cb),
8282         (rb_library_source_preferences_sync),
8283         (rb_library_source_library_location_cb),
8284         (rb_library_source_watch_toggled_cb): change the library-location
8285         widgets from the file-chooser drop menu to a text entry and Browse
8286         button. This is needed to prevent the location from chaning if the
8287         directory cannot be found. Fixes bug 328414.
8289 2006-02-23  James Livingston  <jrl@ids.org.au>
8291         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
8292         item. Fixes bug 329042.
8294 2006-02-23  James Livingston  <jrl@ids.org.au>
8296         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8298         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
8299         comma in some podcast feeds. Fixes bug 332194.
8301 2006-02-23  James Livingston  <jrl@ids.org.au>
8303         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
8304         lower priority.
8306         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
8307         the internal audio cd URIs from "cdda://device:track" to
8308         "cdda://track#device" as it makes processing much easier.
8310         * shell/rb-shell-player.c: (rb_shell_player_open_location):
8311         * player/rb-player-gst.c: don't have the shell close the player
8312         between songs, as doing that should be backend-specific. Make the
8313         gstreamer backend close before starting a new track, unless the old
8314         and new ones are both tracks on the same audio cd. Just seek in that
8315         case.
8317 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8319         * doc/reference/rhythmbox.types: Fix doc build a bit more.
8321 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8323         * configure.ac: Enable more warnings in my stupid setup too.
8324         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
8325         #332210.
8327 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8329         * sources/rb-missing-files-source.h,
8330         * sources/rb-missing-files-source.c,
8331         * sources/rb-import-errors-source.h,
8332         * sources/rb-import-errors-source.c:
8333         Add library meta-sources, showing missing files and import errors.
8334         Fixes #167763, #142322.
8336         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
8337         * sources/rb-sourcelist-model.h:
8338         * sources/rb-sourcelist.c: (rb_sourcelist_append),
8339         (match_source_to_iter), (rb_sourcelist_source_to_iter),
8340         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
8341         (visibility_notify_cb):
8342         Store source visibility in the sourcelist model, so we can determine
8343         child source counts correctly and get the sourcelist expander column
8344         right.
8345         
8346         * widgets/rb-entry-view.h:
8347         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8348         (rb_entry_view_append_column), (set_column_visibility):
8349         Allow the creator of the entry view to specify which columns are
8350         always visible.
8352         * sources/rb-source.h:
8353         * sources/rb-source.c: (_autohide_update_visibility),
8354         (_rb_autohide_source_row_deleted_cb),
8355         (_rb_autohide_source_row_inserted_cb),
8356         (_rb_source_hide_when_empty):
8357         Allow sources to automatically hide themselves when empty.
8358         
8359         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
8360         * sources/rb-library-source.c: (rb_library_source_constructor):
8361         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8362         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8363         Explicitly specify which columns are always visible.
8364         
8365         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
8366         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
8367         Remove load error signal handling and load failure dialog.
8368         Create missing files and import errors sources for the library.
8370         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
8371         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
8372         Create DB entries for import errors rather than emitting the 'load
8373         error' signal; mark loaded entries visible.
8374         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
8375         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
8376         (rhythmdb_prop_get_type): Store string form of last seen time for
8377         hidden entries, since it's used in the missing files source.
8378         (rhythmdb_entry_import_error_get_type): 
8379         Add entry type for import errors.
8380         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
8381         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
8382         (rhythmdb_entry_move_to_trash_set_error),
8383         (rhythmdb_entry_move_to_trash):  
8384         Correct spelling, add missing rhythmdb_commit.
8385         * rhythmdb/rhythmdb.h:  
8386         Add import error entry type and last seen string property.
8387         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
8388         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8389         (save_entry):  Ignore string form of 'last seen' property.
8391         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
8392         Don't try to play hidden entries or import error entries.
8394         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
8395         * sources/Makefile.am: Add meta-source files
8396         * widgets/Makefile.am: Remove load failure dialog files
8398 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8400         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8401         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
8402         few bits and pieces.
8404 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8406         * metadata/test-metadata.c: (load_metadata_cb):
8407         Fix compile warning for ignoring return value from getcwd, #332064.
8409 2006-02-21  James Livingston  <jrl@ids.org.au>
8411         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
8412         (edit_auto_playlist_deleted_cb),
8413         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
8414         playlist editor non-modal. Fixes bug 320030.
8416 2006-02-21  James Livingston  <jrl@ids.org.au>
8418         * shell/rb-shell.c: (rb_shell_constructor):
8419         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
8420         (rb_header_set_show_artist_album):
8421         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
8422         (rb_song_display_box_sync): make the queue sidebar and song display
8423         not get affected by gtk_widget_show_all. Fixes bug 332001.
8425 2006-02-21  James Livingston  <jrl@ids.org.au>
8427         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
8429         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
8430         feeds which use timezone names instead of offsets. Doesn't actually
8431         parse the timezone name since they are not standardised. Fixes bug
8432         331691.
8434 2006-02-21  James Livingston  <jrl@ids.org.au>
8436         * help/C/figures/rb-notification-area.png:
8437         * help/C/figures/rb-sidebar.png:
8438         * help/C/quick-reference.xml: remove obsolete files from CVS.
8440         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
8441         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
8442         (rhythmdb_query_free), (rhythmdb_query_serialize),
8443         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
8444         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
8446         * widgets/rb-query-creator-properties.c: add prefix and suffix
8447         (escapedStringCriteriaGetWidgetData): use better escaping, so it
8448         doesn't escape the ':' separator in uris.
8450 2006-02-21  James Livingston  <jrl@ids.org.au>
8452         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
8453         on startup.
8455 2006-02-21  James Livingston  <jrl@ids.org.au>
8457         * NEWS: update with recent changes
8459 2006-02-21  James Livingston  <jrl@ids.org.au>
8461         * shell/rb-shell.c: (rb_shell_constructor),
8462         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
8463         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
8464         (rb_druid_browse_clicked_cb), (do_response):
8465         * widgets/rb-druid.h: Make running the druid not block RBShell
8466         starting up. This is required so that bonobo registration doesn't time
8467         out. Fixed bug 318766.
8469 2006-02-21  James Livingston  <jrl@ids.org.au>
8471         * rhythmdb/rhythmdb-property-model.c:
8472         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
8473         hash table after using it, not before. Fixed bug 331922.
8475 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8477         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
8478         (rb_shell_view_queue_as_sidebar_changed_cb):
8479         When playing from the queue, only attempt to highlight the queue
8480         source in the source list if it's actually visible there.  Otherwise,
8481         leave the preempted source highlighted.  Mostly fixes #330819.
8483 2006-02-20  James Livingston  <jrl@ids.org.au>
8485         * rhythmdb/rhythmdb-property-model.c:
8486         (rhythmdb_property_model_row_inserted_cb),
8487         (rhythmdb_property_model_prop_changed_cb),
8488         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
8489         store the roperty value in the entry-mapping table, so that receiving
8490         the remove signal from a query model before we get notified of a
8491         change doesn't cause a crash. Fixes bug 331770.
8493 2006-02-20  James Livingston  <jrl@ids.org.au>
8495         * data/ui/rhythmbox-ui.xml:
8496         * sources/rb-play-queue-source.c:
8497         (rb_play_queue_source_class_init),
8498         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
8499         playlist things in the queue popup source. From 330490.
8501         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
8502         previous commit
8504 2006-02-20  James Livingston  <jrl@ids.org.au>
8506         * widgets/rb-song-info.c: (rb_song_info_response_cb),
8507         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
8508         attempt to sync data for non-editable entries when using
8509         next/previous. Don't write our Year if it wasn't changed. Fixes bug
8510         331762.
8512 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
8514         * .cvsignore:
8515         * Makefile.am:
8516         * autogen.sh:
8517         * configure.ac:
8518         * help/.cvsignore:
8519         * help/Makefile.am: ported to gnome-doc-utils
8520         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
8521         * help/ChangeLog: added, for translators
8522         * help/C/rhytmbox-C.omf: removed, no longer used
8523         Know issue: figures are installed, but some are not showed; manual
8524         description added, but not showed in Yelp while browsing. I'll
8525         investigate, maybe are needed some little changes to
8526         help/C/rhythmbox.xml.
8528 2006-02-20  James Livingston  <jrl@ids.org.au>
8530         * data/ui/rhythmbox-ui.xml:
8531         * help/C/figures/rb-adv.png:
8532         * help/C/figures/rb-asst-finish.png:
8533         * help/C/figures/rb-asst-library.png:
8534         * help/C/figures/rb-asst-start.png:
8535         * help/C/figures/rb-basic.png:
8536         * help/C/figures/rb-browser.png:
8537         * help/C/figures/rb-context-menu.png:
8538         * help/C/figures/rb-empty.png:
8539         * help/C/figures/rb-full-play.png:
8540         * help/C/figures/rb-group-auto.png:
8541         * help/C/figures/rb-group-create.png:
8542         * help/C/figures/rb-group.png:
8543         * help/C/figures/rb-imported.png:
8544         * help/C/figures/rb-iradio-add.png:
8545         * help/C/figures/rb-iradio.png:
8546         * help/C/figures/rb-nextprev.png:
8547         * help/C/figures/rb-nobrowse-play.png:
8548         * help/C/figures/rb-notification-area-menu.png:
8549         * help/C/figures/rb-player.png:
8550         * help/C/figures/rb-prefs-general.png:
8551         * help/C/figures/rb-prefs-ipod.png:
8552         * help/C/figures/rb-prefs-library.png:
8553         * help/C/figures/rb-prefs.png:
8554         * help/C/figures/rb-repeat.png:
8555         * help/C/figures/rb-search.png:
8556         * help/C/figures/rb-shuffle.png:
8557         * help/C/figures/rb-stats.png:
8558         * help/C/figures/rb-toolbar-editor.png:
8559         * help/C/figures/rb-volume-mute.png:
8560         * help/C/figures/rhythmbox-group.png:
8561         * help/C/figures/rhythmbox-tray-icon.png:
8562         * help/C/user-guide.xml: remove old stuff from cvs
8564 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8566         * metadata/rb-metadata-dbus-client.c: 
8567         * metadata/rb-metadata-dbus-service.c:
8568         * metadata/rb-metadata-dbus.c:
8569         * metadata/rb-metadata-dbus.h:
8570         New files, adding an external service for reading and writing
8571         metadata, and an implementation of the RBMetaData interface that uses
8572         dbus to communicate with it.
8573         
8574         * metadata/rb-metadata.h,
8575         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
8576         (rb_metadata_get_field_name): Put metadata details in a static array
8577         instead of using a hash table, and add a field for language code (not
8578         used for anything)
8579         * metadata/rb-metadata-gst.c: Updates for changes in
8580         rb-metadata-common.c, fix signal handler closure leak for the typefind
8581         element's have-type signal, and add XML to the list of types we ignore.
8582         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
8583         Update for changes to rb_metadata_get_field_type
8584         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
8585         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
8586         here and there.
8587         
8588         * configure.ac: Add --enable-metadata-helper option (not enabled by
8589         default) to use the external metadata service
8590         * metadata/Makefile.am: Add new files
8591         * metadata/test-metadata.c:  Test program for the metadata service
8593         Fixes #329597. 
8595 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8597         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
8598         * sources/rb-podcast-source.c: (impl_get_ui_actions),
8599         (rb_podcast_source_cmd_new_podcast):
8600         Move 'new podcast' action to the podcast source, and add it to the
8601         toolbar.  Fixes #331562.
8603 2006-02-19  James Livingston  <jrl@ids.org.au>
8605         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
8606         menus, and away from move-to-trash. Fixes bug 331013.
8608 2006-02-19  James Livingston  <jrl@ids.org.au>
8610         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
8611         when deleting last entry. Fixes bug 331712.
8613 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8615         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8616         (rb_entry_view_button_press_cb):
8617         * widgets/rb-entry-view.h: Emit show-popup when right clicked
8618         anywhere, and include a flag indicating whether the click was over an
8619         entry or not.
8620         
8621         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
8622         (rb_playlist_source_songs_show_popup_cb):
8623         * sources/rb-playlist-source.h:
8624         Add the 'over entry' flag to the class show popup method, and in the
8625         default handler, ignore right clicks when not over an entry.
8626         
8627         * sources/rb-iradio-source.c:
8628         (rb_iradio_source_songs_show_popup_cb):
8629         * sources/rb-library-source.c:
8630         (rb_library_source_songs_show_popup_cb):
8631         * sources/rb-podcast-source.c:
8632         (rb_podcast_source_songs_show_popup_cb):
8633         Show the source list popup menu when right clicked while not over an
8634         entry.
8636         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
8637         For the queue sidebar, always display the popup so the 'clear queue'
8638         action is available regardless of where you click.  For the queue
8639         source, only display the popup when right clicked over an entry.
8640         Fixes #331392.
8642 2006-02-19  James Livingston  <jrl@ids.org.au>
8644         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
8645         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
8646         entry view, when we're not even using it
8648         * rhythmdb/rhythmdb-property-model.c:
8649         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
8650         function, rather than a copy of the code.
8652         * shell/rb-playlist-manager.c:
8653         (rb_playlist_manager_playlist_row_inserted_cb),
8654         (rb_playlist_manager_set_source_internal),
8655         (rb_playlist_manager_playlist_entries_changed): use the query-model
8656         directly, rather than the source's entry view.
8658         * shell/rb-source-header.c: don't use the entry view, just select the
8659         source widget.
8661 2006-02-18  James Livingston  <jrl@ids.org.au>
8663         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8665         * help/C/figures/rb-iradio-main.png:
8666         * help/C/figures/rb-notification-area-menu.png:
8667         * help/C/figures/rb-notification-window.png:
8668         * help/C/figures/rb-notification-zone.png:
8669         * help/C/figures/rb-podcast-main.png:
8670         * help/C/figures/rb-statusbar.png:
8671         * help/C/figures/rb-toolbar-prevplaynext.png:
8672         * help/C/figures/rb-toolbar-repeat.png:
8673         * help/C/figures/rb-toolbar-shuffle.png:
8674         * help/C/figures/rb-toolbar.png:
8675         * help/C/figures/rb-volume-changer.png:
8676         * help/C/figures/rb-window-small.png:
8677         * help/C/figures/rb-window.png:
8678         * help/C/rhythmbox.xml: Update user guide with some of the changes
8679         that have occurred after 0.8.8. From bug 314001.
8681 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8683         * rhythmdb/rhythmdb-query-results.h,
8684           rhythmdb/rhythmdb-query-results.c:
8685         New interface for objects that accept query results from RhythmDB.
8687         * rhythmdb/rhythmdb-query-model.c:
8688         (rhythmdb_query_model_query_results_init),
8689         (rhythmdb_query_model_set_query),
8690         (rhythmdb_query_model_add_results),
8691         (rhythmdb_query_model_query_complete):
8692         * rhythmdb/rhythmdb-query-model.h:
8693         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
8695         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
8696         (rhythmdb_tree_do_full_query):
8697         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
8698         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
8699         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
8700         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
8701         * rhythmdb/rhythmdb.h:
8702         Pass query results through the RhythmDBQueryResults interface, rather
8703         than directly to a RhythmDBQueryModel.
8705         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
8706         (rb_podcast_manager_db_entry_deleted_cb):
8707         * sources/rb-auto-playlist-source.c:
8708         (rb_auto_playlist_source_do_query),
8709         (rb_auto_playlist_source_set_query):
8710         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
8711         * sources/rb-library-source.c: (rb_library_source_constructor),
8712         (rb_library_source_do_query):
8713         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8714         (rb_podcast_source_do_query):
8715         * rhythmdb/rhythmdb-property-model.c:
8716         (rhythmdb_property_model_drag_data_get):
8717         Cast the query model to RhythmDBQueryResults when passing to one of
8718         the RhythmDB query methods.
8720         * rhythmdb/Makefile.am: Add new files.
8722 2006-02-18  James Livingston  <jrl@ids.org.au>
8724         * data/ui/rhythmbox-ui.xml:
8725         * shell/rb-playlist-manager.c:
8726         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
8727         "queue playlist" item to source context menu. Fixes bug 330490.
8729 2006-02-18  James Livingston  <jrl@ids.org.au>
8731         * data/glade/general-prefs.glade:
8732         * shell/rb-shell-preferences.c:
8733         (rb_shell_preferences_column_check_changed_cb),
8734         (rb_shell_preferences_sync):
8735         * sources/rb-library-source.c: (rb_library_source_constructor):
8736         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8737         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
8738         (rb_entry_view_append_column): Add a "quality" colume which indicates
8739         the bitrate of media. Part of bug 167659.
8741 2006-02-18  James Livingston  <jrl@ids.org.au>
8743         * shell/rb-play-order.c: (do_next_idle_cb),
8744         (default_playing_entry_removed): move to next track when playing entry
8745         is deleted. Fixes bug 131150.
8747         * shell/rb-shell-player.h: remove ancient stuff
8749 2006-02-17  William Jon McCann  <mccann@jhu.edu>
8751         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
8752         (rb_shell_clipboard_set_property): 
8753         * shell/rb-shell.c (rb_shell_sync_party_mode):
8754         Trigger a resync of the clipboard properties when changing party mode.
8756 2006-02-17  William Jon McCann  <mccann@jhu.edu>
8758         * sources/rb-static-playlist-source.c: Fix includes.
8760         * sources/rb-source.c (rb_source_can_rename) 
8761         (rb_source_can_delete, rb_source_can_move_to_trash):
8762         Return FALSE if in party mode.
8764         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
8765         Replace fullscreen with party mode.
8766         (rb_shell_window_delete_cb): Don't quit if in party mode.
8767         (rb_shell_view_party_mode_changed_cb): Setup party mode.
8768         (window_state_event_cb): Try to deiconify shell when iconified
8769         in party mode.
8770         (rb_shell_sync_party_mode): Sync party mode properties.
8771         Currently, that means [de]sensitizing close, quit, and small-display,
8772         going into fullscreen mode with window stuck and kept above, and
8773         toggling queue-only for the shell player.
8774         (rb_shell_sync_smalldisplay): Sensitive party mode.
8775         (rb_shell_get_party_mode): Get party mode setting.
8777         * shell/rb-shell-player.c (rb_shell_player_class_init) 
8778         (rb_shell_player_set_property, rb_shell_player_get_property):
8779         Add queue-only property.
8780         (rb_shell_player_entry_activated_cb): If in party mode
8781         only queue the entry on activation.
8783         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
8784         Break out from set_properties.  Desensitize some actions when
8785         in party mode.
8786         (rb_playlist_manager_set_property): Break out set_source_internal.
8788         * data/rhythmbox.schemas: Remove fullscreen mode.
8790         * data/ui/rhythmbox-ui.xml: Replace fullscreen
8791         action with party mode.
8793         Partial fix for #323933
8795 2006-02-17  James Livingston  <jrl@ids.org.au>
8797         * configure.ac:
8798         * shell/rb-removable-media-manager.c:
8799         (get_nautilus_burn_drive_for_path),
8800         (rb_removable_media_manager_playing_uri_changed_cb): only use
8801         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
8802         over the list when it doesn't.
8804 2006-02-17  James Livingston  <jrl@ids.org.au>
8806         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
8807         (rb_iradio_source_first_time_changed): Only do the import on the
8808         first change from FALSE to TRUE.
8810         * sources/rb-library-source.c:
8811         (rb_library_source_preferences_sync),
8812         (rb_library_source_library_location_cb): set the first-run done flag
8813         if the user presses close and then sets their watches library
8814         location. Fixes bug 325997.
8816 2006-02-17  James Livingston  <jrl@ids.org.au>
8818         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
8819         removable media manager gobject properties
8821         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
8822         (split_drive_from_cdda_uri),
8823         (rb_removable_media_manager_playing_uri_changed_cb),
8824         (rb_removable_media_manager_load_media): stop polling a cd drive
8825         when we are playing from it. Part of bug 330716.
8827 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8829         * rhythmdb/rhythmdb-query-model.c:
8830         (rhythmdb_query_model_set_property),
8831         (rhythmdb_query_model_finalize),
8832         (rhythmdb_query_model_base_entry_removed):
8833         Propagate entry removal from base models out to attached property
8834         models.  Fixes the rest of #331165.
8836 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8838         * rhythmdb/rhythmdb-property-model.c:
8839         (rhythmdb_property_model_row_inserted_cb),
8840         (rhythmdb_property_model_prop_changed_cb),
8841         (rhythmdb_property_model_insert):
8842         Don't store NULL as a hash table value if we want to use
8843         g_hash_table_lookup to check if a key exists, and get the checks for
8844         how and whether to handle entry changes the right way around.
8845         Fixes #331211 and half of #331165.
8847 2006-02-16  James Livingston  <jrl@ids.org.au>
8849         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
8850         the audio cd's TOC in a separate thread, so it doesn't block the UI.
8851         Fixes bug 329942.
8853 2006-02-16  James Livingston  <jrl@ids.org.au>
8855         * widgets/rb-library-browser.c: (reset_view_cb): make View All
8856         actually reset the browsers.
8858 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8860         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
8861         Escape the strings we pass into libnotify so we don't get blank
8862         notifications when the song name contains '&' etc.  Fixes #330784.
8864 2006-02-16  James Livingston  <jrl@ids.org.au>
8866         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
8867         enable "View All" when there is only a search box and no browser.
8868         Fixes bug 331395.
8870 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8872         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
8873         popup menu, which I forgot to commit with the patch for bug #330014.
8875 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8877         * shell/rb-shell-player.c: (open_location_thread):
8878         Sync button and entry view state once we've started the player, so the
8879         entry view gets into the playing state for iradio.
8881 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8883         * shell/rb-shell-player.c: (open_location_thread):
8884         Take GDK lock before doing anything UI-related.
8886 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8888         * shell/rb-shell.c: Move 'new iradio station' action to
8889         iradio source.
8891         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
8892         (rb_iradio_source_init), (rb_iradio_source_finalize),
8893         (rb_iradio_source_constructor):
8894         Remove some unused stuff.
8896         (guess_uri_scheme), (rb_iradio_source_add_station),
8897         (rb_iradio_source_add_from_playlist),
8898         (impl_get_ui_actions), (new_station_location_added),
8899         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
8900         action, include it in the toolbar, and make sure the URI we add has a
8901         scheme.  Fixes #327059, more or less.
8903 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8905         * sources/rb-play-queue-source.c:
8906         (rb_play_queue_source_class_init),
8907         (rb_play_queue_source_constructor),
8908         (rb_play_queue_source_update_count),
8909         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
8910         Add a toolbar button to clear the play queue, and make it sensitive
8911         only when there are entries in the queue.  Fixes #330014.
8913         * sources/rb-source.c: (_rb_source_register_action_group):
8914         * sources/rb-source.h:  Add helper function to register an
8915         action group for a source.
8917         * sources/rb-library-source.c: (rb_library_source_constructor):
8918         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8919         (register_action_group):  Use _rb_source_register_action_group.
8921 2006-02-15  James Livingston  <jrl@ids.org.au>
8923         * widgets/rb-song-info.c: (rb_song_info_add_completion),
8924         (rb_song_info_constructor), (rb_song_info_set_property): make
8925         tag-editing completion work for albums too.
8927 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8929         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
8930         Check the 'limit' checkbox for time-limited playlists.
8932 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
8934         * widgets/rb-song-info.c: Prove text-completion when editing title,
8935         artist or album
8937 2006-02-14  James Livingston  <jrl@ids.org.au>
8939         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
8940         tray icon popup menu. Fixes bug 331026.
8942 2006-02-14  James Livingston  <jrl@ids.org.au>
8944         * data/iradio-initial.pls: update the Virgin Radio stations to use the
8945         Ogg Vorbis streams, instead of the MP3 ones.
8947 2006-02-14  James Livingston  <jrl@ids.org.au>
8949         * rhythmdb/rhythmdb-property-model.c:
8950         (rhythmdb_property_model_class_init),
8951         (rhythmdb_property_model_drag_data_get):
8952         * rhythmdb/rhythmdb-query-model.c:
8953         (rhythmdb_query_model_title_sort_func):
8954         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
8955         LOCATION as the key. Fixes bug 330601.
8957 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8959         * sources/rb-playlist-source.c: (playlist_iter_func):
8960         Make it compile with older versions of totem-plparser too.      
8962 2006-02-13  James Livingston  <jrl@ids.org.au>
8964         * rhythmdb/rhythmdb.h:
8965         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
8966         structure private, since things should use the accessor functions
8967         rather than manipulating it directly - Only RhythmDB and the
8968         implementation classes should access it directly. Part of the RhythmDB
8969         cleanup of bug 330226.
8971         * iradio/rb-station-properties-dialog.c:
8972         (rb_station_properties_dialog_update_title),
8973         (rb_station_properties_dialog_update_title_entry),
8974         (rb_station_properties_dialog_update_genre),
8975         (rb_station_properties_dialog_update_location),
8976         (rb_station_properties_dialog_update_play_count),
8977         (rb_station_properties_dialog_update_bitrate),
8978         (rb_station_properties_dialog_update_last_played),
8979         (rb_station_properties_dialog_update_rating),
8980         (rb_station_properties_dialog_update_playback_error),
8981         (rb_station_properties_dialog_sync_entries):
8982         * podcast/rb-feed-podcast-properties-dialog.c:
8983         (rb_feed_podcast_properties_dialog_update_title),
8984         (rb_feed_podcast_properties_dialog_update_title_label),
8985         (rb_feed_podcast_properties_dialog_update_author),
8986         (rb_feed_podcast_properties_dialog_update_location),
8987         (rb_feed_podcast_properties_dialog_update_copyright),
8988         (rb_feed_podcast_properties_dialog_update_language),
8989         (rb_feed_podcast_properties_dialog_update_summary):
8990         * podcast/rb-podcast-manager.c:
8991         (rb_podcast_manager_entry_downloaded),
8992         (rb_podcast_manager_db_entry_added_cb),
8993         (download_progress_update_cb),
8994         (rb_podcast_manager_db_entry_deleted_cb):
8995         * podcast/rb-podcast-properties-dialog.c:
8996         (rb_podcast_properties_dialog_update_title),
8997         (rb_podcast_properties_dialog_update_title_label),
8998         (rb_podcast_properties_dialog_update_feed),
8999         (rb_podcast_properties_dialog_update_location),
9000         (rb_podcast_properties_dialog_update_play_count),
9001         (rb_podcast_properties_dialog_update_bitrate),
9002         (rb_podcast_properties_dialog_update_last_played),
9003         (rb_podcast_properties_dialog_update_rating),
9004         (rb_podcast_properties_dialog_update_date),
9005         (rb_podcast_properties_dialog_update_description):
9006         * rhythmdb/rhythmdb-query-model.c:
9007         (rhythmdb_query_model_entry_changed_cb),
9008         (rhythmdb_query_model_remove_from_main_list),
9009         (rhythmdb_query_model_update_limited_entries),
9010         (rhythmdb_query_model_drag_data_get),
9011         (rhythmdb_query_model_album_sort_func):
9012         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9013         (save_entry):
9014         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
9015         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
9016         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
9017         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
9018         (rhythmdb_entry_get_double):
9019         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9020         * shell/rb-play-order-random-by-age-and-rating.c:
9021         (rb_random_by_age_and_rating_get_entry_weight):
9022         * shell/rb-play-order-random-by-age.c:
9023         (rb_random_by_age_get_entry_weight):
9024         * shell/rb-play-order-random-by-rating.c:
9025         (rb_random_by_rating_get_entry_weight):
9026         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
9027         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
9028         (rb_shell_player_set_playing_entry),
9029         (rb_shell_player_sync_replaygain),
9030         (rb_shell_player_sync_with_source),
9031         (rb_shell_player_get_playing_song_duration), (info_available_cb):
9032         * sources/rb-playlist-source.c: (playlist_iter_func),
9033         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
9034         (rb_playlist_source_entry_added_cb):
9035         * sources/rb-podcast-source.c:
9036         (rb_podcast_source_post_status_cell_data_func):
9037         * sources/rb-source.c: (rb_source_update_play_statistics):
9038         * sources/rb-sourcelist-model.c:
9039         (rb_sourcelist_model_drag_data_get):
9040         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
9041         (rb_static_playlist_source_add_entry),
9042         (rb_static_playlist_source_remove_entry):
9043         * widgets/rb-entry-view.c: (type_ahead_search_func),
9044         (rb_entry_view_playing_cell_data_func),
9045         (rb_entry_view_rating_cell_data_func),
9046         (rb_entry_view_pixbuf_clicked_cb):
9047         * widgets/rb-header.c: (rb_header_get_duration):
9048         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
9049         (rb_song_info_populate_dialog),
9050         (rb_song_info_update_playback_error),
9051         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
9052         (rb_song_info_update_location), (rb_song_info_update_play_count),
9053         (rb_song_info_update_last_played), (rb_song_info_update_rating),
9054         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
9055         (rb_song_info_sync_entry_single): fix the huge number of times that
9056         the internals got accessed directly.
9058 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9060         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
9061         trash' are grouped together.
9062         * shell/main.c: (main): Pass no-registration flag in to RBShell
9063         constructor, rather than mysteriously always passing TRUE.
9064         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
9065         Set dirty flag when entries are removed from the model, so the play
9066         queue is marked dirty appropriately.
9067         * AUTHORS: update my email address
9069 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9071         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9073         * widgets/rb-druid.c: (path_dialog_response_cb):
9074         If the URI is local, don't display the 'file://' prefix.  
9075         Fixes #330919.
9077 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9079         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9080         Attach the notification to the tray icon widget, so libnotify
9081         positions it less badly.  Fixes #330876.
9083 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9085         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
9086         Reverse the selection list before returning it, so we get it in the
9087         right order.  Fixes #330283 and some other weirdness.
9089 2006-02-11  James Livingston  <jrl@ids.org.au>
9091         * shell/rb-shell.c: (rb_shell_constructor),
9092         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
9093         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9094         make small-mode and fullscreen mutually exclusive, since they don't
9095         work together
9097         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
9098         Mode.
9100 2006-02-10  James Livingston  <jrl@ids.org.au>
9102         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
9103         since it can cause it to be slower than real-time. Should fix bug
9104         322270.
9106 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9108         * rhythmdb/rhythmdb-query-model.c:
9109         (rhythmdb_query_model_set_property):
9110         Think just a little bit harder about that last commit.
9112 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9114         * rhythmdb/rhythmdb-query-model.c:
9115         (rhythmdb_query_model_set_property):
9116         Get the check for hidden entries the right way around.
9117         Fixes #330527, #330514.
9119         (rhythmdb_query_model_set_sort_order):
9120         Ignore no-op sort order changes, so we don't get critical
9121         messages when selecting 'all' in auto playlist browsers.
9123 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9125         Patch by: Christophe Fergeau  <teuf@gnome.org>
9127         * sources/rb-removable-media-source.c:
9128         (rb_removable_media_source_init),
9129         (rb_removable_media_source_constructor):
9130         Move icon setup code to the constructor, as the volume property
9131         haven't been set yet when _init is called.
9133 2006-02-09  William Jon McCann  <mccann@jhu.edu>
9135         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
9136         Make the source pixbuf a dynamic property.
9138         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
9139         (rb_source_set_pixbuf, rb_source_set_property) 
9140         (rb_source_get_property): Add icon property.
9142         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
9143         (rb_auto_playlist_source_init):
9144         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
9145         (rb_static_playlist_source_init):
9146         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
9147         (rb_removable_media_source_init): 
9148         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
9149         (rb_podcast_source_init): 
9150         * sources/rb-library-source.c (rb_library_source_class_init) 
9151         (rb_library_source_set_property, rb_library_source_get_property): 
9152         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
9153         (rb_iradio_source_init): Remove impl_get_pixbuf and
9154         set icon property on source base class.
9156         * sources/rb-daap-source.c (rb_daap_get_icon): Get
9157         a different icon for when the share is password protected
9158         and locked.
9159         (rb_daap_source_new): Set icon property.
9160         (composite_icons): Composite an emblem on a pixbuf.
9161         (create_pixbufs): Load global pixbufs.
9162         (destroy_pixbufs): unref global pixbufs.
9163         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
9164         (connection_auth_cb, connection_connected_cb) 
9165         (connection_disconnected_cb): Update icon when connection
9166         status changes.
9167         (rb_daap_source_activate): Connect signals.
9169         * daapsharing/rb-daap-share.c (name_collision_cb): Run
9170         dialog with parent.
9172         * daapsharing/rb-daap-marshal.list: Add new signal.
9174         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
9175         (rb_daap_collision_dialog_new_run): Set parent of dialog.
9177         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
9178         Add authenticate, connected, and disconnected signals.
9179         (connection_get_password): emit authenticate signal instead
9180         of running dialog directly.
9181         (connection_connected, connection_disconnected): Emit signals.
9182         (handle_login): Emit connected signal.
9183         (handle_logout): Emit disconnected signal.
9184         (rb_daap_connection_do_something): Fix leak.
9186         Fixes #330291
9188 2006-02-09  James Livingston  <jrl@ids.org.au>
9190         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
9191         entries from the base model if we don't have show-hidden set. Fixes
9192         bug 330514.
9194 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9196         * daapsharing/rb-daap-share.c (message_get_session_id):
9197         Ugh. Use strtoul instead of atoi.
9198         (session_id_validate): Add debug statements.
9200 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9202         * daapsharing/rb-daap-connection.c (http_response_handler):
9203         Report the actual uri from the message in debug statements.
9205 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9207         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
9208         Add context argument.
9209         (message_get_session_id): New function to parse session id from
9210         the message.
9211         (message_get_revision_number): Break out function to parse
9212         revision number from the message.
9213         (session_id_validate): New function to validate given session id
9214         is valid for given context (ie. client address).
9215         (session_id_generate): Generate a random session id.
9216         (session_id_create): Create a unique session id and store it.
9217         (session_id_remove): Remove a session id from the store.
9218         (login_cb): Create a session id instead of using a constant one.
9219         (logout_cb): Validate session id.
9220         (update_cb): Use new message_get_revision_number function.
9221         (databases_cb): Validate session id.
9222         (server_cb): Add server context to argument list for callbacks.  It
9223         is needed to look up the remote host.
9224         (db_entry_changed_cb): Use braces.
9225         (soup_auth_callback): Remove FIXME.
9226         (rb_daap_share_server_start): Create session id store.
9227         (rb_daap_share_server_stop): Destroy session id store.
9229         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
9230         Don't base64-encode password here since it needs to be
9231         combined with the username first.
9233         * daapsharing/rb-daap-connection.c (build_message):
9234         Add username to Authorization token.
9235         (handle_login, handle_song_listing) 
9236         (rb_daap_connection_do_something): Session id
9237         must be an unsigned int.
9239         Fixes #329814
9241 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9243         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9244         Don't check if we've got a playing entry, ask the player object (duh).
9245         Might actually fix #329993.     
9247 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9249         * sources/rb-static-playlist-source.c:
9250         (rb_static_playlist_source_add_list_uri):
9251         Canonicalise URIs before trying to add them to the playlist, and 
9252         don't try to add files to the database for which there is 
9253         already an entry.
9255 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9257         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9258         Don't ask the entry view if we're playing, just check if we've got a
9259         playing entry.  Fixes #329993.
9261 2006-02-08  James Livingston  <jrl@ids.org.au>
9263         * rhythmdb/rhythmdb-query-model.c:
9264         (rhythmdb_query_model_set_property),
9265         (rhythmdb_query_model_finalize),
9266         (rhythmdb_query_model_base_complete): remove
9267         rhythmdb_query_model_base_entry_prop_changed, so that two signals
9268         don't get emitted for entry changes. Fixes bug 330301.
9270         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
9271         (rb_library_browser_init), (rb_library_browser_constructor),
9272         (rb_library_browser_new): do stuff in the constructor, not the init
9273         function, so that the db property gets set on RBPropertyViews
9274         correctly. Fixes a crash when dragging properties to a playlist.
9276 2006-02-07  William Jon McCann  <mccann@jhu.edu>
9278         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
9279         Actually stop soup server.  Fixes #329816.
9281 2006-02-07  James Livingston  <jrl@ids.org.au>
9283         * lib/rb-util.h:
9284         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
9285         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
9286         (collate_values_cb), (rb_collate_hash_table_keys),
9287         (rb_collate_hash_table_values): add functions to compare, copy and
9288         free string-lists. add functions to collate the keys or values of a
9289         hash table into a list.
9291         * rhythmdb/rhythmdb-property-model.c:
9292         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
9293         (_remove_entry_cb), (_add_entry_cb),
9294         (rhythmdb_property_model_set_property),
9295         (rhythmdb_property_model_get_property),
9296         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
9297         (rhythmdb_property_model_row_inserted_cb),
9298         (rhythmdb_property_model_prop_changed_cb),
9299         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
9300         that are hidden, storing those that we have counted in a hash-table.
9302         * shell/Makefile.am: fix build order issue
9304         * shell/rb-shell-player.c: (rb_shell_player_set_property):
9305         * sources/rb-source.h:
9306         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9307         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9308         * sources/rb-podcast-source.c: (feed_select_change_cb): add
9309         browser-toggled method, rename _get_exta_views to _get_property_views,
9310         since several things depend on returning only that.
9312         * sources/rb-source.c: (rb_source_class_init),
9313         (rb_source_browser_toggled), (default_get_property_views),
9314         (rb_source_get_property_views), (rb_source_row_deleted_cb),
9315         (rb_source_gather_hash_keys),
9316         (rb_source_gather_selected_properties): above changes, and move some
9317         utility functions up from RBLibraryView
9319         * widgets/rb-property-view.c:
9320         (rb_property_view_selection_changed_cb): fix leak.
9322         * rhythmdb/rhythmdb-query-model.c:
9323         (rhythmdb_query_model_set_property),
9324         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
9325         (rhythmdb_query_model_set_sort_order),
9326         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
9327         query model being resorted.
9329         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
9330         NULL query.
9332         * rhythmdb/rhythmdb.h:
9333         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
9334         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
9335         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
9336         two queries. Add a function to append "property={X,Y,Z,...}" to a
9337         query.
9339         * sources/rb-library-source.c: (rb_library_source_class_init),
9340         (rb_library_source_finalize), (rb_library_source_constructor),
9341         (rb_library_source_cmd_choose_genre),
9342         (rb_library_source_cmd_choose_artist),
9343         (rb_library_source_cmd_choose_album), (impl_search),
9344         (impl_get_property_views), (impl_reset_filters),
9345         (rb_library_source_preferences_sync),
9346         (rb_library_source_browser_views_activated_cb),
9347         (rb_library_source_state_prefs_sync),
9348         (construct_query_from_selection), (rb_library_source_do_query),
9349         (rb_library_source_browser_changed_cb):
9350         * widgets/Makefile.am:
9351         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
9352         browser" widgets, which contains several property views, based on the
9353         code from RBLibrarySource. Make RBLibrarySource use it.
9355         * sources/rb-auto-playlist-source.c:
9356         (rb_auto_playlist_source_class_init),
9357         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
9358         (rb_auto_playlist_source_constructor), (impl_reset_filters),
9359         (impl_get_property_views), (impl_browser_toggled),
9360         (construct_query_from_selection),
9361         (rb_auto_playlist_source_do_query),
9362         (rb_auto_playlist_source_set_query),
9363         (rb_auto_playlist_source_browser_changed_cb): Use the new
9364         library-browser widget to add browsers to automatic playlists.
9366 2006-02-07  James Livingston  <jrl@ids.org.au>
9368         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
9369         properly.
9370         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
9371         type of the source is taken into account. Fixes bug 329621.
9373 2006-02-07  James Livingston  <jrl@ids.org.au>
9375         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9376         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
9377         1.1, and perform URI canonicalistion when first upgrading. This should
9378         fix our remaining canonicalisation issues, such as bug 329988.
9380 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9382         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
9383         Track the playing entry when the entry view isn't in the playing
9384         state, so we don't have to get the state changes exactly right.
9385         Fixes #330135.
9387 2006-02-06  James Livingston  <jrl@ids.org.au>
9389         * shell/rb-shell-player.c: (open_location_thread),
9390         (rb_shell_player_open_location): fix several iradio issues: having to
9391         press play after double-clicking on a station, not working correctly
9392         without a http:// prefix, and ignoring totem-plparser results other
9393         than success or error (e.g. IGNORE).
9395 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
9397         Addition of dbus methods for dealing with static playlists and the
9398         play queue.  Fixes #329958.
9400         * shell/Makefile.am:
9401         * shell/rb-playlist-manager.h:
9402         * shell/rb-playlist-manager.xml:
9403         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
9404         (rb_playlist_manager_get_playlists),
9405         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
9406         (rb_playlist_manager_create_static_playlist),
9407         (rb_playlist_manager_delete_playlist),
9408         (rb_playlist_manager_add_to_playlist),
9409         (rb_playlist_manager_remove_from_playlist),
9410         (rb_playlist_manager_export_playlist):
9411         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
9412         to create, delete, list, modify, export, and import  static playlists.
9413         
9414         * shell/main.c: (main): Register playlist manager object with dbus.
9416         * shell/rb-shell.h:
9417         * shell/rb-shell.xml:
9418         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
9419         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
9420         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
9421         object, and implement the addToQueue and removeFromQueue methods.
9422         
9423         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
9424         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
9425         formats.
9427 2006-02-05  James Livingston  <jrl@ids.org.au>
9429         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
9430         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
9431         (save_entry): allow storage of booleans in the on-disk db, and
9432         save/load the HIDDEN property.
9434         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
9435         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
9436         to the state it was when RB shutdown. This makes RB appear to start
9437         faster, as tracks can appear before the stat is done. Remote files
9438         still start hidden. From bug 325215.
9440 2006-02-05  James Livingston  <jrl@ids.org.au>
9442         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
9443         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
9444         really cares about the difference from "entry-added", and it isn't
9445         emitted by the tree backend anyway.
9447         * rhythmdb/rhythmdb-query-model.c:
9448         (rhythmdb_query_model_constructor):
9449         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9450         remove the references to the entry-restored signal.
9452 2006-02-05  James Livingston  <jrl@ids.org.au>
9454         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
9455         issue.
9457 2006-02-05  James Livingston  <jrl@ids.org.au>
9459         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
9460         things are NULL before using g_object_unref. Fixes bug 327452.
9462         * player/rb-recorder-gst.c: (rb_recorder_construct):
9463         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
9464         rather than assertion.
9466         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
9467         emit a warning, rather than asserting if an unknown playlist type is
9468         encountered.
9470 2006-02-05  James Livingston  <jrl@ids.org.au>
9472         * widgets/Makefile.am:
9473         * widgets/rb-simple-view.c:
9474         * widgets/rb-simple-view.h: Move the two features that this class
9475         provides into RBPropertyView, and remove this class. Closes bug
9476         327500.
9478         * podcast/rb-feed-podcast-properties-dialog.c:
9479         * podcast/rb-feed-podcast-properties-dialog.h:
9480         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9481         (rb_podcast_source_feeds_show_popup_cb):
9482         * sources/rb-podcast-source.h:
9483         * widgets/rb-property-view.c: (rb_property_view_class_init),
9484         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
9485         (rb_property_view_append_column_custom),
9486         (rb_property_view_button_press_cb):
9487         * widgets/rb-property-view.h: Updated for the above change.
9489 2006-02-04  James Livingston  <jrl@ids.org.au>
9491         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
9492         too close to Move to Trash and people aren't likely to use it often.
9494 2006-02-04  James Livingston  <jrl@ids.org.au>
9496         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
9498 2006-02-04  James Livingston  <jrl@ids.org.au>
9500         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
9501         passed a path instead of a URI.
9503         * sources/rb-generic-player-source.c: (default_get_mount_path):
9504         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
9505         the path. This fixes bug 329723.
9507 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
9509         * daapsharing/rb-daap-structure.c:
9510         (rb_daap_content_code_string_as_int32):
9511         Use network byte order.
9513 2006-02-03  William Jon McCann  <mccann@jhu.edu>
9515         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
9516         Use a hash for source lookup.
9517         (mdns_service_added, mdns_service_removed): Handle
9518         service-added and service-removed signals from RBDaapMdnsBrowser.
9519         (remove_source): GDestroyNotify function for when sources
9520         are removed from the hash.
9521         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
9522         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
9523         (rb_daap_sources_shutdown): Update.
9524         (source_host_find): GHRFunc for finding a source by ip.
9525         (rb_daap_source_find_for_uri): Use the hash source lookup.
9527         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
9528         Namespace keys.
9529         (password_check_button_toggled_cb): Handle password enabled.
9530         (share_name_entry_focus_out_event_cb): Namespace keys.
9531         Handle changes more robustly.
9532         (share_password_entry_focus_out_event_cb): Handle password entry.
9533         (add_daap_preferences): Connect to password signals.
9535         * lib/rb-preferences.h: Add DAAP keys.
9537         * data/glade/daap-prefs.glade: Add password UI.
9539         * data/rhythmbox.schemas: Add password keys.
9541         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
9542         assert with warning.
9544         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
9545         gconf keys to lib/rb-preferences.h.  Namespace
9546         the gconf keys.
9547         (create_share): Add password support.
9548         (enable_sharing_changed_cb): Namespaced keys.
9549         (require_password_changed_cb): Handle key change.
9550         (share_name_changed_cb): Namespaced keys.
9551         (share_password_changed_cb): Handle key change.
9552         (rb_daap_sharing_init): Namespaced keys.
9553         (rb_daap_sharing_shutdown): Ditto.
9555         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
9556         Add password property.
9557         (rb_daap_share_set_name): Break out prop set function.
9558         (published_cb): New RBDaapMdnsPublisher signal handler.
9559         (name_collision_cb): Ditto.
9560         (rb_daap_share_init): Create publisher object and
9561         connect to signals.
9562         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
9563         (rb_daap_share_set_property): Break out prop set functions.
9564         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
9565         Unref publisher.
9566         (rb_daap_share_new): Add password argument.  Start
9567         publishing and DAAP server.
9568         (message_set_from_rb_daap_structure): Change print to debug.
9569         (server_info_cb): Set auth method to publish.
9570         (logout_cb): Handle DAAP client logout.
9571         (update_cb): Remove C++ comments.
9572         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
9573         (server_cb): Add debug.
9574         (soup_auth_callback): Handle auth requests.
9575         (rb_daap_share_server_start): Split up functions for starting
9576         server and publishing.  Add auth handling to server.
9577         (rb_daap_share_server_stop): Split stop server and publish.
9578         No C++ comments.
9579         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
9580         Start and stop publishing.
9581         (rb_daap_share_restart): Restart server and publishing.
9582         (rb_daap_share_maybe_restart): Conditionally restart.
9584         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
9585         (rb_daap_collision_dialog_new_run): Don't use
9586         separators in dialogs.
9588         * daapsharing/rb-daap-connection.h: Add private
9589         data to class structure.
9591         * daapsharing/rb-daap-connection.c: Move
9592         some includes to top of file.  Make private
9593         data struct name consistent with others.
9594         (rb_daap_connection_class_init): Rename
9595         private.
9596         (rb_daap_connection_init): Get and store the pointer
9597         to the private data once instead of in every
9598         function.  Create a username value "Rhythmbox_VERSION".
9599         (connection_get_password): Don't get private.
9600         (build_message): Ditto.
9601         (http_response_handler): Don't init variables in
9602         declaration.  Add debug.  Spacing.
9603         (http_get, entry_set_string_prop, handle_server_info) 
9604         (handle_login, handle_update, handle_database_info) 
9605         (handle_song_listing, handle_playlists, handle_playlist_entries) 
9606         (rb_daap_connection_constructor, rb_daap_connection_logout) 
9607         (rb_daap_connection_state_done): Don't get private.
9608         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
9609         spacing.  Correctly base64 encode the Authentication token.
9610         Add username to auth token.
9611         (rb_daap_connection_get_playlists): Don't get private.
9612         (rb_daap_connection_dispose): Ditto.  Free username.
9613         (rb_daap_connection_set_property) 
9614         (rb_daap_connection_get_property): Don't get private.
9616         * daapsharing/Makefile.am: Conditionally
9617         compile MDNS backends.  Add marshall stuff.
9619         * daapsharing/.cvsignore: Update.
9621         * configure.ac: Add conditional to see which
9622         MDNS backend we should use.
9624         * daapsharing/rb-daap-mdns.[ch]: Removed files.
9626         * daapsharing/rb-daap-marshal.list:
9627         * daapsharing/rb-daap-mdns-browser-avahi.c:
9628         * daapsharing/rb-daap-mdns-browser-howl.c:
9629         * daapsharing/rb-daap-mdns-browser.h:
9630         * daapsharing/rb-daap-mdns-publisher-avahi.c:
9631         * daapsharing/rb-daap-mdns-publisher-howl.c:
9632         * daapsharing/rb-daap-mdns-publisher.h:
9633         Split rb-daap-mdns.c into two classes.  One for
9634         publishing and one for browsing.  Split out
9635         the avahi and howl backends into different files.
9637         Fixes #322966
9638         
9639 2006-02-04  James Livingston  <jrl@ids.org.au>
9641         patch by: Jan Schmidt <thaytan@mad.scientist.com>
9643         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
9644         crash if metadata reader gives us NULL for strings.
9646 2006-02-03  James Livingston  <jrl@ids.org.au>
9648         * shell/rb-shell-player.c: (open_location_thread),
9649         (rb_shell_player_open_location):
9650         retrieve iradio playlists files in a thread, so that with GStreamer
9651         0.10 the UI doesn't block while connecting to stations. The streamer
9652         connection is synchronous with 0.8, so that will still block (a bit).
9653         Fixed bug 128106.
9655         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
9656         because _open_entry does that automatically when it is ready to.
9658 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9660         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9661         (rb_podcast_source_post_status_cell_data_func):
9662         Leave the podcast status column blank for episodes that have not been
9663         downloaded.
9665 2006-02-03  James Livingston  <jrl@ids.org.au>
9667         Add support for source-specific toolbar items, and make the Burn
9668         Playlist item only available for playlists. Also add Update All
9669         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
9671         * data/ui/rhythmbox-ui.xml:
9672         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
9673         (impl_get_ui_actions): make the Burn CD toolbar item only for
9674         playlists
9676         * lib/rb-stock-icons.c: (rb_stock_icons_init):
9677         * lib/rb-stock-icons.h: load the Eject icon as stock.
9679         * shell/rb-removable-media-manager.c: use the eject icon for the eject
9680         action
9682         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
9683         (rb_shell_select_source):
9684         * sources/rb-source.c: (rb_source_class_init),
9685         (rb_source_disconnect), (default_get_ui_actions),
9686         (rb_source_get_ui_actions):
9687         * sources/rb-source.h: add support for source-specific toolbar items
9689         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
9690         Eject and Rip toolbar items
9692         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
9693         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
9694         item.
9696 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9698         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
9699         * shell/main.c: (main):
9700         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
9701         Replace all g_critical calls with g_warning, since none of them are
9702         the sort of thing the process should die over.  Fixes #329398.
9704 2006-02-03  James Livingston  <jrl@ids.org.au>
9706         * configure.ac: mention gst-plugins-base in the error message for not
9707         finding GStreamer 0.10, since not having that will cause it to fail.
9709 2006-02-03  James Livingston  <jrl@ids.org.au>
9711         * configure.ac: fix typo that means you get the wrong error message if
9712         you explicity request a particular playback engine, and it can't be
9713         found.
9715 2006-02-03  James Livingston  <jrl@ids.org.au>
9717         * data/glade/library-prefs.glade: allow the watched library location
9718         to be a non-local place.
9720 ============ Version 0.9.3
9723 2006-02-02  James Livingston  <jrl@ids.org.au>
9725         * NEWS: update NEWS
9726         * configure.ac: bump version to 0.9.3
9728         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
9729         <caillon@redhat.com>, fixed bug 329517. 
9731 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
9733         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
9735         * widgets/rb-song-info.c: (rb_song_info_constructor):
9736         Make year and disc number fields non-editable if tag editing
9737         is disabled.  Fixes #329463.
9739 2006-02-01  James Livingston  <jrl@ids.org.au>
9741         * rhythmdb/rhythmdb-property-model.c:
9742         (rhythmdb_property_model_row_inserted_cb),
9743         (rhythmdb_property_model_prop_changed_cb),
9744         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
9745         correctly. Fixes bug 327061.
9747         * rhythmdb/rhythmdb-query-model.c:
9748         (rhythmdb_query_model_entry_changed_cb): emit change notification of
9749         the HIDDEN property when an entry is removed for being hidden.
9751         * rhythmdb/rhythmdb-query-model.h:
9752         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9753         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
9754         models's "connected" property. Whatever it was needed for seems to
9755         have gone.
9757 2006-02-01  James Livingston  <jrl@ids.org.au>
9759         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
9761         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
9762         (rb_shell_player_playing_changed_cb): block the signal to prevent
9763         re-entrancy. Fixes bug 329329 and fixes the first click of the play
9764         button pausing.
9766 2006-02-01  James Livingston  <jrl@ids.org.au>
9768         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
9769         /should/ now work, if the neccessary plugins get ported.
9771 2006-01-30  James Livingston  <jrl@ids.org.au>
9773         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
9774         string properties to "Unknown" is the string is empty. Kind of fixes
9775         bug 327495.
9777         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
9778         gettext calls once, rather than once per time the function is used.
9779         This stops us making tens of thousands of gettext calls on startup,
9780         which reduces the cpu-time of startup by 10-20%
9782 2006-01-29  James Livingston  <jrl@ids.org.au>
9784         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
9785         (rhythmdb_add_uri):
9786         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
9787         for files containing known video streams.
9790 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9792         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
9793         required.
9795 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9797         * INSTALL.quick: More random updates
9799         * rhythmdb/rhythmdb-query-model.c:
9800         (rhythmdb_query_model_class_init),
9801         (rhythmdb_query_model_set_property),
9802         (rhythmdb_query_model_get_property),
9803         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
9804         Remove user sort data handling, take a property ID and a reverse
9805         flag instead.
9806         (rhythmdb_query_model_insert_into_main_list),
9807         (rhythmdb_query_model_insert_into_limited_list),
9808         (rhythmdb_query_model_do_reorder),
9809         (_reverse_sorting_func):
9810         Handle reverse sorting by calling _reverse_sorting_func, which
9811         calls the real sort function and reverses the result.
9812         (rhythmdb_query_model_set_sort_order):
9813         Allow this to be called to set the initial sort order for limited
9814         queries, and handle reverse sorting when reordering.
9815         (rhythmdb_query_model_location_sort_func),
9816         (rhythmdb_query_model_album_sort_func),
9817         (rhythmdb_query_model_artist_sort_func),
9818         (rhythmdb_query_model_genre_sort_func),
9819         (rhythmdb_query_model_track_sort_func),
9820         (rhythmdb_query_model_double_ceiling_sort_func),
9821         (rhythmdb_query_model_ulong_sort_func),
9822         (rhythmdb_query_model_date_sort_func),
9823         (rhythmdb_query_model_string_sort_func):
9824         Sort functions moved from rb-entry-view.c.
9825         * rhythmdb/rhythmdb-query-model.h:
9826         Add the sort functions, and update the changed functions.
9827         
9828         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
9829         Just call _resort_model when the query model is set, since it
9830         does all the same things.
9831         (rb_entry_view_append_column):
9832         Rework bits so the rating column doesn't have to be so much of a
9833         special case.
9834         (rb_entry_view_append_column_custom):
9835         Take a property ID to sort on, rather than arbitrary custom data.
9836         (rb_entry_view_resort_model):
9837         Query model does all the reverse sort handling now.
9838         * widgets/rb-entry-view.h: Update _append_column_custom.
9840         * sources/rb-play-queue-source.c:
9841         (rb_play_queue_source_constructor):
9842         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9843         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9844         (rb_podcast_source_post_date_cell_sort_func),
9845         (rb_podcast_source_post_status_cell_sort_func),
9846         (rb_podcast_source_post_feed_cell_sort_func):
9847         Updates required by all the other changes.
9849         * rhythmdb/rhythmdb-property-model.c:
9850         (rhythmdb_property_model_drag_data_get):
9851         Sort the query results on the selected property,
9852         so they arrive in the expected order.  All the other changes were made
9853         to make this possible.  Fixes bug #327494.
9855 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9856         
9857         * shell/rb-shell-clipboard.c:
9858         Use GTK_STOCK_REMOVE icon for the remove action in
9859         the play queue too.
9861 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9863         * sources/rb-play-queue-source.c:
9864         (rb_play_queue_source_constructor),
9865         (rb_play_queue_source_update_count):
9866         Don't make the 'queued songs' column clickable,
9867         and add the queued song count to the column title.
9869 2006-01-29  James Livingston  <jrl@ids.org.au>
9871         * configure.ac: remove "experimental" marking from DAAP, and enable by
9872         default if the dependencies are found.
9874 2006-01-29  James Livingston  <jrl@ids.org.au>
9876         * NEWS: update NEWS
9878 2006-01-29  James Livingston  <jrl@ids.org.au>
9880         patch by: William Jon McCann  <mccann@jhu.edu>
9882         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9883         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
9884         property used for the feed list. Fixes problem with feeds with no
9885         episodes not showing up.
9887 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9888         
9889         * shell/rb-play-order-random-by-age-and-rating.c:
9890         (rb_random_by_age_and_rating_get_entry_weight):
9891         Fix compile errors, bug #328978.
9893 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
9895         * INSTALL.quick, README: Random updates
9896         * README.lirc: Add notes on controlling Rhythmbox with LIRC
9898 2006-01-28  James Livingston  <jrl@ids.org.au>
9900         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
9901         default rating back to 0 (from 2.5, which was needed for autorating).
9903         * shell/rb-play-order-random-by-age-and-rating.c:
9904         (rb_random_by_age_and_rating_get_entry_weight):
9905         * shell/rb-play-order-random-by-rating.c:
9906         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
9907         2.5 for the purposes of weighting entries.
9909 2006-01-28  James Livingston  <jrl@ids.org.au>
9911         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
9912         translator comments, to make it clearer what the "friendly time"
9913         formatting strings mean.
9915 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
9917         * daapsharing/rb-daap-connection.c: (http_response_handler):
9918         Fix the sense of the overflow check so it'll accept valid input.
9920 2006-01-27  James Livingston  <jrl@ids.org.au>
9922         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
9924         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
9925         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
9927 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
9929         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
9930         
9931         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
9932         Don't include the artist field in the window title if it's blank.
9933         Fixes #325973.
9935 2006-01-26  William Jon McCann  <mccann@jhu.edu>
9937         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
9938         Use stock delete icon for move to trash and stock remove
9939         for remove menu item.
9941 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
9943         * shell/rb-shell.c: (rb_shell_constructor),
9944         (idle_handle_load_complete):  Don't start the playlist save
9945         timeout until we've loaded the playlists, otherwise we'll
9946         write an empty playlist file if startup takes too long.
9948 2006-01-25  William Jon McCann  <mccann@jhu.edu>
9950         * shell/rb-shell.c: Make view toolbar toggle use
9951         shift+ctrl+t.  Fixes #327585.
9953 2006-01-25  James Livingston  <jrl@ids.org.au>
9955         patch by: Christope Fergeau  <teuf@gnome.org>
9957         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
9958         (http_response_handler): fix a potential buffer overflow issue.
9960 2006-01-25  James Livingston  <jrl@ids.org.au>
9962         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
9963         Year column wide enough to display "Unknown"
9965 2006-01-25  James Livingston  <jrl@ids.org.au>
9967         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9968         (rb_podcast_source_post_status_cell_data_func): make the episode
9969         status wording better. Part of bug 321607.
9971 2006-01-25  James Livingston  <jrl@ids.org.au>
9973         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
9974         others with a separator.
9976         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
9977         stock Delete icon.
9979 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
9981         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
9983 2006-01-23  James Livingston  <jrl@ids.org.au>
9985         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
9986         0.3.2. Fixed bug 328158.
9988 2006-01-23  James Livingston  <jrl@ids.org.au>
9990         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
9991         (gulong_gst_date_transform), (rb_metadata_class_init):
9992         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
9994 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
9996         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
9997         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
9998         (record_entry_change): Protect added_entries and changed_entries with
9999         a mutex, so it doesn't crash on startup on SMT/SMP machines.
10001 2006-01-23  James Livingston  <jrl@ids.org.au>
10003         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
10004         the browser for audio CDs.
10006 2006-01-22  James Livingston  <jrl@ids.org.au>
10008         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
10009         NEVER_FAIL as it causes the daemon-not-running error to never be
10010         reported, resulting in bug 319438 re-occurring.
10012 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10014         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
10015         Just call the podcast manager's update method.  Unbreaks the 'update
10016         all feeds' command.
10018 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10020         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
10022 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
10024         * configure.ac: Don't disable DAAP with gstreamer 0.10
10026         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
10027         (rb_daap_src_class_init), (rb_daap_src_init),
10028         (rb_daap_src_finalize), (rb_daap_src_set_property),
10029         (rb_daap_src_get_property), (rb_daap_src_write),
10030         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
10031         (_split_uri), (rb_daap_src_open):
10032         * daapsharing/rb-daap-src.h:
10033         Mostly fix seeking, handle chunked transfer encoding, and port to
10034         gstreamer 0.10.
10035         
10036         * player/rb-player-gst.c:
10037         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
10038         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
10040         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
10041         being fixed.
10043 2006-01-21  James Livingston  <jrl@ids.org.au>
10045         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
10046         for Year metadata in DAAP sources. Fixes bug 327700.
10048         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10050 2006-01-20  William Jon McCann  <mccann@jhu.edu>
10052         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
10053         enum values instead of magic numbers.
10055         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
10056         Add number of songs that match each property title into
10057         the cell.  Also show the number of properties that match
10058         in the All entry.
10059         (rb_property_view_constructor): Use enum values instead of
10060         magic numbers.
10062         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
10063         Query podcast posts instead of feeds for browser.  Use
10064         post SUBTITLE which is the location for the property view.
10065         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
10066         (construct_query_from_selection) 
10067         (rb_podcast_source_cmd_delete_feed) 
10068         (rb_podcast_source_cmd_properties_feed) 
10069         (rb_podcast_source_cmd_update_feed): Use variable to make
10070         it clear what the selection data represents.
10071         (rb_podcast_source_feed_title_cell_data_func): Add number
10072         of posts that belong to each feed in the browser.
10074         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
10075         (rhythmdb_property_model_delete_prop): Decrement the refcount
10076         for the All entry.
10077         (rhythmdb_property_model_get_column_type): Use column enum
10078         values instead of magic numbers.  Add NUMBER column.
10079         (rhythmdb_property_model_get_value): Use enum.
10080         Add NUMBER column that represents the refcount for
10081         the title of that property.
10082         (rhythmdb_property_model_perform_sync): Don't fake up
10083         a title for All here.
10085         Fixes #327372.
10086         
10087 2006-01-21  James Livingston  <jrl@ids.org.au>
10089         Make Rhythmbox start faster by not blocking the UI while database
10090         initialisation and loading occurs. Closes bug 323348.
10092         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
10093         start 10 seconds later instead of immediately.
10094         
10095         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
10096         safe to call from any thread.
10098         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
10099         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
10100         so the UI doesn't block.
10102 2006-01-18  James Livingston  <jrl@ids.org.au>
10104         * sources/rb-static-playlist-source.c:
10105         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
10106         cause crashes. Oops. fixes bug 327477.
10108 2006-01-17  William Jon McCann  <mccann@jhu.edu>
10110         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
10111         Set GST element state to NULL before unreffing.
10112         Fixes #327422.
10114 2006-01-18  James Livingston  <jrl@ids.org.au>
10116         * sources/rb-static-playlist-source.c:
10117         (rb_static_playlist_source_do_query): don't filter on the SONG entry
10118         type, since the playlists can contain non-song entries. Fixes bug
10119         327448.
10121         * sources/rb-play-queue-source.c:
10122         (rb_play_queue_source_class_init): disable the search box for the
10123         queue.
10125 2006-01-18  James Livingston  <jrl@ids.org.au>
10127         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
10128         dragging of podcast episodes. Fixed bug 327450.
10130 2006-01-18  James Livingston  <jrl@ids.org.au>
10132         * rhythmdb/rhythmdb-query-model.c:
10133         (rhythmdb_query_model_drag_data_received): fix possible assertion when
10134         dragging to an emoty playlist.
10136 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
10138         * sources/rb-playlist-source-recorder.c:
10139         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
10141 2006-01-17  James Livingston  <jrl@ids.org.au>
10143         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10145         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
10146         different number of tracks than exist on the cd, since that happens
10147         with audio+data hybrid CDs. Part of bug 325046.
10149 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
10151         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10152         Remove useless call to gtk_tree_view_column_set_clickable().
10154         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
10155         Don't store sort data for columns if the sort function is NULL,
10156         so only sortable columns will be in the column sort data map.
10157         (rb_entry_view_set_columns_clickable): Only make columns we can sort
10158         on clickable.
10159         (rb_entry_view_constructor):  The 'playing icon' column is never
10160         clickable, so don't connect a signal handler for it.
10162         Fixes bug 326811.
10164 2006-01-17  James Livingston  <jrl@ids.org.au>
10166         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
10167         are 0.8 only. Fix element detection.
10169         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
10170         saving the new metadata failed
10172 2006-01-17  James Livingston  <jrl@ids.org.au>
10174         * shell/rb-shell-player.c: (do_next_idle),
10175         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
10176         (eos_cb): release audio device when a playlist finishes. Fixes bug
10177         323679.
10179 2006-01-17  James Livingston  <jrl@ids.org.au>
10181         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
10182         canonicalise the URIs when things are added via library watching.
10184 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10186         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10187         Off by one error in default speed index.
10189 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10191         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
10192         (update_speed_combobox, update_speed_combobox):
10193         Get a list of the actually supported write speeds from
10194         n-c-b >= 2.13.90.  Otherwise use fallback list.
10196 2006-01-17  James Livingston  <jrl@ids.org.au>
10198         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
10199         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
10200         don't get stuck on recursive symlinks. Fixed bug 125452.
10202 2006-01-17  James Livingston  <jrl@ids.org.au>
10204         Add support for mass-storage audio players. Players are detected via
10205         either the HAL "audio_player" capability, or a ".is_audio_player" file
10206         in the root of the volume. Closes bug 325602.
10208         * configure.ac: separate using HAL from ipod support.
10210         * lib/rb-file-helpers.c: (rb_uri_is_local):
10211         * lib/rb-file-helpers.h: add function to determine whether a URI is
10212         local.
10214         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10215         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
10216         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
10217         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
10218         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
10219         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
10220         directories can be scanned for files to add as  non-SONG entries.
10222         * shell/rb-removable-media-manager.c:
10223         (rb_removable_media_manager_mount_volume): add checking for
10224         mass-storage players.
10226         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
10227         * sources/rb-ipod-source.c: (rb_ipod_source_new),
10228         (hal_udi_is_ipod):
10229         * sources/rb-removable-media-source.c:
10230         (rb_removable_media_source_class_init),
10231         (rb_removable_media_source_constructor): move some things up to the
10232         RBRemovableMediaSource, rather than making subclasses do it.
10234         * sources/Makefile.am:
10235         * sources/rb-generic-player-source.c:
10236         * sources/rb-generic-player-source.h: add mass-storage player source.
10238 2006-01-16  James Livingston  <jrl@ids.org.au>
10240         patch by: William Jon McCann  <mccann@jhu.edu>
10242         * rhythmdb/rhythmdb-query-model.c:
10243         (rhythmdb_query_model_base_row_deleted): fix build issue from last
10244         commit.
10246 2006-01-16  James Livingston  <jrl@ids.org.au>
10248         Patch to add support for "chained queries" and putting hidden tracks
10249         in query models. Use chained queries to add search box support to
10250         normal playlists, and to make hidden entries not get lost. Fixes bug
10251         319278.
10253         * rhythmdb/rhythmdb-query-model.h:
10254         * rhythmdb/rhythmdb-query-model.c:
10255         (rhythmdb_query_model_class_init),
10256         (rhythmdb_query_model_set_property),
10257         (rhythmdb_query_model_get_property):
10258         (rhythmdb_query_model_finalize): add "show-hidden" and
10259         "base-model" properties.
10261         (rhythmdb_query_model_set_connected),
10262         (rhythmdb_query_model_has_pending_changes),     
10263         (rhythmdb_query_model_entry_added_cb),
10264         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
10265         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
10266         (rhythmdb_query_model_remove_entry),
10267         (rhythmdb_query_model_drag_data_received),
10268         (rhythmdb_query_model_base_row_inserted),
10269         (rhythmdb_query_model_base_row_deleted),
10270         (rhythmdb_query_model_base_non_entry_dropped),
10271         (rhythmdb_query_model_base_complete),
10272         (rhythmdb_query_model_base_entry_prop_changed),
10273         (rhythmdb_query_model_base_rows_reordered),
10274         (rhythmdb_query_model_row_drop_possible): handle base-model by
10275         chaining events and operations where necessary. Make hidden entries
10276         not get added only if "show-hidden" is false.
10278         (rhythmdb_query_model_child_index_to_base_index),
10279         (rhythmdb_query_model_base_index_to_child_index),
10280         (rhythmdb_query_model_get_entry_index): utility functions for handling
10281         base-model entries.
10283         (rhythmdb_query_model_reapply_query): apply the current query, and
10284         remove entries that don't match it.
10286         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
10287         empty queries.
10289         * sources/rb-source.c: (rb_source_set_property): move the unref later
10290         to fix problem if it is the last reference.
10292         * sources/rb-static-playlist-source.c:
10293         (rb_static_playlist_source_class_init),
10294         (rb_static_playlist_source_init),
10295         (rb_static_playlist_source_finalize),
10296         (rb_static_playlist_source_constructor), (impl_reset_filters),
10297         (impl_search), (rb_static_playlist_source_do_query),
10298         (impl_save_contents_to_xml),
10299         (rb_static_playlist_source_add_location_internal): use a chained query
10300         model to filter out hidden entries and implement the search box.
10302 2006-01-15  James Livingston  <jrl@ids.org.au>
10304         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
10305         the default playlist loading, which I broke earlier.
10307 2006-01-15  James Livingston  <jrl@ids.org.au>
10309         patch by: William Jon McCann  <mccann@jhu.edu>
10311         * sources/rb-playlist-source.c: (playlist_iter_func): use
10312         totem-plparser's new API version macros to check for API changes.
10313         Handle the recent API change.
10315 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10317         * sources/rb-library-source.c: (impl_get_config_widget):
10318         Ref the preferences object to match the unref in the
10319         finalizer.  Fixes some portion of #323505.
10321 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10323         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
10324         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
10325         Fix valgrind warnings about accessing uninitialised values.
10327 2006-01-14  William Jon McCann  <mccann@jhu.edu>
10329         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
10331 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10333         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
10334         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
10335         Stops the 'now playing' icon from being displayed after the play
10336         order finishes.
10338 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10340         * podcast/rb-podcast-manager.c:
10341         (rb_podcast_manager_db_entry_deleted_cb):
10342         Don't try to delete files we never downloaded, and cancel downloads
10343         for deleted episodes.  Fixes bug #326862.
10344         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
10345         Don't complain about NULL data items in the selection list.
10347 2006-01-14  James Livingston  <jrl@ids.org.au>
10349         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
10350         Make the name ofthe queue non editable. Fixes bug 326918.
10352 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10354         * sources/rb-playlist-source-recorder.c (burn_cd) 
10355         (ask_rewrite_disc): Don't use our locally copied functions
10356         if we have at least 2.13.
10358 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10360         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
10361         Correct the argument type for the process_error signal.
10362         May fix bug #323154.
10364 2006-01-13  James Livingston  <jrl@ids.org.au>
10366         save the queue to disk when exiting, and reload on startup. Fixed bug
10367         326677 .
10369         * shell/rb-playlist-manager.c:
10370         (rb_playlist_manager_load_playlists),
10371         (rb_playlist_manager_save_playlists_async): don't disable saving of
10372         the queue
10374         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
10375         add the queue source as a gobject property.
10377         * sources/rb-play-queue-source.c:
10378         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
10379         code to save the queue to xml
10381         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10382         load the queue from xml.
10383         * sources/rb-playlist-xml.h:
10385         * sources/rb-static-playlist-source.c:
10386         (rb_static_playlist_source_load_from_xml),
10387         (rb_static_playlist_source_new_from_xml):
10388         * sources/rb-static-playlist-source.h: split the playlist xml loading
10389         from the static playlist creation function, so the queue can use it.
10391 2006-01-13  James Livingston  <jrl@ids.org.au>
10393         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
10394         assertion that should be there. Fixes bug 325923.
10395         
10396         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
10397         return NULL if the entry already exists (e.g. as another type).
10398         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10399         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
10400         (rb_podcast_manager_insert_feed):
10401         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
10402         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
10403         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
10404         for the above function returning NULL.
10406 2006-01-12  James Livingston  <jrl@ids.org.au>
10408         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
10409         is enabled. Fixes bug 326673.
10410         
10411         * doc/reference/tmpl/eggtrayicon.sgml:
10412         * doc/reference/tmpl/rb-daap-src.sgml:
10413         * doc/reference/tmpl/rb-source.sgml:
10414         * doc/reference/tmpl/rb-statusbar.sgml:
10415         * doc/reference/tmpl/rb-tree-model-sort.sgml:
10416         * doc/reference/tmpl/rhythmbox-unused.sgml:
10417         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
10419 2006-01-11  James Livingston  <jrl@ids.org.au>
10421         * widgets/rb-song-info.c: (rb_song_info_constructor),
10422         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
10423         (rb_song_info_populate_dialog): fill in the fields if all tracks have
10424         the same value for properties. From bug 326054.
10426 2006-01-11  James Livingston  <jrl@ids.org.au>
10428         * sources/rb-source.h:
10429         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
10430         (rb_shell_player_set_playing_source_internal), (eos_cb):
10431         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
10432         every entry.
10434         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
10435         source use this. Closes bug 322077.
10437 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10439         * widgets/eggtrayicon.c (egg_tray_icon_notify):
10440         In order for set_icon_data_from_pixbuf() to be
10441         effective, one must not set an icon in _new().
10443 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10445         * widgets/eggtrayicon.c (egg_tray_icon_init) 
10446         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
10447         (egg_tray_icon_notify): Add support for libnotify 0.3.
10448         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
10449         * configure.ac: Determine the version of libnotify.
10450         Fixes #326333.
10452 2006-01-08  James Livingston  <jrl@ids.org.au>
10454         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
10455         trying to share a track with unknown length.
10457 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10459         * shell/rb-shell-player.c: (rb_shell_player_init):
10460         Sync volume on startup so it doesn't default to 0.
10462 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10464         * shell/rb-shell-player.c: (rb_shell_player_class_init),
10465         (rb_shell_player_get_property), (rb_shell_player_open_location),
10466         (info_available_cb):  Add the iradio streamed song title as a
10467         property, and emit a signal when it changes.
10469         * shell/rb-shell.c: (rb_shell_constructor),
10470         (rb_shell_player_elapsed_changed_cb),
10471         (rb_shell_player_stream_song_changed_cb):
10472         Issue a notification when the iradio song title changes.
10473         Fixes #326166.
10475 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10477         * shell/rb-shell-player.c: (rb_shell_player_init),
10478         (rb_shell_player_finalize), (rb_shell_player_set_property),
10479         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
10480         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
10481         (rb_shell_player_set_volume_relative),
10482         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
10483         (rb_shell_player_get_mute):
10484         * shell/rb-shell-player.h:
10485         * shell/rb-shell-player.xml:
10486         Store volume as a property on RBShellPlayer, rather than in gconf.
10487         Add some methods to control volume via dbus.
10489         * shell/rb-shell.c: (rb_shell_constructor),
10490         (rb_shell_volume_widget_changed_cb),
10491         (rb_shell_player_volume_changed_cb):
10492         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
10493         Update volume using player properties rather than gconf, and sync the
10494         volume with the volume control button when something else changes it.
10495         Fixes #323840.
10497 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10499         * shell/rb-tray-icon.c (tray_popup_position_menu):
10500         Make tray menu align with edge of panel.
10502         patch from Jaap A. Haitsma <jaap@haitsma.org>
10503         Fixes #319913
10505 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10506         * shell/rb-shell.c (sourcelist_drag_received_cb): 
10507         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
10508         (rb_playlist_manager_new_playlist_from_selection_data):
10509         Make a reasonable default name for playlists created from
10510         dropped data.  Fixes #326116.
10512 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10514         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10515         Use new gconf key.
10516         (burn_cd): Always eject CD after burning.  Too many drives
10517         get confused if we don't.  Save the speed used if the burn
10518         was completed successfully.
10520         * data/rhythmbox.schemas: Use our own speed instead of from
10521         n-c-b. The situation is that the default_speed for n-c-b is most
10522         likely the maximum write speed.  This is fine for n-c-b because it
10523         has burn-proof turned on.  We can't turn it on for audio CDs
10524         because the results are poor in quality.  So we'll just pick a
10525         default that should work for everyone (4).
10527 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10528         
10529         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
10530         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
10532 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10534         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
10535         in my previous commit.  Fixes #326037.
10537 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
10539         patch by: Jonathan Matthew
10541         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
10542         error on Fedora Rawhide.
10544 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10546         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
10547         Assume HTTP URLs ending with .xml or .rss are podcasts.
10548         (rb_shell_add_uri): Handle adding podcast feeds.
10550         * sources/rb-podcast-source.c: (rb_podcast_source_new):
10551         Register as the source for podcast feeds.
10553 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10555         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
10556         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
10557         (rb_shell_preferences_append_view_page):
10558         * shell/rb-shell-preferences.h:
10559         Fix typo in function name.  Fixes #325992.
10561 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10563         * shell/rb-audioscrobbler.c:
10564         Add '+' to the list of characters to URI-encode, so it doesn't get
10565         interpreted as a space.
10567 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10569         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
10570         (rb_daap_connection_do_something):  Don't crash if the DAAP server
10571         goes away while we're still trying to log in.
10573 2006-01-06  James Livingston  <jrl@ids.org.au>
10575         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
10577 2006-01-06  James Livingston  <jrl@ids.org.au>
10579         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
10580         support for Year to automatic playlists. Closes bug 321341.
10582         * rhythmdb/rhythmdb-query-model.c:
10583         (rhythmdb_query_model_set_property):
10584         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
10585         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
10586         (rhythmdb_query_free), (rhythmdb_query_serialize),
10587         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
10588         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
10589         * rhythmdb/rhythmdb.h: Support special
10590         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
10591         year in date.
10593         * widgets/rb-query-creator-properties.c:
10594         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
10595         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
10597 2006-01-06  James Livingston  <jrl@ids.org.au>
10599         * configure.ac: make the playback backend selection work correctly
10601         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
10602         (rb_daap_src_class_init), (rb_daap_src_dispose),
10603         (rb_daap_src_change_state), (rb_daap_src_initialize):
10604         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
10605         doesn't work for this class. Fixes bug 325934
10607 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10609         * configure.ac: Fix check for libnotify.
10611 2006-01-05  William Jon McCann  <mccann@jhu.edu>
10613         * sources/rb-playlist-source.c (xml_get_and_trim_names):
10614         Get name element for current lang and remove all name nodes
10615         from the XML tree.
10616         (get_playlist_name_from_xml): Try to get name element or
10617         fall back to name attribute.
10618         (rb_playlist_source_new_from_xml): Get name before turning over
10619         to sub-types for parsing so that we can remove name elements
10620         from the tree if necessary.
10622         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
10623         Load default playlists file if per user playlists are not found.
10625         * data/playlists.xml.in: 
10626         * data/Makefile.am: 
10627         * data/.cvsignore: Add default set of playlists.
10628         Fixes #323004
10630 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10632         * shell/main.c: (main): Don't use the dbus interface to show the
10633         window if we're also going to use the bonobo interface.
10635 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10637         * shell/rb-history.c: (rb_history_set_playing):
10638         Allow setting the playing song to NULL.
10639         (rb_history_append), (rb_history_delete_link):
10640         Don't randomly change position when entries are added and removed,
10641         it confuses play orders.
10642         
10643         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
10644         Random orders always have a next entry if the model is not empty.
10645         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
10646         Go back to the start of the history if we're past its end.
10648         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
10649         (rb_shuffle_play_order_go_next): Go back to the start of the history
10650         if we're past its end.
10651         (rb_shuffle_sync_history_with_query_model): Go back to the start of
10652         the history if the current entry is removed.
10654         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
10655         (rb_play_order_entry_deleted_cb): Only update have next/previous for
10656         the play order when the query has finished. This wasted about 10% CPU
10657         while the query was running.
10659         Fixes #324641: assertion failures when the query model was changed
10660         such that the playing song was no longer present.
10662 2006-01-05  James Livingston  <jrl@ids.org.au>
10664         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
10665         (rb_daap_src_dispose), (rb_daap_src_change_state):
10666         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
10667         (rhythmdb_gda_finalize):
10668         * widgets/rb-cell-renderer-pixbuf.c:
10669         * widgets/rb-cell-renderer-rating.c:
10670         (rb_cell_renderer_rating_class_init),
10671         (rb_cell_renderer_rating_finalize):
10672         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
10673         * widgets/rb-load-failure-dialog.c:
10674         (rb_load_failure_dialog_class_init),
10675         (rb_load_failure_dialog_finalize):
10676         * widgets/rb-rating.c: (rb_rating_class_init),
10677         (rb_rating_finalize):
10678         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
10679         (rb_search_entry_finalize): use G_DEFINE_TYPE
10681         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
10683 2006-01-05  James Livingston  <jrl@ids.org.au>
10685         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
10687         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
10688         the tarball.
10690         * shell/rb-history.c: (rb_history_class_init),
10691         (rb_history_finalize):
10692         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
10693         (rb_playlist_manager_finalize):
10694         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
10695         (rb_remote_init): use G_DEFINE_TYPE.
10697 2006-01-05  James Livingston  <jrl@ids.org.au>
10699         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
10700         changes
10702 2006-01-04  William Jon McCann  <mccann@jhu.edu>
10704         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
10705         Disable burn action when source is not a playlist.
10706         Fixes #323578.
10708 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
10710         Optionally use libnotify to display song change and other
10711         notifications, and provide an option to disable notifications.
10712         Fixes #320355 and innumerable informal complaints.
10714         * widgets/eggtrayicon.c: (egg_tray_icon_init),
10715         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
10716         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
10717         (egg_tray_icon_notify):
10718         * widgets/eggtrayicon.h:
10719         * configure.ac:
10720         * shell/Makefile.am:
10721         Optionally use libnotify instead of eggnotificationbubble.
10723         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
10724         (rb_tray_icon_constructor), 
10725         (rb_tray_icon_show_notifications_changed_cb),
10726         (rb_tray_icon_hide_notify_cb)
10727         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
10728         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
10729         EggNotificationBubble pointer to eggtrayicon.
10731         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
10732         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
10733         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
10735 2006-01-04  William Jon McCann  <mccann@jhu.edu>
10737         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
10738         Request a minimum size for the progress bar so that
10739         the window doesn't shrink too small.
10741 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10743         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
10744         (add_db_entry), (db_entry_deleted_cb):
10745         Don't track the number of songs currently present, track the next ID
10746         to assign.  Fixes potential ID conflict problems.
10747         
10748         (db_entry_changed_cb), (rb_daap_share_start_publish),
10749         (rb_daap_share_stop_publish):
10750         Watch for db entry changes, and when songs become non-hidden after
10751         a successful stat, add them to the mapping tables.   Fixes #325178,
10752         making the DAAP server usable again.
10754 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10755         
10756         * shell/rb-statusbar.c: (rb_statusbar_class_init),
10757         (rb_statusbar_construct), (rb_statusbar_init),
10758         (rb_statusbar_finalize), (rb_statusbar_set_property),
10759         (rb_statusbar_get_property), (rb_statusbar_new),
10760         (rb_statusbar_sync_with_source):
10761         * shell/rb-statusbar.h:
10762         Remove visibility management code, stop watching for play order
10763         changes (status bar doesn't show play order any more), remove unused
10764         'player' property, and some other minor cleanup.
10765         
10766         * shell/rb-shell.c: (rb_shell_constructor),
10767         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
10768         (rb_shell_sync_statusbar_visibility):
10769         Manage status bar visibility here rather than in the status bar
10770         itself, so we can take small mode into account.  Fixes #323589.
10772 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10774         * widgets/eggnotificationbubble.c: (draw_bubble):
10775         Move the bubble off the visible screen while setting up bevels.  
10776         Fixes #316810.
10778 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10780         * shell/rb-shell-player.c: (rb_shell_player_init),
10781         (rb_shell_player_finalize): 
10782         Remove unused structure members.
10783         
10784         (do_next_idle), (rb_shell_player_error):
10785         Only queue one call to do_next_idle, so we don't skip tracks if we get
10786         two errors for the same song.  Fixes #325216.
10788 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10790         * data/glade/podcast-feed-properties.glade,
10791          podcast/rb-feed-podcast-properties-dialog.c:
10792         (rb_feed_podcast_properties_dialog_init),
10793         (rb_feed_podcast_properties_dialog_update):
10794         Add 'last episode' field to the podcast feed properties dialog.
10796         * podcast/rb-feed-podcast-properties-dialog.c:
10797         (rb_feed_podcast_properties_dialog_update_last_update),
10798         (rb_feed_podcast_properties_dialog_update_last_episode),
10799          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10800         Use last-seen property for the time at which we last updated the feed,
10801         and post-time for the time the last episode was published.
10803         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
10804         Handle upgrades from 0.9.2; if no post-time was found for a podcast
10805         feed, use last-seen (which in 0.9.2 was the last post time).
10807         Fixes #323894.
10809 2006-01-01  James Livingston  <jrl@ids.org.au>
10811         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
10813         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
10814         year from the ipod database.
10816 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10818         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
10819         Only set the pipeline back to NULL state for really uninteresting
10820         files.  This was causing deadlocks with various video files.
10821         Fixes #324912.
10823 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10825         * data/glade/song-info-multiple.glade:
10826         Add disc number label and field.
10827         * widgets/rb-song-info.c: (rb_song_info_construct_single),
10828         (rb_song_info_constructor): 
10829         Handle widgets for disc number.
10830         (rb_song_info_sync_entries_multiple):
10831         Set disc number property on selected entries.
10832         Fixes #324777.
10834 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10836         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
10837         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
10838         Activate the default widget when enter is pressed in these dialogs.
10839         Fixes #322887.
10841 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10843         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
10844         Use rb_shell_player_get_playing_entry, so we get the right entry
10845         when playing from the queue.  Fixes #325379.
10847 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10849         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10850         Include podcast posts with no publication date.  Typically
10851         seen in static collections rather than feeds.
10853 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10855         * shell/main.c: (main): Don't attempt to handle
10856         bonobo-only arguments if we couldn't get a bonobo
10857         client proxy.
10859 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10861         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
10862         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
10863         abort if daap sharing is disabled and then re-enabled.
10865 2005-12-29  William Jon McCann  <mccann@jhu.edu>
10867         * podcast/rb-podcast-parse.c (rb_insert_item):
10868         Add debugging.
10869         (rb_podcast_parser_start_element): Support itunes:image.
10870         Add debugging.  Don't abuse the break statement.  Warn
10871         if state is unknown.
10872         (rb_podcast_parser_end_element): Add debugging.  Warn
10873         if state is unknown.
10874         (rb_podcast_parser_characters): Warn if state is unknown.
10876         Fixes parsing of feeds that use the itunes:image element.
10877         Fixes #324632
10879 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10881         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
10882         (stations_view_drag_data_received_cb):
10883         Remove calls to rhythmdb_entry_lookup_by_location, as
10884         rb_iradio_source_add_station does that anyway.
10885         
10886         (rb_iradio_source_add_from_playlist):
10887         If the URL doesn't point to a playlist, add it as the stream
10888         URL instead.
10890 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10892         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
10893         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
10894         so we don't get an assertion failure.
10895         Fixes #325025.
10897 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10899         * shell/main.c: (load_uri_args): don't compile this in if
10900         neither bonobo nor dbus are enabled.  Fixes #324890.
10902 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10904         * sources/rb-audiocd-source.c:
10905         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
10906         so it closes the device.
10908 2005-12-20  James Livingston  <jrl@ids.org.au>
10910         * metadata/rb-metadata-gst.c: make the state changes time-out again,
10911         so that it doesn't spend forever getting stuck on the one file. Don't
10912         report errors for failing to change state on known non-audio files.
10914         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
10915         audio sink creation if we can't create the gconfaudiosink. This lets
10916         it work with only gst-plugins-base on 0.10.
10918 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
10920         * rhythmdb/rhythmdb-query-model.c:
10921         (rhythmdb_query_model_set_sort_order):
10922         Fix a tiny memory leak in the previous commit.
10924 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
10926         * rhythmdb/rhythmdb-query-model.c:
10927         (rhythmdb_query_model_set_sort_order):
10928         Don't try to emit reorders for empty query models, since it doesn't
10929         achieve anything and it results in a few warnings.
10931 2005-12-19  William Jon McCann  <mccann@jhu.edu>
10933         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
10934         Make burn dialog non-resizable so that the expander can shrink.
10935         Fixes #308951.
10937 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
10939         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
10940         add entries without a location, rather than those with one.
10942 2005-12-19  James Livingston  <jrl@ids.org.au>
10944         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
10945         the error isn't set.
10947 2005-12-19  James Livingston  <jrl@ids.org.au>
10948         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
10949         add entries without a location. Fixes bug 324290.
10951         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
10952         without a location.
10954         * shell/main.c: (main): don't crash if dbus initialisation fails
10955         without setting an error
10957 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
10959         * sources/rb-library-source.c: Remove unused structure members
10960         (rb_library_source_do_query): Actually use the cached 'all' query.
10961         Fixes #324025.
10962         
10963 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
10965         * sources/rb-audiocd-source.c 
10966         (rb_audiocd_get_cd_info): tab
10967         (rb_audiocd_scan_songs): Return boolean success/failure,
10968         fix error messages a bit.
10969         (metadata_cb): Don't crash if we have no tracks
10970         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
10971         the CD.
10972         Fixes #324222.
10974 2005-12-15  William Jon McCann  <mccann@jhu.edu>
10976         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
10977         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
10978         key.
10980         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10981         Fixes #324157
10983 2005-12-14  William Jon McCann  <mccann@jhu.edu>
10985         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
10986         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
10987         (fullscreen_changed_cb): 
10988         * lib/rb-preferences.h: 
10989         * data/ui/rhythmbox-ui.xml: 
10990         * data/rhythmbox.schemas:
10991         Add fullscreen mode.
10993         Fixes #324075.
10995 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
10997         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
10998         configure.  It was not working with RPM.
10999         * data/Makefile.am: Switched dbus directory location to use
11000         datadir instead of variable that was not working.
11002 2005-12-13  James Livingston  <jrl@ids.org.au>
11004         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11006         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
11007         the podcast browser work again. Closes bug 323856.
11009 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11011         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
11012         Remove C99ism.
11014         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
11015         (rb_utf_friendly_time):
11016         * lib/rb-cut-and-paste-code.h:
11018         * podcast/rb-feed-podcast-properties-dialog.c:
11019         (rb_feed_podcast_properties_dialog_parse_time):
11020         * podcast/rb-podcast-properties-dialog.c:
11021         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
11022         to display the date in a more user friendly way.
11023         For example, if the feed was updated yesterday it will say:
11024         Last updated: Yesterday 10:00 AM
11025         instead of printing the date.
11027 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11029         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
11030         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
11031         (rb_validate_item_propert, rb_podcast_parser_start_element) 
11032         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
11033         Use RB style.  Check for NULL before strcmp.  No C++ comments.
11034         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
11035         Don't set invalid mime type when mime type is NULL.  Fix leaks.
11036         (rb_podcast_parse_date): Add support for some real world
11037         date formats.
11038         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
11039         (rb_podcast_parse_item_free): Style and no need to check
11040         for NULL before g_free.
11042         May fix #323742
11044 2005-12-12  James Livingston  <jrl@ids.org.au>
11046         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
11047         with gstreamer 0.10, which replaced audioscale.
11049         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
11050         function to free the SoupSession
11052         * shell/rb-source-header.c: (rb_source_header_set_property),
11053         (rb_source_header_disclosure_toggled_cb),
11054         (rb_source_header_view_browser_changed_cb),
11055         (rb_source_header_sync_control_state):
11056         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11057         * sources/rb-library-source.c: (rb_library_source_class_init):
11058         * sources/rb-source.c: (rb_source_class_init),
11059         (rb_source_get_status), (default_get_browser_key),
11060         (rb_source_get_browser_key), (rb_source_can_browse),
11061         (rb_source_notify_status_changed),
11062         (rb_source_notify_filter_changed):
11063         * sources/rb-source.h: seperate the enabling of browsers from the use
11064         of a gconf key.
11066 2005-12-11  William Jon McCann  <mccann@jhu.edu>
11068         * data/glade/podcast-feed-properties.glade: 
11069         * data/glade/podcast-properties.glade: Use scrolled viewports
11070         for description text.  Fix regression of #320509.
11072 2005-12-11  James Livingston  <jrl@ids.org.au>
11074         * sources/rb-auto-playlist-source.c:
11075         (rb_auto_playlist_source_class_init), (impl_reset_filters),
11076         (impl_search), (rb_auto_playlist_source_do_query),
11077         (rb_auto_playlist_source_set_query),
11078         (rb_auto_playlist_source_get_query): add support for the search box
11079         to automatic playlists.
11081         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
11082         memory leak.
11084 2005-12-11  James Livingston  <jrl@ids.org.au>
11086         * NEWS: update NEWS
11088 2005-12-11  James Livingston  <jrl@ids.org.au>
11090         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
11091         (rhythmdb_load), (monitor_subdirectory),
11092         (rhythmdb_sync_library_location):  start the library sync and
11093         monitoring in an idle callback.
11095 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11097         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
11098         (rb_podcast_source_constructor): Remove unused pixbuf column.
11099         (rb_podcast_source_set_property, rb_podcast_source_get_property):
11100         Use consistent style.
11102         Fixes #322961.
11104 2005-12-11  James Livingston  <jrl@ids.org.au>
11106         * rhythmdb/rhythmdb-property-model.c:
11107         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
11108         (rhythmdb_property_model_insert),
11109         (rhythmdb_property_model_delete_prop):
11110         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
11111         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
11112         (destroy_tree_property):
11113         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
11114         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
11115         GMemChunks, they are crap and deprecated. Improves startup-time and
11116         memory usage slightly.
11118 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11120         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
11121         Added license and website info.
11123         * MAINTAINERS.old: Add Colin.
11124         * MAINTAINERS: Add James.
11125         * AUTHORS: Put back in order.  Add extra space between name and email
11126         to make it easier to read.  Add James and jonathan.
11128         * widgets/rb-song-info.c (rb_song_info_init) 
11129         (rb_song_info_constructor): Make sure close button is primary/rightmost.
11131 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11133         Play queue implementation. Closes bug 107787.
11135         * data/rhythmbox.schemas: add items for whether the queue should be
11136         displayed as a sidebar, and the height of the sourcelist if it is.
11138         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
11139         playlist, and podcast popups; add 'view queue as sidebar' menu item,
11140         add popups for queue as source and as sidebar.  We need a separate
11141         popup for the sidebar view because otherwise it's hard to tell which
11142         of the visible entry views the action came from.
11144         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
11146         * po/POTFILES.in: Add new file
11148         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
11149         Add helper function for deciding if a podcast episode is available for
11150         playback.
11152         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
11153         reorder entries in the query model.
11154         (idle_process_update): Handle new update type used to insert entries
11155         at a particular position in the query model.
11156         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
11157         parameter to specify the position (-1 meaning 'at the end').
11158         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
11159         parameter.
11160         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
11161         bad entry removal updates for entries that aren't in the model.
11162         (rhythmdb_query_model_emit_reorder): Add helper function for
11163         reordering rows.
11164         (rhythmdb_query_model_move_entry): New method for moving entries
11165         around in the model
11166         (rhythmdb_query_model_entry_added_cb),
11167         (rhythmdb_query_model_update_limited_entries),
11168         (rhythmdb_query_model_do_reorder),
11169         (rhythmdb_query_model_do_insert): Pass through the index parameter,
11170         use rhythmdb_query_model_emit_reorder where appropriate.
11172         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11173         Don't allow the queue to be deleted.
11174         (handle_playlist_entry_cb): Update for method signature change
11175         (rb_playlist_manager_save_playlists_async),
11176         (rb_playlist_manager_get_playlists): Don't save the play queue,
11177         don't report it as a playlist.
11179         * shell/rb-play-order.c: Include queue play order in the list of
11180         available orders.
11182         * shell/rb-shell.c
11183         (rb_shell_class_init), (rb_shell_get_property): Add new property 
11184         for access to the clipboard object.
11185         (rb_shell_constructor): Handle playing-from-queue signal to update the
11186         sourcelist display; add queue sidebar in to UI, listen for queue
11187         sidebar pane changes, and read initial settings from gconf.
11188         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
11189         Only tell the sourcelist the source has changed if the new source is 
11190         not the queue, as we update the sourcelist differently in that case.
11191         (rb_shell_set_window_title): Only use the cached window title if the
11192         playing state was the same when it was created.
11193         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
11194         (rb_shell_sync_pane_visibility): Only hide the side pane if the
11195         sourcelist is hidden and the queue is shown as a source.
11196         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
11197         mode, since it doesn't make any sense.
11198         (sourcelist_visibility_changed_cb): Update the visibility of the pane
11199         too.
11200         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
11201         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
11202         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
11203         playing from queue shown as sidebar.
11205         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
11206         MusicProperties action here from rb-shell-player.c, since it acts like
11207         cut/copy/paste etc.
11208         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
11209         (rb_shell_clipboard_get_property): new property for queue source.
11210         Watch for selection changes in the sidebar entry view as well as the
11211         normal one.
11212         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
11213         actions and MusicProperties.
11214         (rb_shell_clipboard_cmd_queue_delete),
11215         (rb_shell_clipboard_cmd_add_song_to_queue),
11216         (rb_shell_clipboard_cmd_song_info),
11217         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
11219         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
11220         actually came from (could be the playing source, or the queue), add a 
11221         new play order object for the queue, add a property for the queue
11222         source, add a signal for when we switch between playing from the
11223         source and from the queue.
11224         (rb_shell_player_set_property): Handle playing directly from the
11225         queue so we stop once the queue is empty.  Create queue play order
11226         when we get the queue source.
11227         (rb_shell_player_get_playing_source): Return the source we're actually
11228         playing from.
11229         (rb_shell_player_get_playing_entry): Get playing entry from queue if
11230         that's where it is.
11231         (rb_shell_player_set_playing_entry): Update the queue play order if 
11232         that's where we're playing from.
11233         (rb_shell_player_play_order_update_cb): Take has next/previous for the
11234         queue into consideration too.
11235         (swap_playing_source): Helper function for switching the playing
11236         source.
11237         (rb_shell_player_do_previous): Check the queue, even though there's
11238         never a previous entry in it (yet), swap playing source if it changed.
11239         (rb_shell_player_do_next): Check the queue for entries to play before
11240         the normal play order, and swap playing source if it changed.
11241         (rb_shell_player_do_previous_or_seek): Check the queue for previous
11242         entries to go to as well.
11243         (rb_shell_player_playpause): Check the queue before the selection and
11244         the play order, and swap playing source if it changed.
11245         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
11246         (rb_shell_player_entry_activated_cb): Use
11247         rb_podcast_manager_entry_downloaded, do some tapdancing to make
11248         activating queue entries work properly (move the activated entry to
11249         the start of the queue and then play it); if we were playing from the
11250         queue, clear its playing entry so it'll start again from the start
11251         after the activated entry.
11252         (rb_shell_player_sync_buttons): MusicProperties action handler moved
11253         to rb-shell-clipboard.c
11254         (actually_set_playing_source): Add helper for updating the playing
11255         source.
11256         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
11257         signal if we stop or start doing so; use actually_set_playing_source; 
11258         emit playing-source-changed if we actually did change source.
11260         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
11261         rb_static_playlist_source_add_location.
11263         * sources/rb-library-source.c (rb_library_source_class_init): Allow
11264         enqueueing of songs from the library.
11266         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
11267         enqueueing of sonsg from playlists.
11268         (rb_playlist_source_entry_added_cb): Add extra parameter for
11269         rhythmdb_query_model_add_entry.
11270         
11271         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
11272         Implement (can_)add_to_queue for this class.
11273         (rb_podcast_source_entry_activated): Use
11274         rb_podcast_manager_entry_downloaded.
11275         (impl_can_add_to_queue): Return TRUE if at least one entry that has
11276         been downloaded is selected.
11277         (impl_add_to_queue): Only add downloaded entries to the queue.
11279         * sources/rb-source.{c,h}:
11280         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
11281         methods.
11282         (rb_source_class_init): Don't allow enqueueing by default; implement 
11283         add_to_queue though.
11284         (default_add_to_queue): Add all selected entries to the queue.
11285         
11286         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
11287         would be playing if there wasn't anything in the queue).
11288         (set_source_playing): Helper function for manipulating tree store.
11289         (rb_sourcelist_set_playing_source): Use set_source_playing
11290         (rb_sourcelist_preempt_playing_source): Update preempted source
11291         pointer, manipulate source states.
11293         * sources/rb-static-playlist-source.{c,h}:
11294         (rb_static_playlist_source_add_location_internal),
11295         (rb_static_playlist_source_add_location),
11296         (rb_static_playlist_source_add_entry): Add index parameter for
11297         specifying where in the playlist the new entry goes.
11298         (rb_static_playlist_source_new_from_xml), (impl_paste),
11299         (rb_static_playlist_source_add_list_uri),
11300         (rb_static_playlist_source_add_location_swapped),
11301         (rb_static_playlist_source_add_locations),
11302         (rb_static_playlist_source_non_entry_dropped),
11303         (rb_static_playlist_source_row_inserted):
11304         Handle new index parameter everywhere it appears
11305         (rb_static_playlist_source_move_entry): New method for moving entries
11306         around in the playlist.
11308         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
11309         warnings when trying to scroll entry views that have never been
11310         displayed.
11312         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
11313         play order that removes the old entry when switching to a new one.
11315         * sources/rb-play-queue-source.{c,h}: New files, implementing a
11316         static playlist subclass that has a second entry view for the sidebar
11317         view using alternate formatting, and that displays the number of
11318         entries it contains in its source list entry.
11320 2005-12-10  James Livingston  <jrl@ids.org.au>
11322         * rhythmdb/rhythmdb-query-model.c:
11323         (rhythmdb_query_model_add_entry),
11324         (rhythmdb_query_model_drag_data_received):
11325         * sources/rb-static-playlist-source.c:
11326         (rb_static_playlist_source_non_entry_dropped): when things are
11327         dropped, ignore any blank lines in the list of uris. Make the source
11328         responsible for adding new items to the db.
11330         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
11331         empty string.
11333 2005-12-10  James Livingston  <jrl@ids.org.au>
11335         * shell/rb-shell-player.c: (rb_shell_player_set_property),
11336         (rb_shell_player_sync_buttons),
11337         (rb_shell_player_selection_changed_cb): watch for the
11338         "selection-changed" signal, so that the Song Properties get enabled.
11339         Closes bug 323694.
11341 2005-12-10  James Livingston  <jrl@ids.org.au>
11343         * data/rhythmbox.schemas: fix the gconf schema
11345 2005-12-10  James Livingston  <jrl@ids.org.au>
11347         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
11348         the decoded-pad callback with gstreamer 0.8, it causes problems.
11350 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11352         Remove more junk from RBEntryView. Closes bug 323640.
11354         * widgets/rb-entry-view.{c,h}:
11355         Remove unused private structure members, replace 'playing' boolean
11356         with an enum (so we know if we're paused too), and store a pointer to
11357         the RBShellPlayer too.  
11358         (rb_entry_view_class_init), (rb_entry_view_set_property),
11359         (rb_entry_view_get_property):
11360         Remove 'entry-selected' and 'changed' signals and
11361         'playing-entry' property, add 'selection-changed' signal and
11362         'shell-player' and 'playing-state' properties.
11363         (rb_entry_view_new): Take the shell player object reference
11364         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
11365         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
11366         No longer needed, shell player is the place to get this information.
11367         (rb_entry_view_busy), (rb_entry_view_get_duration),
11368         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
11369         (rb_entry_view_get_next_from_entry),
11370         (rb_entry_view_get_previous_from_entry),
11371         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
11372         (rb_entry_view_get_num_entries):
11373         Removed, callers should go to the query model directly.
11374         (rb_entry_view_playing_song_changed): Update active query model, emit
11375         row changed signals to update pixbufs, and scroll to the playing song
11376         when the playing song changes, based on a signal from the shell
11377         player.
11378         (queue_changed_sig), (rb_entry_view_row_changed_cb),
11379         (emit_entry_changed): Evil, removed.
11380         (rb_entry_view_selection_changed_cb): Remove old signals, add new
11381         selection-changed signal.
11382         (rb_entry_view_select_none), (rb_entry_view_select_entry):
11383         Remove selection lock.  It didn't work anyway.
11384         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
11385         (rb_entry_view_emit_row_changed): Simple helper function to emit
11386         row-changed signals.
11388         * widgets/Makefile.am: Entry view needs headers from the shell/
11389         directory.
11390         * widgets/rb-song-info.{c,h}: Use the query model for everything except
11392         scrolling the entry view to show the entry being displayed.
11393         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
11394         'source' property so we can watch for query model changes.
11395         (rb_song_info_finalize): Unref objects, disconnect signal handlers
11396         (rb_song_info_set_property): Watch for query model changes, don't
11397         watch for entry view changes.
11398         (rb_song_info_new): Take source as a parameter, use the source's entry
11399         view unless one was specifically supplied.
11400         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
11401         Use query model rather than entry view to move between songs.
11402         (rb_song_info_update_buttons): Use query model.
11403         (rb_song_info_query_model_changed_cb): Handle query model changes.
11405         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11406         Only one copy of the code to enable/disable the CD burning action
11407         (rb_playlist_manager_playlist_entries_changed):
11408         Use the query model to get the number of entries, not the entry view.
11410         * shell/rb-play-order-random-by-age-and-rating.c,
11411         shell/rb-play-order-random-by-age.c,
11412         shell/rb-play-order-random-by-rating.c,
11413         shell/rb-play-order-random-equal-weights.c:
11414         Use G_DEFINE_TYPE
11416         * shell/rb-shell-player.{c,h}:
11417         Remove a few unused entries from the structure.
11418         (rb_shell_player_set_property):
11419         Don't use the 'changed' signal on the entry view (it's evil)
11420         (rb_shell_player_have_first): No longer needed
11421         (rb_shell_player_play): Just tell the entry view it's playing
11422         (rb_shell_player_playpause): Tell the entry view it's paused
11423         when pausing.
11424         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
11425         (rb_shell_player_property_row_activated_cb):
11426         Get the entry to play using the query model, not the entry view.
11427         (rb_shell_player_sync_buttons): Update entry view state while we're
11428         here.
11429         (rb_shell_player_set_playing_source_internal): Update entry view state
11430         (rb_shell_player_get_playing): Ask the entry view, not the player.
11431         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
11432         and rb_shell_set_window_title work properly, so you get "(Paused)" in
11433         the window title and tray icon tooltip.
11434         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
11436         * sources/rb-iradio-source.c, sources/rb-library-source.c,
11437         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
11438         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
11439         view constructor, pass the source in to the song info widget
11440         constructor.
11442         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
11443         Use 'selection-changed' instead of 'changed', since that's what the
11444         clipboard cares about.
11445         (rb_shell_clipboard_set_source): Don't die if source == NULL
11447 2005-12-10  James Livingston  <jrl@ids.org.au>
11449         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
11450         * sources/rb-playlist-source-recorder.c:
11451         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
11452         stuff not use the deprecated API when compiled against 2.13
11454 2005-12-10  James Livingston  <jrl@ids.org.au>
11456         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11458         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
11459         problem where the genre tag was getting set to the artist. Closes bug
11460         323642.
11462 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11464         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
11465         Return NULL if can't get first iter.
11467         Fixes #323663
11469 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11471         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
11472         updated rb_station_properties_dialog_new API.
11473         (rb_iradio_source_add_from_playlist): New public function.
11474         (rb_iradio_source_first_time_changed): Use add_from_playlist.
11476         * shell/rb-shell.c (new_station_location_added): Handle
11477         iradio location added signal.
11478         (rb_shell_cmd_new_station): Use new iradio station dialog.
11480         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
11481         (rb_station_properties_dialog_new): Don't squeeze new
11482         station functionality into this class.
11483         (rb_station_properties_dialog_response_cb): ditto.
11484         (rb_station_properties_dialog_update_title): Make
11485         consistent with other properties dialogs.
11486         (rb_station_properties_dialog_location_changed_cb): Do nothing.
11488         * iradio/rb-new-station-dialog.[ch]: 
11489         * iradio/Makefile.am: Add new station dialog.
11491         * data/glade/station-new.glade: New file based on
11492         new podcast feed dialog.
11493         * data/glade/station-properties.glade: Updated to
11494         be consistent with song properties dialog.
11496         Fixes #323306.
11498 2005-12-10  James Livingston  <jrl@ids.org.au>
11500         patch by: Ståle Lyngaas <staale@lyngaas.com>
11502         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
11503         submit songs longer than 30 minutes. Fixes bug 323639.
11505 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11507         * shell/rb-shell.c (idle_save_playlist_manager): Use new
11508         async save function.
11509         (rb_shell_finalize): Remove save timeout sources.  Reorder
11510         steps a bit to make saving db and playlists a bit more
11511         failsafe in case something goes wrong later.
11512         (rb_shell_constructor): Keep track of save timeout source.
11513         (add_to_library_response_cb): Keep track of db save timeout source.
11515         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
11516         g_atomic.
11517         (rb_playlist_manager_shutdown): New function to shutdown
11518         threads etc. before exit.
11519         (rb_playlist_manager_finalize): Moved handling outstanding
11520         threads stuff to shutdown since if there are outstanding threads
11521         they hold a ref and finalize is never called.
11522         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
11523         of signal which may be required for sync save.
11524         (rb_playlist_manager_save_playlists_async): Renamed old
11525         save_playlists to save_playlists_async.  Use g_atomic.
11526         (rb_playlist_manager_save_playlists): New function to
11527         perform sync saves (symmetric with RhythmDB API).
11528         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
11530         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
11531         Style consistency anality.
11532         (rhythmdb_finalize): Remove save timeout source.
11533         (rhythmdb_set_property, rhythmdb_get_property) 
11534         (rhythmdb_process_events): More anality and keep track of
11535         save timeout source.
11536         (action_thread_main): No need to call g_thread_exit.
11537         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
11538         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
11539         (write_encoded_gvalue, read_encoded_property): La la la.
11541         Fixes #322940.
11543 2005-12-10  James Livingston  <jrl@ids.org.au>
11545         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
11546         non-audio files.
11548 2005-12-10  James Livingston  <jrl@ids.org.au>
11550         * Makefile.am:
11551         * configure.ac: remove the rpm spec files, so that automake works.
11552         oops
11554         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
11555         locking issue
11557 2005-12-09  James Livingston  <jrl@ids.org.au>
11559         * debian/: try to get cvs to actually remove the files
11561 2005-12-09  James Livingston  <jrl@ids.org.au>
11563         * rhythmbox.spec.in:
11564         * debian/: remove the distro package stuff, they are *really* old, and
11565         downstream manage it anyway.
11567 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
11569         Rework play orders to work off query models rather than 
11570         entry views, and track the playing entry themselves rather
11571         than relying on the entry view to do it.  This makes the entry
11572         view mostly just a widget. Closes bug 323612.
11574         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
11575         Use query model rather than entry view to get the number
11576         of entries in playlists.
11578         * rhythmdb/rhythmdb-query-model.{c.h}
11579         (rhythmdb_query_model_tree_path_to_entry),
11580         (rhythmdb_query_model_iter_to_entry),
11581         (rhythmdb_query_model_get_next_from_entry),
11582         (rhythmdb_query_model_get_previous_from_entry):
11583         New utility functions for iterating through query models.
11584         (rhythmdb_query_model_compute_status_normal):
11585         Have one copy of this code, not four.
11587         * shell/rb-play-order.{c,h}:
11588         Add signals for when next/previous availability changes, and
11589         when the playing entry is removed, and add a property for
11590         the current playing entry.  Add gtkdoc comments too.
11591         (rb_play_order_class_init): Add new property and signals.
11592         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
11593         (rb_play_orer_query_model_changed_cb),
11594         (rb_play_order_query_model_changed): 
11595         Use query model rather than entry view.
11596         (rb_play_order_set_property), (rb_play_order_get_property):
11597         Handle new playing-entry property.  Call playing_entry_changed virtual
11598         method so subclasses can do any processing required.
11599         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
11600         (rb_play_order_set_playing_entry):
11601         Just use the playing-entry property.
11602         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
11603         Utility methods for subclasses.
11604         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
11605         Update next/previous availability, check if the playing entry
11606         was removed.
11607         (default_playing_entry_removed):
11608         Keep the current behaviour of just stopping playback when the 
11609         playing entry is deleted.
11610         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
11611         these for subclasses that don't have go_next/go_previous, but do
11612         have get_next/get_previous.
11613         (rb_play_order_update_have_next_previous): Emit signal if the
11614         availability of next/previous entries has changed.
11616         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
11617         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
11618         Use G_DEFINE_TYPE, replace entry view iterator with query model 
11619         methods.
11620         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
11621         on the last song in the shuffled order, go back to the start. This
11622         means if you press 'play' again you'll get the whole order again, not
11623         just one song.
11625         * shell/rb-shell-player.c:
11626         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
11627         play order rather than the entry view.
11628         (rb_shell_player_set_property): Update the play order when the
11629         selected source changes and we aren't playing anything.
11630         (rb_shell_player_sync_play_order): Copy the playing entry across to
11631         the new play order so playback continues from the same song, and watch
11632         for updates to have_next/have_previous.
11633         (rb_shell_player_play_order_update_cb): Enable/disable the
11634         next/previous actions when next/previous entry availability changes.
11635         (rb_shell_player_jump_to_current): Just use the play order's idea of
11636         what's playing, not the entry view's; if not playing anything, clear
11637         the selection, so when a playlist ends and you hit play again, it'll
11638         start at the start rather than the end.
11639         (rb_shell_player_do_previous): restructure a bit.
11640         (rb_shell_player_do_next): restructure, jump to new playing entry in
11641         an idle handler instead of directly.
11642         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
11643         song if there is one.
11644         (rb_shell_player_playpause): Jump to playing song, don't update the
11645         play order if we got the song from the selection.
11646         (rb_shell_player_playing_entry_deleted_cb): Not needed.
11647         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
11648         looks after next/previous actions now.  Don't break if called while
11649         there is no selected source.
11650         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
11651         (rb_shell_player_set_playing_source_internal),
11652         (rb_shell_player_error): No need to track the attempted playing entry
11653         any more, since the play order does that.
11655         * shell/rb-shell.c:
11656         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
11657         rb_shell_player_get_playing_entry rather than going through the entry
11658         view.
11660         * shell/rb-statusbar.c (rb_statusbar_set_property),
11661         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
11662         than the entry view for status bar text changes.
11663         (rb_statusbar_sync_status): Ask the query model directly
11665         * sources/rb-source.{c}: Add query model property.
11666         (default_get_status): Get status text from query model, should be
11667         suitable for most sources.
11668         (rb_source_set_property): Listen for changes to the query model 
11669         to update the status text.
11670         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
11671         (idle_emit_status_changed): Emit status-changed signals when query
11672         model changes. 
11674         * sources/rb-library-source.c, sources/rb-podcast-source.c:
11675         (impl_get_status): Not needed, RBSource does this now
11676         (rb_library_source_do_query) (rb_podcast_source_do_query): 
11677         Update RBSource's query model reference.
11679         * sources/rb-playlist-source.c:
11680         Remove query-model property, since RBSource has one now
11681         (impl_get_status): Not needed, RBSource does this now
11682         (rb_playlist_source_row_deleted): Use query model iterator helper
11683         function.
11684         (rb_playlist_source_set_query_model): Update RBSource's query model
11685         reference too.
11687         * sources/rb-iradio-source.c:
11688         (impl_get_status): Ask the query model directly.
11689         (rb_iradio_source_do_query): Update RBSource's query model reference
11690         when we create a new query.
11692         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
11693         Use query model rather than entry view.
11695         * widgets/rb-entry-view.{c,h}: 
11696         Remove playing_entry_deleted signal (now in play order).
11697         (entry_from_tree_path), (entry_from_tree_iter): Not needed
11698          as RhythmDBQueryModel has equivalent helper functions.
11699         (rb_entry_view_*): Use query model helpers instead of the above two
11700         functions.
11702 2005-12-09  James Livingston  <jrl@ids.org.au>
11704         * configure.ac:
11705         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
11706         (rb_recorder_enabled):
11707         * shell/rb-removable-media-manager.c: (poll_tray_opened):
11708         * sources/rb-playlist-source-recorder.c:
11709         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
11710         whether libnautilusburn has the _drive_unref function, and if so use
11711         it. Stops it complaining about deprecated API.
11713 2005-12-09  James Livingston  <jrl@ids.org.au>
11715         * configure.ac: drop the minimum gstreamer version back down, it
11716         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
11718 2005-12-09  James Livingston  <jrl@ids.org.au>
11720         * widgets/rb-song-info.c: (rb_song_info_class_init),
11721         (rb_song_info_show), (rb_song_info_constructor),
11722         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
11723         (rb_song_info_forward_clicked_cb): save metadata changes when the
11724         Next/Previous buttons are pressed (closes bug 320952). use
11725         G_DEFINE_TYPE.
11727 2005-12-09  James Livingston  <jrl@ids.org.au>
11729         Patch by: <jonathan@kaolin.hn.org>
11731         * sources/rb-iradio-source.c:
11732         (stations_view_drag_data_received_cb):
11733         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
11734         of urls. Fixes bug 323610.
11736 2005-12-09  James Livingston  <jrl@ids.org.au>
11738          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
11739          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
11741         * configure.ac:
11742         * metadata/rb-metadata-gst.c:
11743         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
11744         (rb_player_construct), (rb_player_new):
11745         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
11746         (rb_recorder_gst_signal_error), (pipe_message),
11747         (rb_recorder_new_pad_cb), (rb_recorder_construct),
11748         (rb_recorder_new):
11749         * shell/main.c: (main):
11750         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
11751         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
11753 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11755         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
11757         * shell/rb-playlist-manager.c:
11758           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
11759           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
11760           (rb_playlist_manager_set_automatic_playlist),
11761           (rb_playlist_manager_cmd_new_automatic_playlist),
11762           (rb_playlist_manager_cmd_edit_automatic_playlist):
11763            Use new playlist subclasses.
11764           (rb_playlist_manager_save_playlists): Only read the dirty flag
11765            for local playlists, minor pointless reformatting
11767         * sources/Makefile.am: add new files
11769         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
11770           split lots of stuff out into two
11771           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
11772           make RBPlaylistSource abstract, add virtual methods for showing a
11773           popup for the entry view and saving the playlist to XML.
11774           Other stuff is subclass-specific, or already virtual in RBSource.
11776         * sources/rb-playlist-xml: Define playlist XML tags and attributes
11777           in one place, since they're used across three source files now
11779         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
11780           Use new static playlist class
11782         * sources/rb-ipod-source.c: (add_rb_playlist):
11783           Use new static playlist class
11785         * sources/rb-static-playlist-source.{c,h},
11786         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
11787         files.
11789         * po/POTFILES.in: add new files
11791 2005-12-07  James Livingston  <jrl@ids.org.au>
11793         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
11794         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
11795         metadata loads not attempt to write changes to disk.
11797 2005-12-07  James Livingston  <jrl@ids.org.au>
11799         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11801         * data/glade/song-info-multiple.glade:
11802         * widgets/rb-song-info.c: (rb_song_info_constructor),
11803         (rb_song_info_sync_entries_multiple): allow the year to be changed on
11804         multiple songs at once.
11806 2005-12-06  James Livingston  <jrl@ids.org.au>
11808         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
11809         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
11811 2005-12-06  James Livingston  <jrl@ids.org.au>
11813         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
11814         names rather than adding a horizontal scroll bar.
11816 2005-12-06  James Livingston  <jrl@ids.org.au>
11818         * rhythmdb/rhythmdb-query-model.c:
11819         (rhythmdb_query_model_update_limited_entries),
11820         (rhythmdb_query_model_drag_data_received): remove some pointless debug
11821         messages
11823         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
11824         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
11825         always hide rather than remove DB entries, which will make RB not lose
11826         information when tag editing happens or people move files to trash and
11827         then change their mind. Also fix some races where the monitoring code
11828         would notice the temporary files generated by saving metadata.
11830 2005-12-05  William Jon McCann  <mccann@jhu.edu>
11832         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
11833         Hide internals and add tooltips.
11834         (rb_song_display_box_size_allocate): Hide internals.
11835         (sanitize_string, info_url): Copied from rb-header.
11836         (rb_song_display_box_sync): New public function.
11838         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
11839         (rb_header_init): Use a separate row for the seek bar.
11840         (rb_header_finalize): Don't unref widgets.
11841         (rb_header_sync): Use rb_song_display_box_sync.
11842         (rb_header_set_urldata)
11843         (rb_header_set_show_artist_album): Hide instead of remove widgets.
11844         (rb_header_set_show_position_slider): Set visibility of seek bar.
11845         (rb_header_set_show_timeline): Set sensitivity of seek bar.
11846         (rb_header_get_elapsed_string): Don't shift when you first start playback.
11848         * shell/rb-statusbar.c (rb_statusbar_init)
11849         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
11851         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
11852         (rb_shell_constructor): Remove hseparator.  Monitor
11853         toolbar visibility settings.  Add toolbar.  Add
11854         volume button to toolbar.  Add tooltips for volume button.
11855         (rb_shell_view_toolbar_changed_cb) 
11856         (rb_shell_sync_toolbar_visibility)
11857         (toolbar_visibility_changed_cb): Set visibility of
11858         toolbar.
11859         (rb_shell_sync_smalldisplay): Set the toolbar style to
11860         icons only when in small display mode.
11861         (rb_shell_volume_widget_changed_cb): Save volume setting.
11863         * shell/rb-shell-player.c (rb_shell_player_constructor):
11864         Remove pause and stop actions.  Make play action "important"
11865         so that text is visible in horizontal toolbar position.
11866         Remove control buttons.
11867         (rb_shell_player_init) 
11868         (rb_shell_player_sync_song_position_slider_visibility):
11869         Set visbibility of seek bar.
11870         (rb_shell_player_cmd_play, rb_shell_player_playpause):
11871         Make play action a toggle.
11872         (rb_shell_player_sync_volume): Volume control moved
11873         to player.
11874         (gconf_song_position_slider_visibility_changed):
11875         Set visbibility of seek bar.
11876         (rb_shell_player_sync_buttons):
11877         Set sensitivity of actions instead of buttons.
11878         (rb_shell_player_playing_changed_cb): Add callback
11879         for player notify::playing changes.
11881         * lib/rb-preferences.h: Add hide toolbar and seek
11882         bar key names.
11884         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
11885         seek bar menu items.  Remove pause and stop actions
11886         from the control menu.  Add a toolbar.
11888         * data/rhythmbox.schemas: Add toolbar_hidden
11889         song_position_slider_hidden keys.
11891         Patch by: James Livingston  <jrl@ids.org.au>
11892                   William Jon McCann  <mccann@jhu.edu>
11893         Fixes #316238.
11895 2005-12-05  James Livingston  <jrl@ids.org.au>
11897         * data/glade/library-prefs.glade:
11898         * data/rhythmbox.schemas:
11899         * lib/rb-preferences.h:
11900         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
11901         (rhythmdb_sync_library_location):
11902         * sources/rb-library-source.c: (rb_library_source_class_init),
11903         (rb_library_source_finalize), (rb_library_source_constructor),
11904         (impl_get_config_widget), (rb_library_source_preferences_sync),
11905         (rb_library_source_watch_toggled_cb): allow people to disable library
11906         monitoring, because with nothing set the file chooser button selects
11907         the Home folder (and hence that will get monitored).
11909 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
11911         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
11912         attempt to fix problem with RSS parsing showing invalid feed types.
11913         Fixes bug 323153
11915 2005-12-04  James Livingston  <jrl@ids.org.au>
11917         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
11918         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
11919         importing a remote directory not block the UI.
11921 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
11923         * data/glade/podcast-feed-properties.glade:
11924         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
11926 2005-12-04  James Livingston  <jrl@ids.org.au>
11928         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
11930         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
11931         to && to fix a mistake in the earlier podcast patch.
11933 2005-12-03  James Livingston  <jrl@ids.org.au>
11935         * data/glade/podcast-new.glade:
11936         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
11937         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
11939         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
11940         GValue, which stops occasional errors.
11942         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
11943         compile issue.
11945 2005-12-03  James Livingston  <jrl@ids.org.au>
11947         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
11949         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
11950         crasher with some podcasts feeds.
11952 2005-12-03  James Livingston  <jrl@ids.org.au>
11954         * data/rhythmbox.schemas: fix the gconf schema
11956 2005-12-03  James Livingston  <jrl@ids.org.au>
11958         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
11959         add a selection timeout to the sourcelist. This lets you hold a track
11960         over the playlist source, and then have the view switch so you can
11961         insert the track in the middle of the playlist. Closes bug 323044.
11963         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
11964         (select_on_drag_timeout), (remove_select_on_drag_timeout),
11965         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
11966         (rb_tree_dnd_add_drag_dest_support):
11967         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
11968         timeout.
11970         * sources/rb-sourcelist-model.c:
11971         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
11972         the source list.
11974 2005-12-02  Bastien Nocera  <hadess@hadess.net>
11976         * data/glade/audioscrobbler-prefs.glade: add a space before the web
11977         links, so that the text doesn't touch the button
11979 2005-12-02  James Livingston  <jrl@ids.org.au>
11981         Add full support for gnome-vfs remote files. Closes bug 140355.
11983         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
11984         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
11985         for authentication information from the user doesn't block the UI.
11987         (rhythmdb_entry_set_visibility): don't emit the signal twice.
11989         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
11990         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
11991         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
11992         (rhythmdb_process_stat_event), (emit_load_error_idle),
11993         (rhythmdb_process_metadata_load),
11994         (rhythmdb_process_queued_entry_set_event),
11995         (rhythmdb_process_file_created_or_modified),
11996         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
11997         (queue_stat_uri), (add_thread_main),
11998         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
11999         (rhythmdb_load), (rhythmdb_save_thread_main),
12000         (threadsafe_entry_set), (rhythmdb_query_internal),
12001         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
12002         (rhythmdb_do_full_query_internal),
12003         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
12004         (rhythmdb_volume_unmounted_cb),
12005         (rhythmdb_check_changed_file): trivial changes to support the
12006         asynchronous stats.
12008         * shell/main.c: (main): activate the authentication manager.
12010         * shell/rb-playlist-manager.c:
12011         (rb_playlist_manager_cmd_load_playlist),
12012         (rb_playlist_manager_cmd_save_playlist):
12013         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
12014         (rb_shell_cmd_add_file_to_library):
12015         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
12016         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
12017         remote files.
12019 2005-12-02  James Livingston  <jrl@ids.org.au>
12021         * shell/rb-playlist-manager.c: makes playlist menu items use the
12022         elipses correctly. Fixes bug 322283.
12024 2005-12-02  James Livingston  <jrl@ids.org.au>
12026         * shell/rb-playlist-manager.c:
12027         (rb_playlist_manager_load_playlists): fix silly mistake
12029 2005-12-02  James Livingston  <jrl@ids.org.au>
12031         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
12032         print out metadata-write unless --debug was passed.
12034         * rhythmdb/rhythmdb.c: (rhythmdb_load):
12035         * shell/rb-playlist-manager.c:
12036         (rb_playlist_manager_load_playlists): block writes to disk if they are
12037         still being loaded.
12039 2005-12-02  James Livingston  <jrl@ids.org.au>
12041         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
12042         ctrl-T, because Ctrl-D is used by "small mode"
12044 2005-12-02  James Livingston  <jrl@ids.org.au>
12046         * shell/rb-shell-preferences.c:
12047         (rb_shell_preferences_append_view_page):
12048         * sources/rb-library-source.c: (impl_get_config_widget):
12049         * sources/rb-podcast-source.c: (impl_get_config_widget):
12050         * sources/rb-source.c: (rb_source_get_config_widget):
12051         * sources/rb-source.h: Make the preference actually work.
12053         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
12054         if Rhythmbox is being run for the first time.
12056 2005-12-02  James Livingston  <jrl@ids.org.au>
12058         Add support for Rhythmbox to watch your library, and automatically add
12059         new tracks. Fixes bug 160159.
12061         * data/glade/library-prefs.glade: add "library location" preference
12062         * data/rhythmbox.schemas: add gconf key for the library location
12064         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
12065         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
12066         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
12067         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
12068         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
12069         (rhythmdb_load_thread_main), (rhythmdb_load),
12070         (monitor_subdirectory), (monitor_library_directory),
12071         (monitor_entry_file), (rhythmdb_sync_library_location),
12072         (library_location_changed_cb), (rhythmdb_check_changed_file),
12073         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
12074         specifiec in the gconf key for new additions. Also fix monitoring code
12075         so that it works properly, and notices deletions.
12077         * lib/rb-preferences.h:
12078         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
12079         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
12080         * shell/rb-audioscrobbler.h:
12081         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
12082         (rb_shell_preferences_append_view_page),
12083         (rb_shell_preferences_new):
12084         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
12085         it's preferences pane, so that we don't need #ifdef's through
12086         rb-shell-preferences.
12088         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
12089         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
12090         "preferences" property, so that sources can acccess it. This is needed
12091         because the library location pref needs to take effect when the window
12092         is closed.
12094         * sources/rb-library-source.c:
12095         (rb_library_source_library_location_changed),
12096         (rb_library_source_dispose), (rb_library_source_finalize),
12097         (rb_library_source_constructor), (impl_get_config_widget),
12098         (rb_library_source_preferences_sync),
12099         (rb_library_source_process_library_location_change),
12100         (rb_library_source_prefs_update),
12101         (rb_library_source_process_library_handle_selection),
12102         (rb_library_source_library_location_cb): set up and control the
12103         "library location" preference.
12105         * sources/rb-audiocd-source.c:(rb_source_class_init):
12106         * sources/rb-source.c: (rb_source_class_init): remove some pointless
12107         code.
12109 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12111         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
12112         (rb_feed_podcast_properties_dialog_update_title): 
12113         * data/glade/podcast-feed-properties.glade:
12114         Make the feed properties dialog consistent with the podcast
12115         properties dialog.
12117 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12119         * metadata/.cvsignore: 
12120         * po/.cvsignore: 
12121         * podcast/.cvsignore: Updated.
12123         * shell/main.c (main): Support DBus 0.6 flags.
12125 2005-11-30  Bastien Nocera  <hadess@hadess.net>
12127         * data/ui/rhythmbox-ui.xml:
12128         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
12129         (rhythmbd_entry_move_to_trash_set_error),
12130         (rhythmdb_entry_move_to_trash):
12131         * rhythmdb/rhythmdb.h:
12132         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
12133         (rb_shell_clipboard_cmd_delete),
12134         (rb_shell_clipboard_cmd_move_to_trash):
12135         * sources/rb-library-source.c: (rb_library_source_class_init),
12136         (impl_delete), (impl_move_to_trash):
12137         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12138         (impl_delete), (impl_move_to_trash):
12139         * sources/rb-removable-media-source.c:
12140         (rb_removable_media_source_class_init):
12141         * sources/rb-source.c: (rb_source_class_init),
12142         (rb_source_can_move_to_trash), (rb_source_delete),
12143         (rb_source_move_to_trash):
12144         * sources/rb-source.h:
12145         Add move_to_trash member for the sources, implement move to trash for
12146         the library and playlists
12147         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
12148         local files to the trash, and deleting them from the database
12149         (Closes: #315389)
12151 2005-11-30  William Jon McCann  <mccann@jhu.edu>
12153         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
12154         (rb_tray_icon_init, rb_tray_icon_finalize): 
12155         * shell/rb-statusbar.c (rb_statusbar_class_init) 
12156         (rb_statusbar_init, rb_statusbar_finalize): 
12157         * shell/rb-source-header.c (rb_source_header_class_init) 
12158         (rb_source_header_init, rb_source_header_finalize): 
12159         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
12160         (rb_shell_finalize): 
12161         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
12162         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
12163         * shell/rb-shell-player.c (rb_shell_player_class_init) 
12164         (rb_shell_player_init, rb_shell_player_finalize): 
12165         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
12166         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
12167         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
12168         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
12169         * shell/rb-play-order.c (rb_play_order_class_init) 
12170         (rb_play_order_init, rb_play_order_finalize): 
12171         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
12172         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
12173         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
12174         (rb_random_play_order_init, rb_random_play_order_finalize): 
12175         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
12176         (rb_history_finalize): 
12177         * shell/rb-commander.c (rb_commander_class_init) 
12178         (rb_commander_init, rb_commander_finalize): 
12179         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
12180         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
12181         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
12182         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
12183         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
12184         (rb_podcast_properties_dialog_init) 
12185         (rb_podcast_properties_dialog_finalize): 
12186         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
12187         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
12188         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
12189         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
12190         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
12191         (rb_feed_podcast_properties_dialog_init) 
12192         (rb_feed_podcast_properties_dialog_finalize): 
12193         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
12194         (rb_metadata_init, rb_metadata_finalize): 
12195         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
12196         (rb_station_properties_dialog_init) 
12197         (rb_station_properties_dialog_finalize): 
12198         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
12199         (rb_daap_share_init, rb_daap_share_dispose): 
12201         Use g_type_class_add_private in all classes. Closes bug 313688.
12202         
12203 2005-11-30  James Livingston  <jrl@ids.org.au>
12205         patch by: William Jon McCann <mccann@jhu.edu> to use
12206         g_type_class_add_private in all classes. Closes bug 313688.
12208         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
12209         (rb_thread_finalize):
12210         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
12211         (rb_player_finalize):
12212         * rhythmdb/rhythmdb-property-model.c:
12213         (rhythmdb_property_model_class_init),
12214         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
12215         * rhythmdb/rhythmdb-query-model.c:
12216         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
12217         (rhythmdb_query_model_finalize):
12218         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
12219         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
12220         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
12221         (rhythmdb_finalize):
12222         * sources/rb-daap-source.c: (rb_daap_source_class_init),
12223         (rb_daap_source_init), (rb_daap_source_dispose):
12224         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12225         (rb_iradio_source_init), (rb_iradio_source_finalize):
12226         * sources/rb-library-source.c: (rb_library_source_class_init),
12227         (rb_library_source_init), (rb_library_source_finalize):
12228         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12229         (rb_playlist_source_init), (rb_playlist_source_dispose):
12230         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
12231         (rb_podcast_source_init), (rb_podcast_source_finalize):
12232         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12233         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
12234         * sources/rb-sourcelist-model.h:
12235         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12236         (rb_sourcelist_init), (rb_sourcelist_finalize):
12237         * sources/rb-sourcelist.h:
12238         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
12239         * widgets/rb-cell-renderer-rating.c:
12240         (rb_cell_renderer_rating_init),
12241         (rb_cell_renderer_rating_class_init),
12242         (rb_cell_renderer_rating_finalize):
12243         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
12244         (rb_druid_finalize):
12245         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12246         (rb_entry_view_init), (rb_entry_view_finalize):
12247         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
12248         (rb_header_finalize):
12249         * widgets/rb-load-failure-dialog.c:
12250         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
12251         (rb_load_failure_dialog_finalize):
12252         * widgets/rb-property-view.c: (rb_property_view_class_init),
12253         (rb_property_view_init), (rb_property_view_finalize):
12254         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
12255         (rb_rating_finalize):
12256         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
12257         (rb_search_entry_init), (rb_search_entry_finalize):
12258         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12259         (rb_simple_view_init), (rb_simple_view_finalize):
12260         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
12261         (rb_song_display_box_init), (rb_song_display_box_finalize):
12262         * widgets/rb-song-info.c: (rb_song_info_class_init),
12263         (rb_song_info_init), (rb_song_info_finalize):
12264         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
12265         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
12267 2005-11-30  James Livingston  <jrl@ids.org.au>
12269         * iradio/rb-station-properties-dialog.c:
12270         (rb_station_properties_dialog_init),
12271         (rb_station_properties_dialog_new):
12272         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
12273         * lib/rb-glade-helpers.h:
12274         * podcast/rb-feed-podcast-properties-dialog.c:
12275         (rb_feed_podcast_properties_dialog_init),
12276         (rb_feed_podcast_properties_dialog_new):
12277         * podcast/rb-podcast-properties-dialog.c:
12278         (rb_podcast_properties_dialog_init),
12279         (rb_podcast_properties_dialog_new):
12280         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
12281         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
12282         * sources/rb-library-source.c: (impl_get_config_widget):
12283         * sources/rb-playlist-source-recorder.c:
12284         (rb_playlist_source_recorder_init):
12285         * widgets/rb-song-info.c: (rb_song_info_construct_single),
12286         (rb_song_info_constructor): create a single rb_glade_boldify_label()
12287         in rb-glade-helpers, rather than having eight implementation
12288         throughout the code.
12290 2005-11-30  James Livingston  <jrl@ids.org.au>
12292         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
12293         * lib/rb-util.h:
12294         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
12295         move the duration->string function into rb-utils, as it gets used in a
12296         few places.
12298         patch by: William Jon McCann <mccann@jhu.edu>
12300         * data/glade/podcast-properties.glade:
12301         * podcast/rb-podcast-properties-dialog.c:
12302         (rb_podcast_properties_dialog_init),
12303         (rb_podcast_properties_dialog_update),
12304         (rb_podcast_properties_dialog_update_title),
12305         (rb_podcast_properties_dialog_update_feed),
12306         (rb_podcast_properties_dialog_update_duration),
12307         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
12308         info dialog look more like the song info dialog. Use the same "Feed"
12309         value that is displayed in the treeview (ie. the album field), displays
12310         the duration, uses units in the bitrate field, and sort the fields in
12311         the same order.
12313 2005-11-29  James Livingston  <jrl@ids.org.au>
12315         * rhythmdb/rhythmdb-marshal.list:
12316         * rhythmdb/rhythmdb.h:
12317         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
12318         (emit_load_error_idle), (rhythmdb_process_metadata_load),
12319         (entry_to_rb_metadata), (emit_save_error_idle),
12320         (action_thread_main): emit error signal when metadata write fails.
12322         * shell/rb-shell.c: (rb_shell_constructor),
12323         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
12324         "metadata save" error and display it to the user.
12326 2005-11-29  James Livingston  <jrl@ids.org.au>
12328         * data/ui/rhythmbox-ui.xml:
12329         * sources/rb-podcast-source.c:
12330         (rb_podcast_source_songs_show_popup_cb),
12331         (rb_podcast_source_cmd_download_post),
12332         (rb_podcast_source_cmd_cancel_download): split download and cancel
12333         download commands. Replace usage of "Post" with "Esisode". Fixes bug
12334         321653.
12336 2005-11-18  William Jon McCann  <mccann@jhu.edu>
12338         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
12339         title on alert dialogs per the HIG.
12341         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
12342         the term Burn.
12343         (free_song_list): Routine to free song list.
12344         (rb_playlist_source_recorder_finalize): Use free_song_list.
12345         (rb_playlist_source_recorder_add_from_model): Return FALSE
12346         if unable to add all songs.  Check that duration of all
12347         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
12348         Fixes #321753.
12350         * sources/rb-playlist-source-recorder.c (check_media_length)
12351         (rb_playlist_source_recorder_start): Only check the duration
12352         and current media if the playlist length is longer than a
12353         standard CD (74 min).  Otherwise, just let the Recorder do the
12354         check.
12355         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
12356         drive at init.
12357         (rb_recorder_set_device): Don't leak drives.
12358         (rb_recorder_get_media_length): Use drive that was already set.
12359         (rb_recorder_burn): Let the recorder handle checking media type/size.
12360         Fixes bug 321754.
12362 2005-11-29  James Livingston  <jrl@ids.org.au>
12364         * rhythmdb/rhythmdb-query-model.c:
12365         (rhythmdb_query_model_set_sort_order):
12366         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
12367         emitting the tree-model "resorted" signal.
12369         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12370         (rb_entry_view_finalize), (rb_entry_view_set_property),
12371         (rb_entry_view_constructor), (rb_entry_view_resort_model):
12372         * widgets/rb-entry-view.h: add a function to resort the entry view,
12373         using the above function.
12375         * sources/rb-iradio-source.c:
12376         (rb_iradio_source_songs_view_sort_order_changed_cb):
12377         * sources/rb-library-source.c: (rb_library_source_finalize),
12378         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
12379         * sources/rb-playlist-source.c:
12380         (rb_playlist_source_songs_sort_order_changed_cb):
12381         * sources/rb-podcast-source.c:
12382         (rb_podcast_source_posts_view_sort_order_changed_cb),
12383         (rb_podcast_source_do_query): use the above function instead of
12384         re-creating the query model. This makes changing the sorting an order
12385         of magnitude faster, as it uses a single resorted signal rather than
12386         deleting and re-adding everything (which emits 2N signals). Closes bug
12387         315389.
12389 2005-11-29  James Livingston  <jrl@ids.org.au>
12391         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
12392         autosizing, which results in large speedups. Closes bug 312122.
12394         * po/ja.po: change the date format, so that it is a constant width
12396         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
12397         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
12398         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
12399         (rb_entry_view_constructor): make columns use fixed widths,
12400         disable column autosizing, and enable fixed-height mode.
12402         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
12403         (rb_entry_view_get_time_date_column_sample):
12404         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
12405         and get the canonical date format for the locale.
12407 ============ Version 0.9.2
12409 2005-11-28  James Livingston  <jrl@ids.org.au>
12411         * configure.ac: bump version to 0.9.2
12412         * NEWS: update with changes for 0.9.2
12414 2005-11-28  James Livingston  <jrl@ids.org.au>
12416         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12418         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
12419         Disable saving, renaming and delting for DAAP playlists.
12420         Fixes bug 322627.
12422 2005-11-28  James Livingston  <jrl@ids.org.au>
12424         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
12425         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
12426         prevent bug 322619.
12428         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12429         * sources/rb-removable-media-source.c:
12430         (rb_removable_media_source_class_init): fix ipod browser visibility
12431         problem.
12433 2005-11-28  James Livingston  <jrl@ids.org.au>
12435         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
12436         Avahi 0.6 support actually work. Fixes bug 322519.
12438 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
12440         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
12441         avahi is specified in --with-mdns
12443 2005-11-27  James Livingston  <jrl@ids.org.au>
12445         patch by: Bastien Nocera <hadess@hadess.net>
12447         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
12448         not the private one. Fixes bug 322485.
12450 2005-11-26  James Livingston  <jrl@ids.org.au>
12452         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
12453         Avahi 0.6, as well as 0.5.
12455         * configure.ac:
12456         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
12457         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
12458         (add_service):
12460 2005-11-25  James Livingston  <jrl@ids.org.au>
12462         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
12463         321926.
12465 2005-11-25  James Livingston  <jrl@ids.org.au>
12467         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
12468         correct type for checking the date against 0. Stops a warning when
12469         saving metadata.
12471 2005-11-25  James Livingston  <jrl@ids.org.au>
12473         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
12474         adjustment to be inside the element's limits. Without this songs that
12475         have large ReplayGain values will recieve no increase because they are
12476         outside the acceptable range, causing them to remain quiet.
12478 2005-11-25  James Livingston  <jrl@ids.org.au>
12480         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12481         * sources/rb-daap-source.c: (rb_daap_source_class_init):
12482         * sources/rb-ipod-source.c:
12483         * sources/rb-source.h:
12484         * sources/rb-library-source.h:
12485         * sources/rb-library-source.c: (rb_library_source_class_init),
12486         (rb_library_source_constructor),
12487         (rb_library_source_has_first_added_column),
12488         (rb_library_source_has_drop_support):
12489         * sources/rb-removable-media-source.c:
12490         (rb_removable_media_source_class_init): Make library-derived sources
12491         not show the Date Added column, as it doesn't make sense. Fixes bug
12492         322269.
12493         Move some of the feature funcs from the ipod and audio cd sources up to
12494         the removable media source.
12496 2005-11-24  James Livingston  <jrl@ids.org.au>
12498         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
12499         errors. oops.
12501 2005-11-24  James Livingston  <jrl@ids.org.au>
12503         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12504         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
12505         (rb_iradio_source_constructor): Chain up dispose method and use
12506         G_DEFINE_TYPE
12508 2005-11-24  James Livingston  <jrl@ids.org.au>
12510         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
12511         mistake in the last commit that can cause crashes.
12513 2005-11-24  James Livingston  <jrl@ids.org.au>
12515         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
12516         instead of g_printerr.
12518         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
12519         rb_debug instead of g_warning. The message happens every time for
12520         removable media/daap shares, so it's not unusual.
12522 2005-11-24  James Livingston  <jrl@ids.org.au>
12524         patch by: Tom Parker <palfrey@tevp.net>
12526         * configure.ac: fix libsoup test for enabling daap
12528 2005-11-23  James Livingston  <jrl@ids.org.au>
12530         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
12531         (rb_query_creator_init), (rb_query_creator_constructor),
12532         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
12533         empty row to queries with no criteria. Fixes bug 322078. use
12534         G_DEFINE_TYPE.
12536 2005-11-23  James Livingston  <jrl@ids.org.au>
12538         patch by:  <baptiste.millemathias@gmail.com>
12540         * help/C/quick-reference.xml: update the quick reference to have the
12541         correct key bindings.
12543 2005-11-22  James Livingston  <jrl@ids.org.au>
12545         * sources/rb-library-source.c: (genres_selection_reset_cb),
12546         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
12547         reset the query when all browser selections are removed.
12549 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
12551         * podcast/rb-podcast-manager.c:
12552         (rb_podcast_manager_db_entry_deleted_cb):
12553         Use a custom loop to remove podcast posts, rather than
12554         gtk_tree_model_foreach(), as deleting the entries within
12555         that loop causes the iterator to return the first entry
12556         twice.  Instead, we need to find the next entry before
12557         removing the current one. Fixes bug 321956.
12558         (rb_podcast_manager_entry_remove_cb): No longer needed.
12560 2005-11-22  James Livingston  <jrl@ids.org.au>
12562         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12563         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
12564         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
12566 2005-11-22  James Livingston  <jrl@ids.org.au>
12568         * sources/rb-podcast-source.c:
12569         (rb_podcast_source_post_date_cell_sort_func),
12570         (rb_podcast_source_post_status_cell_sort_func),
12571         (rb_podcast_source_post_feed_cell_sort_func):
12572         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
12573         (rb_entry_view_album_sort_func),
12574         (rb_entry_view_double_ceiling_sort_func),
12575         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
12576         the entry's location as a last resort when sorting, so the sort order
12577         is stable. This will stop entries moving around when two entries have
12578         the same sorting, and one of them gets played.
12580 2005-11-22  James Livingston  <jrl@ids.org.au>
12582         * daapsharing/rb-daap-connection.c:
12583         (rb_daap_connection_class_init), (rb_daap_connection_init),
12584         (connection_get_password), (build_message),
12585         (http_response_handler), (http_get), (handle_server_info),
12586         (handle_login), (handle_update), (handle_database_info),
12587         (handle_song_listing), (handle_playlists),
12588         (handle_playlist_entries), (rb_daap_connection_new),
12589         (rb_daap_connection_constructor), (rb_daap_connection_logout),
12590         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
12591         (rb_daap_connection_get_headers),
12592         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
12593         (rb_daap_connection_set_property),
12594         (rb_daap_connection_get_property):
12595         * daapsharing/rb-daap-connection.h:
12596         * sources/rb-daap-source.c: (rb_daap_source_dispose),
12597         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
12598         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
12599         of destroying the object when it is going to be used by a callback and
12600         fixes a double-free. Fixes bugs 321930 and 322007.
12602 2005-11-22  James Livingston  <jrl@ids.org.au>
12604         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
12605         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
12606         notification if there aren't any. Fixes bug 321968.
12608 2005-11-22  James Livingston  <jrl@ids.org.au>
12610         * rhythmdb/rhythmdb-property-model.c:
12611         (rhythmdb_property_model_set_property),
12612         (rhythmdb_property_model_finalize),
12613         (rhythmdb_property_model_compare),
12614         (rhythmdb_property_model_insert),
12615         (rhythmdb_property_model_delete_prop): Fix property model sorting
12616         where the display and sort keys are different. Fixes bug 321980.
12618 2005-11-22  James Livingston  <jrl@ids.org.au>
12620         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
12621         when import as a file or passed on the command line, and load them as
12622         playlists.
12624 2005-11-22  James Livingston  <jrl@ids.org.au>
12626         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
12628         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
12629         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
12630         a broken daap server. Fixes bug 321919.
12632 2005-11-22  James Livingston  <jrl@ids.org.au>
12634         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
12635         drag-and-drop for both the episodes and feeds list.
12636         
12637         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
12638         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
12639         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
12641         * widgets/rb-property-view.c: (rb_property_view_class_init),
12642         (rb_property_view_set_property), (rb_property_view_get_property),
12643         (rb_property_view_new), (rb_property_view_constructor):
12644         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12645         (rb_simple_view_new), (rb_simple_view_constructor):
12646         * widgets/rb-simple-view.h: add a "draggable" property to property
12647         views and set it to false for the feed list. Fixes bug 321284.
12649 2005-11-22  James Livingston  <jrl@ids.org.au>
12651         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
12653         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
12654         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12655         * sources/rb-ipod-source.c: (add_rb_playlist):
12656         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12657         (rb_playlist_source_set_property),
12658         (rb_playlist_source_get_property), (rb_playlist_source_new),
12659         (impl_receive_drag), (rb_playlist_source_add_location),
12660         (rb_playlist_source_new_from_xml):
12661         * sources/rb-playlist-source.h: give playlists and (optional)
12662         entry-type, and reject entries that don't match. Fixes bug 322006.
12664 2005-11-21  James Livingston  <jrl@ids.org.au>
12666         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
12667         (rb_source_header_finalize): remove the weak references when the
12668         source header is finalised. Stops the callbacks being called after the
12669         object is destroyed.
12671 2005-11-21  James Livingston  <jrl@ids.org.au>
12673         * shell/main.c: (main): don't try to acquite bonobo/dbus when
12674         --no-registration was passed. It causes warnings that make it
12675         impossible to run with --no-registration --g-fatal-warnings
12677 2005-11-21  James Livingston  <jrl@ids.org.au>
12679         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
12680         of strings when they are still in use. Fixes bug 321547.
12682         (rb_daap_connection_destroy): fix memory leak
12684 2005-11-21  James Livingston  <jrl@ids.org.au>
12686         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12687         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
12688         (rb_daap_mdns_resolve_cancel), (publish_cb),
12689         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
12690         support.
12692 2005-11-21  James Livingston  <jrl@ids.org.au>
12694         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
12695         sorting by genre
12697 2005-11-20  James Livingston  <jrl@ids.org.au>
12699         * podcast/rb-podcast-manager.c:
12700         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
12701         that we don't leak thread structures. Fixes bug 321636, and probably
12702         321775.
12704 2005-11-20  James Livingston  <jrl@ids.org.au>
12706         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
12707         (lookup_cd):
12708         * podcast/rb-podcast-manager.c: (start_job),
12709         (rb_podcast_manager_db_entry_deleted_cb),
12710         (rb_podcast_manager_entry_remove_cb):
12711         * podcast/rb-podcast-parse.c: (rb_insert_item),
12712         (rb_podcast_parse_load_feed):
12713         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
12714         * shell/rb-removable-media-manager.c:
12715         (rb_removable_media_manager_append_media_source):
12716         * shell/rb-shell.c: (add_to_library_response_cb):
12717         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
12718         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
12719         * sources/rb-iradio-source.c:
12720         (stations_view_drag_data_received_cb):
12721         * sources/rb-library-source.c: (string_list_equal),
12722         (impl_get_extra_views), (impl_receive_drag):
12723         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
12724         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
12725         (impl_receive_drag):
12726         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
12727         (rb_entry_view_append_column_custom), (harvest_entries):
12728         * widgets/rb-property-view.c:
12729         (rb_property_view_selection_changed_cb):
12730         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
12731         switch from using g_list_append to g_list_prepend. This changes
12732         operations from O(n^2) to O(n), which in cases like deleting a lot of
12733         tracks can give huge improvements in speed. Closes bug 321696.
12735 2005-11-20  James Livingston  <jrl@ids.org.au>
12737         * sources/rb-sourcelist.c: (rb_sourcelist_init),
12738         (rb_sourcelist_update_expander_visibility): fix indenting of child
12739         sources.
12741 2005-11-20  James Livingston  <jrl@ids.org.au>
12743         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12744         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
12745         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
12746         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
12747         (add_service), (entry_group_cb): dynamically allocate memory, rather
12748         than using static variables.
12750         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
12751         re-enable the daap share if the name hasn't changed.
12752         * shell/rb-shell-preferences.c:
12753         (share_name_entry_focus_out_event_cb): don't ask the daap share to
12754         change it's name when the checkbox is disabled. Fixed bug 321748.
12756 2005-11-18  James Livingston  <jrl@ids.org.au>
12758         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
12759         as hidden if it is on the current workspace.
12761 2005-11-17  William Jon McCann  <mccann@jhu.edu>
12763         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
12764         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
12765         (rb_podcast_properties_dialog_parse_time): 
12766         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
12767         (rb_feed_podcast_properties_dialog_parse_time):
12768         Rework the way the last mod time strings are created.  It was using
12769         thread unsafe functions, not creating value UTF, and not not checking
12770         the value of the result before modifying it.  This new method fixes
12771         these problems.
12773 2005-11-18  James Livingston  <jrl@ids.org.au>
12775         Don't reset the search box when viewing a different source, because it
12776         will change what is being played. Closes 321593.
12778         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
12779         the search box
12781         * shell/rb-source-header.c: (rb_source_header_class_init),
12782         (rb_source_header_init), (rb_source_header_finalize): use
12783         G_DEFINE_TYPE.
12785         (rb_source_header_set_property),
12786         (rb_source_header_source_weak_destroy_cb),
12787         (rb_source_header_search_cb): store the search text when leaving a
12788         source and put it in the search box when viewing it again.
12790 2005-11-18  James Livingston  <jrl@ids.org.au>
12792         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
12793         (save_entry):
12794         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
12795         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
12796         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
12797         time stamp.
12799         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
12800         last-seen as the timestamp of the last update of the feed. Don't
12801         re-add episodes that have been deleted. Closes 319759.
12803 2005-11-18  James Livingston  <jrl@ids.org.au>
12805         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
12806         that don't have the day name at the start. Closes 321645.
12808 2005-11-18  James Livingston  <jrl@ids.org.au>
12810         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
12811         (rb_podcast_manager_copy_post),
12812         (rb_podcast_manager_get_podcast_dir):
12813         * podcast/rb-podcast-manager.h:
12814         * sources/rb-podcast-source.c: (impl_get_config_widget),
12815         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
12816         download location switching to / if the prefs were opened before
12817         downloading an episode. Closes 321611.
12819 2005-11-18  James Livingston  <jrl@ids.org.au>
12821         * data/glade/podcast-new.glade:
12822         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12823         (rb_new_podcast_dialog_set_property),
12824         (rb_new_podcast_dialog_get_property),
12825         (rb_new_podcast_dialog_response_cb),
12826         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
12827         for entering new podcast urls in. Closes bug 321610.
12829 2005-11-18  James Livingston  <jrl@ids.org.au>
12831         * sources/rb-podcast-source.c: (construct_query_from_selection),
12832         (rb_podcast_source_do_query): allow podcast list to be re-sorted
12833         without restarting RB. Closes bug 321612.
12835 2005-11-18  James Livingston  <jrl@ids.org.au>
12837         * widgets/rb-entry-view.c: (set_column_visibility),
12838         (rb_entry_view_sync_columns_visible): when changing visibility of one
12839         column, don't hide and re-show all the others. Makes a show/hide
12840         column operation a lot faster.
12842 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
12844         Closes bug 321702.
12846         * iradio/rb-station-properties-dialog.c
12847          (rb_station_properties_dialog_update_bitrate):
12848         Mark the bitrate value as being kbps, using the same
12849         translatable format string as rb-song-info.c
12851         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
12852          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
12854         * shell/rb-shell-player.c (info_available_cb):
12855          Use RB_METADATA_FIELD_BITRATE to update the iradio
12856          station's bitrate value.
12858 2005-11-17  James Livingston  <jrl@ids.org.au>
12860         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
12862         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
12863         free a NULL date.
12865 2005-11-17  James Livingston  <jrl@ids.org.au>
12867         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
12869         * lib/rb-stock-icons.c: emit a single warning rather than multiple
12870         assertions. Lookup the icon size correctly.
12872 2005-11-16  William Jon McCann  <mccann@jhu.edu>
12874         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
12875         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
12876         Fix build errors.
12878 2005-11-16  James Livingston  <jrl@ids.org.au>
12880         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
12881         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
12882         (rb_shell_preferences_sync_column_button): block the toggle signal of
12883         the column checkboxes while setting their initial state. This stops
12884         the visibility being re-set, which causes a lot of time being spent
12885         measuring the columns aagin when opening the prefs window.
12887         Use G_DEFINE_TYPE.
12889 2005-11-16  James Livingston  <jrl@ids.org.au>
12891         * sources/rb-sourcelist.c: (rb_sourcelist_init),
12892         (rb_sourcelist_edit_source_name): don't assume that the editable
12893         source name is in the first column, because it isn't. Fixes bug
12894         320137.
12896 2005-11-16  James Livingston  <jrl@ids.org.au>
12898         * daapsharing/rb-daap-mdns.h:
12899         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
12900         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
12901         parts can know why operations failed. Avahi can report that the daemon
12902         was not running. Howl doesn't do this (yet).
12903         
12904         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
12905         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
12906         (browse_cb): don't display mdns errors to the user, if it wa because
12907         the daemon was not running.
12909 2005-11-16  James Livingston  <jrl@ids.org.au>
12911         * rhythmdb/rhythmdb-property-model.c:
12912         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
12913         (rhythmdb_property_model_compare),
12914         (rhythmdb_property_model_insert),
12915         (rhythmdb_property_model_insert_prop),
12916         (rhythmdb_property_model_delete),
12917         (rhythmdb_property_model_delete_prop),
12918         (rhythmdb_property_model_get_value): use RBRefStrings rather than
12919         copying the string and re-creating the sort key. Saves a little bit of
12920         memory and time.
12922         (rhythmdb_property_model_perform_sync),
12923         (rhythmdb_property_model_sync): perform the count sync in an idle
12924         callback, so that it doesn't have to be re-run once per value when
12925         loading.
12927 2005-11-16  James Livingston  <jrl@ids.org.au>
12929         * rhythmdb/rhythmdb-query-model.c:
12930         (rhythmdb_query_model_entry_deleted_cb),
12931         (rhythmdb_query_model_remove_entry): remove deleted entries from the
12932         limited list. Stops problems if they are deleted, and then things on
12933         the main list are
12935 2005-11-16  James Livingston  <jrl@ids.org.au>
12937         * NEWS: update NEWS
12939         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
12940         button's minimise-to-tray action
12942 2005-11-16  James Livingston  <jrl@ids.org.au>
12944         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
12945         leak. Disable adding newly created files for now, because it doesn't
12946         work properly.
12948         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12949         (rb_sourcelist_model_finalize):
12950         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12951         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
12953 2005-11-16  James Livingston  <jrl@ids.org.au>
12955         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
12956         problem where a GError* wasn't being set to NULL. Actually check the
12957         result.
12959 2005-11-16  James Livingston  <jrl@ids.org.au>
12961         * doc/reference/tmpl/rb-entry-view.sgml:
12962         * doc/reference/tmpl/rhythmbox-unused.sgml:
12963         * doc/reference/tmpl/rhythmdb-query-model.sgml:
12964         * doc/reference/tmpl/rhythmdb.sgml:
12965         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
12966         docs, including the patch that was on bug 
12968         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
12969         API, because it should only be used by RhythmDB itself.
12971 2005-11-16  James Livingston  <jrl@ids.org.au>
12973         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
12974         pausing by middle clicking on the tray icon.
12976 2005-11-15  James Livingston  <jrl@ids.org.au>
12978         * configure.ac: enable audioscrobbler support by default, if libsoup
12979         is present.
12981 2005-11-15  James Livingston  <jrl@ids.org.au>
12983         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12984         Closes bug 321157.
12986         * configure.ac:
12987         * daapsharing/rb-daap-connection.c: (build_message),
12988         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
12989         support gzip encoded daap connections.
12991         (handle_song_listing): fix leak
12993 2005-11-15  James Livingston  <jrl@ids.org.au>
12995         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
12996         * sources/rb-podcast-source.c:
12997         (rb_podcast_source_post_date_cell_data_func): make the date format
12998         translatable again, so that translators can choose the best format for
12999         their locale (%x is huge in some locales)
13001 2005-11-15  James Livingston  <jrl@ids.org.au>
13003         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
13004         (end_job): mark podcast episodes as failed, if the metadata load
13005         fails. This will prevent people playing non-audio enclosures, helping
13006         stop bug 320366.
13008 2005-11-14  James Livingston  <jrl@ids.org.au>
13010         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
13011         video sink to fakesink. This will stop problems (potentially crashers)
13012         that will occur if the file contains a video stream.
13014         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
13015         rather than using magic numbers everywhere.
13017         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
13018         * sources/rb-podcast-source.c:
13019         (rb_podcast_source_songs_show_popup_cb),
13020         (rb_podcast_source_cmd_download_post),
13021         (rb_podcast_source_post_status_cell_data_func),
13022         (rb_podcast_source_entry_activated_cb): use the above constants.
13024         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13025         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
13026         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
13027         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
13028         (cancel_job), (download_progress_cb),
13029         (rb_podcast_manager_cancel_download),
13030         (rb_podcast_manager_insert_feed): use the constants, and fix a
13031         trhead-safety issue.
13033 2005-11-14  Bastien Nocera  <hadess@hadess.net>
13035         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
13036         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
13037         entry-changed events after stats on startup, fixes entry deleted from
13038         filtered views not disappearing
13040 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
13042         Fix rhythmdb query model refcount and polling problems. Closes bug
13043         321410.
13045         * rhythmdb/rhythmdb-property-model.c:
13046         (rhythmdb_property_model_finalize):
13047          Unref the query model if we have one.
13049         * rhythmdb/rhythmdb-query-model.h:
13050          Remove poll and cancel methods.  Query cancellation
13051          never did anything anyway.
13053         * rhythmdb/rhythmdb-query-model.c:
13054         (rhythmdb_query_model_init): Remove GAsyncQueues.
13055          Replace the GAsyncQueue-based update processing
13056          with a simpler g_idle_add approach; still has the
13057          same queueing properties, but now we don't poll the
13058          model forever and updates are processed immediately.
13060         (_unref_entry), (rhythmdb_query_model_finalize):
13061          Unref DB entries when finalized
13063         (rhythmdb_query_model_has_pending_changes):
13064          Use our own counter to decide if there are updates pending
13066         (rhythmdb_query_model_process_update), (idle_process_update):
13067          Process updates using g_idle_add, or directly if possible
13069         (rhythmdb_query_model_signal_complete),
13070         (rhythmdb_query_model_add_entries):
13071          Change to new update processing method
13073         (idle_poll_model), (rhythmdb_query_model_poll):
13074          Remove GAsyncQueue-based update processing.
13076         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
13077          No need to poll the model any more - updates are processed
13078          directly for synchronous queries.
13080         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
13081          Property model needs to be unref'd here
13083         * sources/rb-library-source.c: (rb_library_source_do_query):
13084          Don't try to cancel the active query (it never worked anyway),
13085          remove obsolete poll call, unref property models as required,
13086          and don't unref the cached 'all' query, since hold on to it.
13087          We unref it when the sort order changes, which forces the query
13088          to be rerun.
13090         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13091          Unref the property model as required
13093         (rb_podcast_source_do_query):
13094          Treat any query with no selected feeds and no search text as
13095          an 'all' query.  Unref query models except for the cached
13096          'all' query, since we hold on to that.
13098         (rb_podcast_source_cmd_update_all):
13099          Unref the property model as required.
13101         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
13102          Don't try to cancel the query (it never worked anyway)
13104         (rb_entry_view_poll_model):
13105          No need for this any more.
13107         * widgets/rb-entry-view.h:
13108          Remove obsolete function rb_entry_view_poll_model
13110         * widgets/rb-property-view.c: (rb_property_view_set_property):
13111          Ref and unref the property model as required.
13113 2005-11-14  James Livingston  <jrl@ids.org.au>
13115         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13117         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
13118         for error. Closes bug 321416.
13120 2005-11-14  James Livingston  <jrl@ids.org.au>
13122         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13124         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
13125         a crasher if a feed's last-post value isn't set. Closes bug 321353.
13127 2005-11-14  James Livingston  <jrl@ids.org.au>
13129         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
13130         * shell/rb-removable-media-manager.c:
13131         (rb_removable_media_manager_set_uimanager):
13132         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
13133         translation domain for GTK action groups.
13135 2005-11-12  James Livingston  <jrl@ids.org.au>
13137         * po/POTFILES.in: remove the old station-new files
13139 2005-11-12  James Livingston  <jrl@ids.org.au>
13141         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13142         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
13143         (save_entry): cause Rhythmbox to re-read the metadata from a file,
13144         when upgrading from a pre-Date-supporting version to a version that
13145         supports Date metadata. Closes bug 320760.
13147 2005-11-12  James Livingston  <jrl@ids.org.au>
13149         Add "update all podcast feeds" command. Closes bug 319954.
13151         * data/ui/rhythmbox-ui.xml: add to source context menu.
13153         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13154         (register_action_group), (rb_podcast_source_cmd_download_post),
13155         (rb_podcast_source_cmd_delete_feed),
13156         (rb_podcast_source_cmd_properties_feed),
13157         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
13158         rather than the shell.
13160         (rb_podcast_source_update_feed_func),
13161         (rb_podcast_source_cmd_update_all): update every feed.
13163 2005-11-11  James Livingston  <jrl@ids.org.au>
13165         * shell/rb-shell-player.c: (rb_shell_player_class_init),
13166         (rb_shell_player_constructor), (rb_shell_player_finalize):
13167         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
13168         others follow the HIG recommentations.
13170 2005-11-11  James Livingston  <jrl@ids.org.au>
13172         * podcast/rb-podcast-manager.c:
13173         (rb_podcast_manager_subscribe_feed): check that the url is valid,
13174         before trying to use it.
13176 2005-11-11  James Livingston  <jrl@ids.org.au>
13178         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
13179         (rb_entry_view_append_column): When sorting by year, sort by album
13180         within a particular year.
13182 2005-11-11  James Livingston  <jrl@ids.org.au>
13184         * NEWS: updates
13186 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
13187         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
13188         spelling of "Language."
13190 2005-11-11  James Livingston  <jrl@ids.org.au>
13192         * rhythmdb/rhythmdb-property-model.c:
13193         (rhythmdb_property_model_row_inserted_cb),
13194         (rhythmdb_property_model_prop_changed_cb),
13195         (rhythmdb_property_model_entry_removed_cb),
13196         (rhythmdb_property_model_insert_prop),
13197         (rhythmdb_property_model_sync): display the count after the "All"
13198         entry of a property model.
13200         * widgets/rb-property-view.c: (rb_property_view_class_init),
13201         (rb_property_view_finalize), (rb_property_view_constructor): use
13202         G_DEFINE_TYPE
13204 2005-11-10  James Livingston  <jrl@ids.org.au>
13206         * rhythmdb/rhythmdb-query-model.c:
13207         (rhythmdb_query_model_remove_entry):
13208         * rhythmdb/rhythmdb-query-model.h: make
13209         rhythmdb_query_model_remove_entry return whether the entry was in the
13210         model.
13212         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
13213         don't add non-SONG entries, as it doesn't really work and can cause
13214         crashes.
13216         (rb_playlist_source_remove_location): assert if the playlist and model
13217         differ on whether the entry is in the playlist
13219 2005-11-10  James Livingston  <jrl@ids.org.au>
13221         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13222         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
13223         (rb_podcast_manager_thread_parse_feed),
13224         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
13225         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
13226         emulating one with a list and mutex. Fixes a couple of threading
13227         issues.
13228         
13229         (rb_podcast_manager_insert_feed): fix some problems with ignoring
13230         updated feeds.
13231         
13232         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
13233         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
13234         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
13235         * podcast/rb-podcast-parse.c: (rb_insert_item),
13236         (rb_podcast_parse_channel_free):
13237         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
13238         fix some typos, and make a bit of code clearer.
13240 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
13242         Make the "delete podcast" dialog better. Closes bug 320899.
13244         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
13245         Add PROP_WINDOW for rb_shell_get_property so we can access the
13246         GtkWindow widget of the main window. 
13247         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
13248         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
13249         podcast feed delete dialog less confusing as well.
13251 2005-11-09  James Livingston  <jrl@ids.org.au>
13253         * shell/rb-removable-media-manager.c:
13254         (rb_removable_media_manager_mount_volume),
13255         (rb_removable_media_manager_scan): Fix a crasher where we were getting
13256         NULL for a cd volume.
13258 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13260         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
13261         method return a gboolean indicating whether the changes
13262         to the entry have already been applied.
13264         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
13265         only modify the entry if impl_entry_set returns FALSE.
13267         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
13268         When setting the location of an entry, update the
13269         hash table mapping locations to entries.
13271 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13273         * data/glade/Makefile.am:
13274         * iradio/Makefile.am:
13275           Remove 'new station' dialog.
13277         * iradio/rb-station-properties-dialog.h:
13278         * sources/rb-iradio-source.c: (impl_song_properties):
13279         * shell/rb-shell.c: (rb_shell_cmd_new_station):
13280          Add 'new station' mode parameter to
13281          rb_station_properties_dialog_new.
13283         * (rb_station_properties_dialog_response_cb),
13284         (rb_station_properties_dialog_create_station):
13285          When in 'new station' mode, create the station
13286          when OK button is pressed.
13288         * iradio/rb-station-properties-dialog.c:
13289         (rb_station_properties_dialog_location_changed_cb):
13290          Only enable OK button if a location is specified
13291         (rb_station_properties_dialog_init),
13292         (rb_station_properties_dialog_new),
13293         (rb_station_properties_dialog_update),
13294         (rb_station_properties_dialog_update_title),
13295         (rb_station_properties_dialog_rated_cb),
13296         (rb_station_properties_dialog_update_play_count),
13297         (rb_station_properties_dialog_update_bitrate),
13298         (rb_station_properties_dialog_update_last_played),
13299         (rb_station_properties_dialog_update_rating),
13300         (rb_station_properties_dialog_update_playback_error),
13301         (rb_station_properties_dialog_show):
13302          Handle 'new station' mode, where there's no current
13303          station to edit.
13305 2005-11-08  James Livingston  <jrl@ids.org.au>
13307         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
13308         keybinding for track columns consistent between library and playlist
13309         sources.
13311 2005-11-07  James Livingston  <jrl@ids.org.au>
13313         * data/ui/rhythmbox-ui.xml:
13314         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
13315         "Edit" item to playlist menu. Closes bug 311470.
13317 2005-11-07  James Livingston  <jrl@ids.org.au>
13319         patch by: Jaap A. Haitsma <jaap@haitsma.org>
13321         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
13322         confirmation to save dialogs, with gtk 2.8 or higher.
13324 2005-11-07 James Livingston  <jrl@ids.org.au>
13325         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
13326         requirement to a general on, because people are going to have it for
13327         the other dependencies.
13329 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
13331         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
13332         delete dialog less confusing.  Use HIG recommended button order.
13333         Closes bug 320840.
13335 2005-11-06  James Livingston  <jrl@ids.org.au>
13337         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
13338         drag-and-drop error.
13339         
13340         * sources/rb-library-source.c: (rb_library_source_constructor): only
13341         add drag-and-drop for the Library itself, subclasses can add support
13342         themselves if they want it.
13344         * sources/rb-removable-media-source.c:
13345         (rb_removable_media_source_class_init): by default removable media
13346         sources do not support dnd
13348 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
13350         * data/glade/station-properties.glade:
13351          Add box containing error icon and error message label
13352         * iradio/rb-station-properties-dialog.c:
13353         (rb_station_properties_dialog_class_init),
13354         (rb_station_properties_dialog_finalize):
13355          Change this class to use G_DEFINE_TYPE
13356         (rb_station_properties_dialog_init),
13357         (rb_station_properties_dialog_update),
13358         (rb_station_properties_dialog_update_playback_error):
13359          Display error icon and message when there is one, and hide the error
13360          box otherwise.
13361         (rb_station_properties_dialog_show): Hack widget show
13362          method to update the visibility of the error info box when showing
13363          the widget.  Otherwise the icon is displayed all the time (same thing
13364          is done in rb-song-info). Closes bug 320749.
13366 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
13368         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
13369         parsing of the duration of podcast episodes from the feed. Closes bug
13370         320748.
13372 2005-11-05  James Livingston  <jrl@ids.org.au>
13374         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
13375         release date metadata ("Year"). Closes bug 166093.
13377         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
13378         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
13379         (rb_metadata_gst_add_tag_data):
13380         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13381         (save_entry):
13382         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
13383         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
13384         (set_props_from_metadata), (rhythmdb_entry_set_internal),
13385         (rhythmdb_prop_get_type):
13386         * rhythmdb/rhythmdb.h: add support for "date" property
13387         
13388         * data/glade/general-prefs.glade:
13389         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
13390         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
13391         (rb_entry_view_append_column):
13392         * widgets/rb-entry-view.h:
13393         * sources/rb-library-source.c: (rb_library_source_constructor):
13394         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
13395         "Year" colums
13397         * data/glade/song-info.glade:
13398         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
13399         (rb_song_info_construct_single), (rb_song_info_constructor),
13400         (rb_song_info_populate_dialog), (rb_song_info_update_year),
13401         (rb_song_info_sync_entry_single): Add "Year" to song info window
13403         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
13404         sorted by year.
13406 2005-11-05  James Livingston  <jrl@ids.org.au>
13408         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
13409         description if it's very long.
13411 2005-11-05  James Livingston  <jrl@ids.org.au>
13413         pathc by: Artem Baguinski <femistofel@gmail.com>
13415         * help/C/Makefile.am:
13416         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
13417         Closes bug 320613.
13419 2005-11-05  James Livingston  <jrl@ids.org.au>
13421         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13423         * daapsharing/rb-daap-share.c: (write_next_chunk),
13424         (message_finished), (databases_cb): Use chunked file loading and
13425         sending in the DAAP server. This should reduce the amount of memory
13426         required to send files to the client.
13428 2005-11-05  James Livingston  <jrl@ids.org.au>
13430         * configure.ac: make the nautilus_burn_drive_door_is_open detection
13431         work better on some systems. Closes 320622.
13433 2005-11-05  James Livingston  <jrl@ids.org.au>
13435         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
13436         homepage, so that users can find out what AudioScrobbler is. Add
13437         access keys.
13439         * data/glade/daap-prefs.glade:
13440         * data/glade/general-prefs.glade:
13441         * data/glade/library-prefs.glade: make the indent be more consistent
13443         * data/glade/podcast-prefs.glade: 
13444         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13445         (impl_get_config_widget): move thing out of code into glade, where
13446         they belong
13448 2005-11-05  James Livingston  <jrl@ids.org.au>
13450         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
13451         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
13453 2005-11-04  James Livingston  <jrl@ids.org.au>
13455         * configure.ac: don't print DAAP configure info twice
13457 2005-11-04  James Livingston  <jrl@ids.org.au>
13459         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13460         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
13461         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
13462         #ifdefs, since we removed the symbol. Oops
13464 2005-11-04  James Livingston  <jrl@ids.org.au>
13466         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
13467         after the connect line, not before. Oops.
13469 2005-11-04  James Livingston  <jrl@ids.org.au>
13471         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
13472         fix some warnings
13474 2005-11-03  James Livingston  <jrl@ids.org.au>
13476         * NEWS: update the news file
13478         * data/glade/general-prefs.glade: make the prefs refer to "time" not
13479         "duration" column.
13481         * data/ui/rhythmbox-ui.xml:
13482         * shell/rb-playlist-manager.c:
13483         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13484         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
13485         and "delete" for feeds.
13487 2005-11-03  James Livingston  <jrl@ids.org.au>
13489         * sources/rb-podcast-source.c: (impl_delete),
13490         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
13491         feed. Closes 319760.
13493 2005-11-03  James Livingston  <jrl@ids.org.au>
13495         Don't start playing from the remote site when a un-downloaded podcast
13496         is activated. Closes 319983.
13497         
13499         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13500         (write_job_data), (download_progress_cb): write the local location as
13501         soon as any data is recieved
13503         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
13504         the mountpoint to NULL for podcast episodes that haven't yet been
13505         downloaded.
13506         
13507         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
13508         start playing a podcast if it hasn't been downloaded.
13509         
13510         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13511         (rb_podcast_source_entry_activated_cb): begin downloading when the
13512         podcast is activated.
13514 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
13516         * data/glade/general-prefs.glade:  Fix capitalization.
13517         * shell/rb-removable-media-manager.c:  Add a mnemonic.
13518         * sources/rb-podcast-source.c:
13519         (rb_podcast_source_songs_show_popup_cb),
13520         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
13522 2005-11-03  James Livingston  <jrl@ids.org.au>
13524         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
13526         * shell/rb-removable-media-manager.c:
13527         (rb_removable_media_manager_mount_volume): don't check network or
13528         autofs mounts, as they're not going to be removable media. Stops
13529         sending lots of warnings to syslog. Closes 320571.
13531         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
13532         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
13533         320570.
13535 2005-11-03  James Livingston  <jrl@ids.org.au>
13537         Add support for playing audio CDs. Metadata lookup is done using
13538         SoundJuicer's MusicBrainz lookup code, which can be switched to using
13539         the library when it gets broken out of S-J.
13540         
13541         Add a "rescan media" menu item, and commands for ejecting removable
13542         media.
13544         Move nautilus-cd-burner from optional to required depenency.
13546         * configure.ac:
13547         * data/ui/rhythmbox-ui.xml:
13548         * metadata/Makefile.am:
13549         + metadata/sj-error.c:
13550         + metadata/sj-error.h:
13551         + metadata/sj-metadata-marshal.list:
13552         + metadata/sj-metadata-musicbrainz.c:
13553         + metadata/sj-metadata-musicbrainz.h:
13554         + metadata/sj-metadata.c:
13555         + metadata/sj-metadata.h:
13556         + metadata/sj-structures.c:
13557         + metadata/sj-structures.h:
13558         * player/Makefile.am:
13559         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
13560         * po/POTFILES.in:
13561         * shell/Makefile.am:
13562         * shell/rb-removable-media-manager.c:
13563         (rb_removable_media_manager_dispose), (poll_tray_opened),
13564         (end_cd_drive_monitor), (begin_cd_drive_monitor),
13565         (rb_removable_media_manager_load_media),
13566         (rb_removable_media_manager_mount_volume),
13567         (rb_removable_media_manager_cmd_eject_medium),
13568         (rb_removable_media_manager_cmd_scan_media),
13569         (rb_removable_media_manager_check_volume),
13570         (rb_removable_media_manager_unmount_volume_swap),
13571         (rb_removable_media_manager_scan):
13572         * sources/Makefile.am:
13573         + sources/rb-audiocd-source.c:
13574         + sources/rb-audiocd-source.h:
13575         * tests/Makefile.am:
13577 2005-11-02  James Livingston  <jrl@ids.org.au>
13579         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13581         * sources/rb-iradio-source.c:
13582         (stations_view_drag_data_received_cb):
13583         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
13584         don't crash when the second uri is missing frm the drop, which
13585         browsers sometimes do.
13587 2005-11-01  James Livingston  <jrl@ids.org.au>
13589         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13590         (rb_podcast_manager_insert_feed):
13591         * podcast/rb-podcast-manager.h:
13592         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
13593         (rb_set_item_value), (rb_validate_item_propert),
13594         (rb_podcast_parse_date), (rb_podcast_parse_time):
13595         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
13596         from the feed.
13598 2005-10-31  James Livingston  <jrl@ids.org.au>
13600         * ChangeLog:
13601         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
13602         huge
13604 2005-10-31  James Livingston  <jrl@ids.org.au>
13606         * sources/rb-podcast-source.c:
13607         (rb_podcast_source_post_date_cell_data_func): generate the date string
13608         in a way that is correct in all locales.
13609         
13610         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
13611         (rhythmdb_entry_sync_mirrored): make the last played/date added
13612         columns use the same format.
13614 2005-10-30  James Livingston  <jrl@ids.org.au>
13617         * podcast/rb-podcast-manager.c:
13618         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
13619         
13620         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
13621         iradio errors better.
13623 2005-10-30  James Livingston  <jrl@ids.org.au>
13625         patch by: Artem Baguinski <femistofel@gmail.com>
13627         * metadata/rb-metadata-gst.c: (rb_metadata_init):
13629 2005-10-30  James Livingston  <jrl@ids.org.au>
13631         * podcast/rb-podcast-manager.c:
13632         (rb_podcast_manager_subscribe_feed),
13633         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
13634         already been added, usually as a radio station. Closes 319434.
13636 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
13638         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
13639         mnemonics & resize issues)
13640         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
13641         & mnemonics)
13642         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
13643         widget for the "download location" label.
13645         Closes bug 320184.
13647 2005-10-29  James Livingston  <jrl@ids.org.au>
13649         Allow the search box to match words from multiple properties. Closes
13650         bug 139196. Thanks to the person from IRC who did a lot of the initial
13651         work.
13654         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
13655         * lib/rb-util.h: Add functions to split a string into words, and one
13656         to perform "search folding" which is currently like casefolding but
13657         also strips punctuation
13658         
13659         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
13660         (rhythmdb_query_preprocess):
13661         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
13662         against title, artist, album and genre (for the search box)
13663         
13664         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
13665         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13666         (save_entry), (search_match_properties),
13667         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
13668         splitting into words and matching across multiple properties.
13669         
13670         * sources/rb-library-source.c: (construct_query_from_selection): use
13671         the new SEARCH_MATCH property for the search box
13672         
13673         * widgets/rb-entry-view.c: (type_ahead_search_func):
13675 2005-10-29  James Livingston  <jrl@ids.org.au>
13677         * lib/rb-stock-icons.c: (rb_stock_icons_init):
13678         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
13679         
13680         * shell/rb-playlist-manager.c:
13681         * shell/rb-shell.c: use the above stock ids, so that the icons get set
13682         correctly.
13683         
13684         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
13685         initial state of the shuffle/repeat menu items correctly. Patch from
13686         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
13688 2005-10-29  James Livingston  <jrl@ids.org.au>
13690         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
13691         double-free.
13692         
13693         * widgets/rb-cell-renderer-pixbuf.c:
13694         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
13695         icon go black when row is not selected
13696         
13697         * doc/reference/tmpl/rb-daap-connection.sgml:
13698         * doc/reference/tmpl/rhythmdb.sgml: doc updates
13700 2005-10-29  James Livingston  <jrl@ids.org.au>
13702         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
13703         silly mistake, where it could think partial downloads has been
13704         completed.
13706 2005-10-29  James Livingston  <jrl@ids.org.au>
13708         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13710         * data/glade/song-info.glade:
13711         * widgets/rb-song-info.c: (rb_song_info_construct_single),
13712         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
13713         (rb_song_info_sync_entry_single): show the disc number in the song
13714         info window. From bug 311199.
13716 2005-10-29  James Livingston  <jrl@ids.org.au>
13718         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
13719         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
13720         regularly. Closes 155306.
13722 2005-10-29  James Livingston  <jrl@ids.org.au>
13724         * podcast/rb-podcast-manager.c:
13725         (rb_podcast_manager_download_entry),
13726         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13727         (rb_podcast_manager_insert_feed):
13728         * podcast/rb-podcast-manager.h:
13729         * podcast/rb-podcast-parse.c: (rb_set_item_value),
13730         (rb_podcast_parser_start_element):
13731         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
13732         don't download them again. However, it can't resume
13733         partially-downloaded ones.
13735 2005-10-28  James Livingston  <jrl@ids.org.au>
13737         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
13738         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
13739         work. Don't attempt to write duration as a tag.
13741         Thanks to Artem Baguinski <femistofel@gmail.com>
13743 2005-10-28  James Livingston  <jrl@ids.org.au>
13745         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
13746         don't disable the status-bar menu item when the current source doesn't
13747         use the search box.
13749 2005-10-28  James Livingston  <jrl@ids.org.au>
13751         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
13752         crash if the file has unknown length
13754 2005-10-27  James Livingston  <jrl@ids.org.au>
13756         * daapsharing/rb-daap-connection.c:
13757         (rb_daap_connection_state_done): don't assert when a daap server
13758         doesn't have any playlists
13760 2005-10-27  James Livingston  <jrl@ids.org.au>
13762         * sources/rb-sourcelist-model.c:
13763         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
13764         source for the sourcelist. Closes bug 319817.
13766 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
13768         Patch by: Renato Araujo <renatox@gmail.com>
13770         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
13771           Fix for a crasher caused by previous patch.
13773 2005-10-26  James Livingston  <jrl@ids.org.au>
13775         * data/glade/podcast-prefs.glade:
13776         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
13777         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
13778         * sources/rb-podcast-source.c: (rb_podcast_source_new):
13779         * podcast/rb-podcast-manager.c:
13780         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13781         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
13782         * shell/rb-shell.c: Change some strings to make them more consistent.
13783         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
13784         makes it clearer which is which. "Episode" may not be the best term,
13785         but it seems to be widely used.
13786         
13787         Also fix some strings that weren't marked as translatable.
13788         
13789         * podcast/rb-feed-podcast-properties-dialog.c:
13790         (rb_feed_podcast_properties_dialog_class_init),
13791         (rb_feed_podcast_properties_dialog_finalize):
13792         * podcast/rb-new-podcast-dialog.c:
13793         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
13794         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13795         (rb_simple_view_finalize), (rb_simple_view_constructor):
13796         * podcast/rb-podcast-properties-dialog.c:
13797         (rb_podcast_properties_dialog_class_init),
13798         (rb_podcast_properties_dialog_finalize):
13799         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
13800         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
13801         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
13802         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
13803         use G_DEFINE_TYPE, instead of doing it manually.
13805 2005-10-26  James Livingston  <jrl@ids.org.au>
13807         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
13808         <jrl@ids.org.au>
13810         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
13811         (rb_metadata_init): Check that the necessary plugins are present to do
13812         id3 editing.
13813         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
13814         corrupted before replacing the original.
13816 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
13818         reviewed by: James Livingston <jrl@ids.org.au>
13820         Assign sequential IDs to playlists for DAAP rather than using the
13821         address of the playlist object.  Less flaky, and should work on 64bit
13822         platforms. Closes bug 319304.
13824         * daapsharing/rb-daap-share.c: 
13825         (rb_daap_share_set_property): watch for playlist creation
13826         (_find_by_id), (_find_by_source): playlist list search functions
13827         (rb_daap_share_playlist_created),
13828         (rb_daap_share_process_playlist),
13829         (rb_daap_share_playlist_destroyed):
13830          update playlist list as it changes, use weak refs on 
13831          playlists to get notified on destroy.
13832         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
13833          destroy playlist list on shutdown
13834         (add_playlist_to_mlcl): use playlist ID rather than pointer in
13835          DAAP response
13836         (databases_cb): search for playlist ID in list rather than just
13837          converting it to a pointer; return HTTP 404 if playlist not 
13838          found.
13839         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
13840          is already used for the main library
13842 2005-10-26  James Livingston  <jrl@ids.org.au>
13844         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13846         * daapsharing/rb-daap-connection.c: (build_message),
13847         (http_response_handler), (http_get), (handle_server_info),
13848         (handle_login), (handle_update), (handle_database_info),
13849         (handle_song_listing), (handle_playlists),
13850         (handle_playlist_entries), (handle_logout),
13851         (rb_daap_connection_new), (rb_daap_connection_logout),
13852         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
13853         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
13854         * daapsharing/rb-daap-connection.h:
13855         * sources/rb-daap-source.c: (rb_daap_source_activate),
13856         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
13857         (rb_daap_source_disconnect): Make connecting to DAAP sources
13858         asynchronous, so that non-responsive servers don't hang the UI. Closes
13859         316225.
13861 2005-10-26  James Livingston  <jrl@ids.org.au>
13863         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13865         * rhythmdb/rhythmdb-query-model.c:
13866         (rhythmdb_query_model_do_reorder): generate the row re-order map
13867         correctly.
13868         
13869         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
13870         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
13871         Update selection when rows get re-ordered. Closes 319718.
13873 2005-10-26  James Livingston  <jrl@ids.org.au>
13875         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
13877         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
13878         actually set the db pointer in play orders. Closes 319818.
13880 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
13882         Patch by: Renato Araujo <renatox@gmail.com>
13884         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13885         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
13886         (rb_podcast_manager_update_synctime),
13887         (rb_podcast_manager_config_changed),
13888         (rb_podcast_manager_insert_feed):
13889         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13890         (save_entry):
13891         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13892         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13893         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
13895 2005-10-25  James Livingston  <jrl@ids.org.au>
13897         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
13898         (db_entry_deleted_cb): don't share tracks that are hidden because the
13899         file is missing.
13901 2005-10-22  James Livingston  <jrl@ids.org.au>
13903         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
13904         crash if an entry couldn't be playerd, without streamer setting an
13905         error.
13907         
13908         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
13910         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13911         (rb_new_podcast_dialog_text_changed): enable the add button when a url
13912         is pasted into the dialog.
13913         
13914         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
13915         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
13916         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
13917         (rb_podcast_parse_channel_free):
13918         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
13919         feeds
13921 2005-10-22  James Livingston  <jrl@ids.org.au>
13923         * sources/rb-iradio-source.c:
13924         (rb_iradio_source_first_time_changed): Make merging the default
13925         stations actually work.
13926         
13927         * sources/rb-podcast-source.c:
13928         (rb_podcast_source_post_status_cell_data_func): fix problem where some
13929         people weren't seing the percentages in the stats column.
13931 2005-10-21  James Livingston  <jrl@ids.org.au>
13933         Patch from Caio Marcelo <cmarcelo@gmail.com>
13935         * shell/rb-shell.c: (rb_shell_window_state_cb),
13936         (rb_shell_get_visibility), (idle_hide_mainwindow),
13937         (rb_shell_set_visibility): Make the "show window" item in the tray
13938         icon menu show the toggle state correctly. Use a better policy on
13939         deciding whether the window is "visible" or not. Closes bug 308053.
13941 2005-10-21  James Livingston  <jrl@ids.org.au>
13943         * doc/reference/tmpl/rb-shell-preferences.sgml:
13944         * shell/Makefile.am: fix building with gtk-doc
13946         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
13947         don't submit podcasts to audioscrobbler
13948         
13949         
13950         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
13951         
13952         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
13953         (rb_set_item_value): strip spaces surrounding podcast urls
13954         
13956         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
13957         
13958         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
13960 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
13962         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
13963          Audioscrobbler/Last.fm support
13965         * configure.ac:
13966         * data/glade/Makefile.am:
13967         * data/glade/audioscrobbler-prefs.glade:
13968         * data/rhythmbox.schemas:
13969         * lib/Makefile.am:
13970         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
13971         * lib/md5.h:
13972         * lib/rb-preferences.h:
13973         * po/POTFILES.in:
13974         * shell/Makefile.am:
13975         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
13976         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
13977         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
13978         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
13979         (rb_audioscrobbler_timeout_cb), (mkmd5),
13980         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
13981         (rb_audioscrobbler_do_handshake),
13982         (rb_audioscrobbler_do_handshake_cb),
13983         (rb_audioscrobbler_submit_queue),
13984         (rb_audioscrobbler_submit_queue_cb),
13985         (rb_audioscrobbler_import_settings),
13986         (rb_audioscrobbler_preferences_sync),
13987         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
13988         (rb_audioscrobbler_gconf_changed_cb),
13989         (rb_audioscrobbler_song_changed_cb),
13990         (rb_audioscrobbler_username_entry_changed_cb),
13991         (rb_audioscrobbler_username_entry_activate_cb),
13992         (rb_audioscrobbler_password_entry_changed_cb),
13993         (rb_audioscrobbler_password_entry_activate_cb),
13994         (rb_audioscrobbler_enabled_check_changed_cb),
13995         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
13996         (rb_audioscrobbler_load_entry_from_string),
13997         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
13998         (rb_audioscrobbler_print_queue),
13999         (rb_audioscrobbler_free_queue_entries):
14000         * shell/rb-audioscrobbler.h:
14001         * shell/rb-shell-preferences.c:
14002         (rb_shell_preferences_append_audioscrobbler_config):
14003         * shell/rb-shell-preferences.h:
14004         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14005         (rb_shell_select_source), (rb_shell_cmd_preferences):
14006         * sources/Makefile.am:
14008 2005-10-21  James Livingston  <jrl@ids.org.au>
14010         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
14012         * Makefile.am:
14013         * NEWS:
14014         * configure.ac:
14015         * data/art/Makefile.am:
14016         * data/glade/Makefile.am:
14017         * data/rhythmbox.schemas:
14018         * data/ui/rhythmbox-ui.xml:
14019         * doc/reference/Makefile.am:
14020         * doc/reference/tmpl/rhythmdb.sgml:
14021         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14022         * lib/rb-stock-icons.h:
14023         * po/POTFILES.in:
14024         * podcast/Makefile.am:
14025         + podcast/rb-feed-podcast-properties-dialog.c:
14026         + podcast/rb-feed-podcast-properties-dialog.h:
14027         + podcast/rb-new-podcast-dialog.c:
14028         + podcast/rb-new-podcast-dialog.h:
14029         + podcast/rb-podcast-manager.c:
14030         + podcast/rb-podcast-manager.h:
14031         + podcast/rb-podcast-marshal.list:
14032         + podcast/rb-podcast-parse.c:
14033         + podcast/rb-podcast-parse.h:
14034         + podcast/rb-podcast-properties-dialog.c:
14035         + podcast/rb-podcast-properties-dialog.h:
14036         * rhythmdb/rhythmdb-property-model.c:
14037         (rhythmdb_property_model_set_property),
14038         (rhythmdb_property_model_enable_drag):
14039         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
14040         (rhythmdb_tree_parser_end_element), (save_entry),
14041         (rhythmdb_tree_save):
14042         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14043         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
14044         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
14045         (rhythmdb_entry_podcast_feed_get_type):
14046         * rhythmdb/rhythmdb.h:
14047         * shell/Makefile.am:
14048         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
14049         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14050         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
14051         (rb_shell_quit):
14052         * sources/Makefile.am:
14053         + sources/rb-podcast-source.c:
14054         + sources/rb-podcast-source.h:
14055         * widgets/Makefile.am:
14056         * widgets/rb-property-view.c: (rb_property_view_class_init),
14057         (rb_property_view_constructor),
14058         (rb_property_view_selection_changed_cb),
14059         (rb_property_view_get_treeview):
14060         * widgets/rb-property-view.h:
14061         + widgets/rb-simple-view.c:
14062         + widgets/rb-simple-view.h:
14064 2005-10-20  James Livingston  <jrl@ids.org.au>
14066         * NEWS: update with changes since 0.9.1
14068         * configure.ac: check whether collate_key_for_filename is available
14069         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
14070         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
14071         it if it isn't available in glib (i.e. building against 2.6)
14072         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
14073         collation to get "natural sorting". Closes bug 158599.
14075 2005-10-20  James Livingston  <jrl@ids.org.au>
14077         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14079         * doc/reference/tmpl/rb-shell-player.sgml:
14080         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14081         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
14082         (rb_shell_player_get_playing),
14083         (rb_shell_player_get_playing_time_string),
14084         (rb_shell_player_get_playing_time),
14085         (rb_shell_player_set_playing_time), (tick_cb),
14086         (rb_shell_player_get_playing_path), (filter_mmkeys):
14087         * shell/rb-shell-player.h:
14088         * shell/rb-shell-player.xml:
14089         * shell/rb-shell.c: (rb_shell_constructor),
14090         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
14091         (rb_shell_set_window_title), (rb_shell_playing_impl),
14092         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
14093         Merge the duration_changed and elapsed_changed DBUS signals into one
14094         elapsed_changed signal. Check that the output argument isn't NULL
14095         before trying to put things in it.
14097 2005-10-20  James Livingston  <jrl@ids.org.au>
14099         * rhythmdb/rhythmdb-query-model.c:
14100         (rhythmdb_query_model_entry_added_cb),
14101         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
14102         problem where hidden entries could be shown in playlists.
14103         
14104         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
14105         issues when switching in and out of small mode.
14107 2005-10-19  James Livingston  <jrl@ids.org.au>
14109         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
14110         (rb_shell_constructor), (rb_shell_window_state_cb),
14111         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
14112         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
14113         (rb_shell_view_smalldisplay_changed_cb),
14114         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
14115         (rb_shell_sync_paned): remove gconf window-state races, prevent
14116         changing small mode too often, fix window event races. Closes 122806.
14118         
14119         Patch from Caio Marcelo <cmarcelo@gmail.com>
14121         * data/rhythmbox.schemas:
14122         * shell/rb-shell.c: (rb_shell_window_state_cb),
14123         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
14124         Remember the position of the window. Closes 315289.
14126 2005-10-19  James Livingston  <jrl@ids.org.au>
14128         Patch from Christophe Fergeau  <teuf@gnome.org>
14130         * configure.ac: determine whether libgpod is present when neither
14131         --with-ipod nor --without-ipod is passed
14133 2005-10-19  James Livingston  <jrl@ids.org.au>
14135         Patch from Caio Marcelo <cmarcelo@gmail.com>
14137         * shell/rb-shell-player.c: (do_next_idle),
14138         (rb_shell_player_do_previous), (rb_shell_player_do_next),
14139         (rb_shell_player_do_previous_or_seek),
14140         (rb_shell_player_previous_button_cb),
14141         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14142         (rb_shell_player_cmd_next), (eos_cb):
14143         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
14144         end of the playlist is reached.
14146 2005-10-19  Christopher Aillon  <caillon@redhat.com>
14148         * lib/rb-thread.c: fix a few GSource leaks
14150 2005-10-19  James Livingston  <jrl@ids.org.au>
14152         * doc/reference/tmpl/bacon-volume.sgml:
14153         * doc/reference/tmpl/disclosure-widget.sgml:
14154         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14155         * doc/reference/tmpl/eggnotificationbubble.sgml:
14156         * doc/reference/tmpl/eggtrayicon.sgml:
14157         * doc/reference/tmpl/gsequence.sgml:
14158         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14159         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14160         * doc/reference/tmpl/rb-daap-connection.sgml:
14161         * doc/reference/tmpl/rb-daap-dialog.sgml:
14162         * doc/reference/tmpl/rb-daap-mdns.sgml:
14163         * doc/reference/tmpl/rb-daap-share.sgml:
14164         * doc/reference/tmpl/rb-daap-sharing.sgml:
14165         * doc/reference/tmpl/rb-daap-source.sgml:
14166         * doc/reference/tmpl/rb-daap-src.sgml:
14167         * doc/reference/tmpl/rb-daap-structure.sgml:
14168         * doc/reference/tmpl/rb-debug.sgml:
14169         * doc/reference/tmpl/rb-dialog.sgml:
14170         * doc/reference/tmpl/rb-druid.sgml:
14171         * doc/reference/tmpl/rb-entry-view.sgml:
14172         * doc/reference/tmpl/rb-enums.sgml:
14173         * doc/reference/tmpl/rb-file-helpers.sgml:
14174         * doc/reference/tmpl/rb-glade-helpers.sgml:
14175         * doc/reference/tmpl/rb-header.sgml:
14176         * doc/reference/tmpl/rb-history.sgml:
14177         * doc/reference/tmpl/rb-ipod-source.sgml:
14178         * doc/reference/tmpl/rb-iradio-source.sgml:
14179         * doc/reference/tmpl/rb-library-source.sgml:
14180         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14181         * doc/reference/tmpl/rb-metadata.sgml:
14182         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14183         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14184         * doc/reference/tmpl/rb-play-order-linear.sgml:
14185         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14186         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14187         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14188         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14189         * doc/reference/tmpl/rb-play-order-random.sgml:
14190         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14191         * doc/reference/tmpl/rb-play-order.sgml:
14192         * doc/reference/tmpl/rb-player.sgml:
14193         * doc/reference/tmpl/rb-playlist-manager.sgml:
14194         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14195         * doc/reference/tmpl/rb-playlist-source.sgml:
14196         * doc/reference/tmpl/rb-preferences.sgml:
14197         * doc/reference/tmpl/rb-property-view.sgml:
14198         * doc/reference/tmpl/rb-query-creator-private.sgml:
14199         * doc/reference/tmpl/rb-query-creator.sgml:
14200         * doc/reference/tmpl/rb-rating-helper.sgml:
14201         * doc/reference/tmpl/rb-rating.sgml:
14202         * doc/reference/tmpl/rb-recorder.sgml:
14203         * doc/reference/tmpl/rb-refstring.sgml:
14204         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14205         * doc/reference/tmpl/rb-removable-media-source.sgml:
14206         * doc/reference/tmpl/rb-search-entry.sgml:
14207         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14208         * doc/reference/tmpl/rb-shell-glue.sgml:
14209         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14210         * doc/reference/tmpl/rb-shell-player.sgml:
14211         * doc/reference/tmpl/rb-shell-preferences.sgml:
14212         * doc/reference/tmpl/rb-shell.sgml:
14213         * doc/reference/tmpl/rb-song-display-box.sgml:
14214         * doc/reference/tmpl/rb-song-info.sgml:
14215         * doc/reference/tmpl/rb-source-header.sgml:
14216         * doc/reference/tmpl/rb-source.sgml:
14217         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14218         * doc/reference/tmpl/rb-sourcelist.sgml:
14219         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14220         * doc/reference/tmpl/rb-statusbar.sgml:
14221         * doc/reference/tmpl/rb-stock-icons.sgml:
14222         * doc/reference/tmpl/rb-string-helpers.sgml:
14223         * doc/reference/tmpl/rb-thread.sgml:
14224         * doc/reference/tmpl/rb-tray-icon.sgml:
14225         * doc/reference/tmpl/rb-tree-dnd.sgml:
14226         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14227         * doc/reference/tmpl/rb-util.sgml:
14228         * doc/reference/tmpl/rhythmbox-unused.sgml:
14229         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14230         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14231         * doc/reference/tmpl/rhythmdb-tree.sgml:
14232         * doc/reference/tmpl/rhythmdb.sgml: update for changes
14233         
14234         * doc/reference/Makefile.am: make docs build with changed ipod support
14235         
14236         * po/POTFILES.in: remove sources/itunesdb
14238 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
14240         * sources/itunesdb.c:
14241         * sources/itunesdb.h: removed now useless files
14243 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
14245         * configure.ac:
14246         * shell/Makefile.am:
14247         * sources/Makefile.am:
14248         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
14249         code
14250         [1]: http://www.gtkpod.org/libgpod.html
14253 2005-10-18  James Livingston  <jrl@ids.org.au>
14255         patch from Funda Wang <fundawang@linux.net.cn>
14257         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
14258         the notification bubble string translatable.
14260 ============ Version 0.9.1
14262 2005-10-16  James Livingston  <jrl@ids.org.au>
14264         * configure.ac: bump version to 0.9.1
14265         * NEWS: update translation credits
14267 2005-10-16  James Livingston  <jrl@ids.org.au>
14269         * rhythmdb/rhythmdb-query-model.c:
14270         (rhythmdb_query_model_class_init),
14271         (rhythmdb_query_model_drag_data_received): 
14272         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
14273         notified when things are dropped into the entry view.
14274         
14275         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
14276         (rb_playlist_source_add_location_swapped),
14277         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
14278         (rb_playlist_source_non_entry_dropped),
14279         (rb_playlist_source_row_inserted): Use the new signal so that dropping
14280         things onto a playlist's entry view work correctly, and doesn't cause
14281         crashes. Allow folders to be dropped as well. (Closes 318308)
14283 2005-10-16  James Livingston  <jrl@ids.org.au>
14285         * NEWS: Update some more
14287         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14288         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
14289         with the paned size, so that it doesn't move when the window is
14290         maximised/restored. Closes bug 315852.
14292         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
14293         display the playcount column, as it's useless (it never get changed).
14295 2005-10-14  James Livingston  <jrl@ids.org.au>
14297         * Makefile.am:
14298         * data/Makefile.am:
14299         * doc/reference/Makefile.am: get "make distcheck" to pass again
14301 2005-10-11  James Livingston  <jrl@ids.org.au>
14303         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
14304         destroy the connection when retrieving the playlists fails, because
14305         tracks have already been added. Closes 318380.
14307 2005-10-11  James Livingston  <jrl@ids.org.au>
14309         * sources/rb-sourcelist.c: (rb_sourcelist_append),
14310         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
14311         (source_name_edited_cb): Ask for the columns to be resized when a
14312         source is added, deleted or changes name.
14314 2005-10-11  James Livingston  <jrl@ids.org.au>
14316         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
14317         create a thread when processing a directory. This stops up created one
14318         thread for each file in a playlist we're trying to load. Closes
14319         317850.
14321         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
14322         typo that made sort-by-artist not work correctly.
14324 2005-10-11  James Livingston  <jrl@ids.org.au>
14326         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
14327         support is enabled
14329 2005-10-11  James Livingston  <jrl@ids.org.au>
14331         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
14332         * lib/rb-file-helpers.h: add a function to turn uris into our
14333         canonical path-escaped form
14334         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
14335         above function when import playlists. This will fix the problem of
14336         duplicate entries due to different representations of the uri (bug
14337         158211).
14339 2005-10-11  James Livingston  <jrl@ids.org.au>
14341         * shell/rb-shell.c: (rb_shell_get_visibility),
14342         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
14343         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
14344         window hiding so that Alt-F4 works again.
14346         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
14347         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
14348         (rb_entry_view_string_sort_func): Stop some crashes where a string
14349         property was set to NULL.
14351 2005-10-10  James Livingston  <jrl@ids.org.au>
14353         * doc/reference/rhythmbox.types: fix gtk-doc generation
14355 2005-10-09  James Livingston  <jrl@ids.org.au>
14357         * sources/rb-sourcelist.c: (rb_sourcelist_init):
14358         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
14359         accelerators, so that we don't have as many conflicting keys.
14361 2005-10-08  James Livingston  <jrl@ids.org.au>
14363         * data/iradio-initial.pls: Update the list of radio stations. Thanks
14364         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
14365         bug 129285.
14367 2005-10-07  James Livingston  <jrl@ids.org.au>
14369         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
14370         local path names in the same way as every other URI. This should stop
14371         duplicates occurring due to different escapings. Closes bug 158211.
14373 2005-10-06  James Livingston  <jrl@ids.org.au>
14375         * NEWS: more updates
14376         
14377         patch from Jaap Haitsma <jaap@haitsma.org>:
14379         * configure.ac:
14380         * data/Makefile.am:
14381         * data/art/Makefile.am:
14382         - data/art/rhythmbox-paused.png:
14383         - data/art/rhythmbox-playback-error.png:
14384         - data/art/rhythmbox-playing.png:
14385         - data/art-clearlooks/:
14386         * lib/rb-file-helpers.c: (rb_file):
14387         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14388         * lib/rb-stock-icons.h:
14389         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
14390         * widgets/rb-cell-renderer-pixbuf.c:
14391         (rb_cell_renderer_pixbuf_render):
14392         * widgets/rb-entry-view.c: (rb_entry_view_init),
14393         (rb_entry_view_set_playing):
14394         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
14395         stock icons instead of custom art. Drop remanents of art-clearlooks.
14397 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
14399         * configure.ac: Added ne in ALL_LINGUAS
14401 2005-10-02  James Livingston  <jrl@ids.org.au>
14403         * data/glade/Makefile.am: actually install the daap prefs glade file
14405 2005-09-30  James Livingston  <jrl@ids.org.au>
14407         * po/POTFILES.in: mremove rb-string-helper.c from the list of
14408         translatable files, so that make check works and we don't annoy the
14409         translators.
14410         
14411         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
14412         sanity checking, in case a db entry is missing some properties.
14414 2005-09-29  James Livingston  <jrl@ids.org.au>
14416         - lib/rb-string-helpers.c:
14417         - lib/rb-string-helpers.h:
14418         * lib/Makefile.am:
14419         * rhythmdb/rhythmdb-tree.c:
14420         * rhythmdb/rhythmdb.c:
14421         * shell/main.c: (main):
14422         * shell/rb-shell.c:
14423         * widgets/rb-entry-view.c:
14424         * widgets/rb-property-view.c: remove rb-string-helpers, as they
14425         utility functions haven't been used in a while.
14427 2005-09-27  James Livingston  <jrl@ids.org.au>
14429         * data/art-clearlooks/Makefile.am:
14430         - data/art-clearlooks/rhythmbox-album.png:
14431         - data/art-clearlooks/rhythmbox-audiocd.png:
14432         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
14433         - data/art-clearlooks/rhythmbox-dnd.png:
14434         - data/art-clearlooks/rhythmbox-ipod.png:
14435         - data/art-clearlooks/rhythmbox-iradio.png:
14436         - data/art-clearlooks/rhythmbox-library.png:
14437         - data/art-clearlooks/rhythmbox-next.png:
14438         - data/art-clearlooks/rhythmbox-pause.png:
14439         - data/art-clearlooks/rhythmbox-play.png:
14440         - data/art-clearlooks/rhythmbox-playlist-menu.png:
14441         - data/art-clearlooks/rhythmbox-playlist.png:
14442         - data/art-clearlooks/rhythmbox-previous.png:
14443         - data/art-clearlooks/rhythmbox-repeat.png:
14444         - data/art-clearlooks/rhythmbox-rewind.png:
14445         - data/art-clearlooks/rhythmbox-shuffle.png:
14446         - data/art-clearlooks/rhythmbox-stop.png:
14447         - data/art-clearlooks/rhythmbox-visuals.png:
14448         - data/art-clearlooks/rhythmbox-volume-max.png:
14449         - data/art-clearlooks/rhythmbox-volume-medium.png:
14450         - data/art-clearlooks/rhythmbox-volume-min.png:
14451         - data/art-clearlooks/rhythmbox-volume-mute.png:
14452         - data/art-clearlooks/rhythmbox-volume-zero.png:
14453         * data/art/Makefile.am:
14454         - data/art/rhythmbox-album.png:
14455         - data/art/rhythmbox-audiocd.png:
14456         - data/art/rhythmbox-automatic-playlist.png:
14457         - data/art/rhythmbox-dnd.png:
14458         - data/art/rhythmbox-ipod.png:
14459         - data/art/rhythmbox-iradio.png:
14460         - data/art/rhythmbox-library.png:
14461         - data/art/rhythmbox-next.png:
14462         - data/art/rhythmbox-pause.png:
14463         - data/art/rhythmbox-play.png:
14464         - data/art/rhythmbox-playlist-menu.png:
14465         - data/art/rhythmbox-playlist.png:
14466         - data/art/rhythmbox-previous.png:
14467         - data/art/rhythmbox-repeat.png:
14468         - data/art/rhythmbox-rewind.png:
14469         - data/art/rhythmbox-shuffle.png:
14470         - data/art/rhythmbox-stop.png:
14471         - data/art/rhythmbox-visuals.png:
14472         - data/art/rhythmbox-volume-max.png:
14473         - data/art/rhythmbox-volume-medium.png:
14474         - data/art/rhythmbox-volume-min.png:
14475         - data/art/rhythmbox-volume-mute.png:
14476         - data/art/rhythmbox-volume-zero.png:
14477         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14478         * lib/rb-stock-icons.h:
14479         * shell/rb-playlist-manager.c:
14480         * shell/rb-shell-player.c:
14481         * sources/rb-daap-source.c: (rb_daap_get_icon):
14482         * sources/rb-ipod-source.c:
14483         * sources/rb-iradio-source.c: (rb_iradio_source_init):
14484         * sources/rb-library-source.c: (rb_library_source_new):
14485         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14486         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
14487         that hasn't been used in a LONG time, and also remove art that are
14488         now stock icons.
14490 2005-09-27  James Livingston  <jrl@ids.org.au>
14492         * README: point to the gnome.org web sites, and update the example
14493         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
14494         
14495         * rhythmdb/rhythmdb-query-model.c:
14496         (rhythmdb_query_model_set_property),
14497         (rhythmdb_query_model_get_property),
14498         (rhythmdb_query_model_finalize):
14499         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
14500         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
14501         * rhythmdb/rhythmdb.h:
14502         * sources/rb-iradio-source.c: (impl_search):
14503         * sources/rb-library-source.c: (impl_search): Add query
14504         "preprocessing", which performs operations such as casefolding any
14505         strings that will be compared to any of the *_FOLDED properties.
14506         Closes bug 316039
14508 2005-09-27  James Livingston  <jrl@ids.org.au>
14510         * data/glade/daap-prefs.glade:
14511         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
14512         file for the daap preferences pane
14513         
14514         * sources/rb-sourcelist.c: (rb_sourcelist_init),
14515         (rb_sourcelist_append), (rb_sourcelist_remove),
14516         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
14517         don't display the column for source expanders unless there is an
14518         expandable source.
14520 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
14522         * .cvsignore:
14523         * Makefile.am:
14524         * configure.ac:
14525         * doc/.cvsignore:
14526         * doc/Makefile.am:
14527         * doc/reference/.cvsignore:
14528         * doc/reference/Makefile.am:
14529         * doc/reference/rhythmbox-docs.sgml:
14530         * doc/reference/rhythmbox-sections.txt:
14531         * doc/reference/rhythmbox.types:
14532         * doc/reference/tmpl/bacon-volume.sgml:
14533         * doc/reference/tmpl/disclosure-widget.sgml:
14534         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14535         * doc/reference/tmpl/eggnotificationbubble.sgml:
14536         * doc/reference/tmpl/eggtrayicon.sgml:
14537         * doc/reference/tmpl/gsequence.sgml:
14538         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14539         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14540         * doc/reference/tmpl/rb-daap-connection.sgml:
14541         * doc/reference/tmpl/rb-daap-dialog.sgml:
14542         * doc/reference/tmpl/rb-daap-mdns.sgml:
14543         * doc/reference/tmpl/rb-daap-share.sgml:
14544         * doc/reference/tmpl/rb-daap-sharing.sgml:
14545         * doc/reference/tmpl/rb-daap-source.sgml:
14546         * doc/reference/tmpl/rb-daap-src.sgml:
14547         * doc/reference/tmpl/rb-daap-structure.sgml:
14548         * doc/reference/tmpl/rb-debug.sgml:
14549         * doc/reference/tmpl/rb-dialog.sgml:
14550         * doc/reference/tmpl/rb-druid.sgml:
14551         * doc/reference/tmpl/rb-entry-view.sgml:
14552         * doc/reference/tmpl/rb-enums.sgml:
14553         * doc/reference/tmpl/rb-file-helpers.sgml:
14554         * doc/reference/tmpl/rb-glade-helpers.sgml:
14555         * doc/reference/tmpl/rb-header.sgml:
14556         * doc/reference/tmpl/rb-history.sgml:
14557         * doc/reference/tmpl/rb-ipod-source.sgml:
14558         * doc/reference/tmpl/rb-iradio-source.sgml:
14559         * doc/reference/tmpl/rb-library-source.sgml:
14560         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14561         * doc/reference/tmpl/rb-metadata.sgml:
14562         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14563         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14564         * doc/reference/tmpl/rb-play-order-linear.sgml:
14565         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14566         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14567         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14568         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14569         * doc/reference/tmpl/rb-play-order-random.sgml:
14570         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14571         * doc/reference/tmpl/rb-play-order.sgml:
14572         * doc/reference/tmpl/rb-player.sgml:
14573         * doc/reference/tmpl/rb-playlist-manager.sgml:
14574         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14575         * doc/reference/tmpl/rb-playlist-source.sgml:
14576         * doc/reference/tmpl/rb-preferences.sgml:
14577         * doc/reference/tmpl/rb-property-view.sgml:
14578         * doc/reference/tmpl/rb-query-creator-private.sgml:
14579         * doc/reference/tmpl/rb-query-creator.sgml:
14580         * doc/reference/tmpl/rb-rating-helper.sgml:
14581         * doc/reference/tmpl/rb-rating.sgml:
14582         * doc/reference/tmpl/rb-recorder.sgml:
14583         * doc/reference/tmpl/rb-refstring.sgml:
14584         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14585         * doc/reference/tmpl/rb-removable-media-source.sgml:
14586         * doc/reference/tmpl/rb-search-entry.sgml:
14587         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14588         * doc/reference/tmpl/rb-shell-glue.sgml:
14589         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14590         * doc/reference/tmpl/rb-shell-player.sgml:
14591         * doc/reference/tmpl/rb-shell-preferences.sgml:
14592         * doc/reference/tmpl/rb-shell.sgml:
14593         * doc/reference/tmpl/rb-song-display-box.sgml:
14594         * doc/reference/tmpl/rb-song-info.sgml:
14595         * doc/reference/tmpl/rb-source-header.sgml:
14596         * doc/reference/tmpl/rb-source.sgml:
14597         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14598         * doc/reference/tmpl/rb-sourcelist.sgml:
14599         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14600         * doc/reference/tmpl/rb-statusbar.sgml:
14601         * doc/reference/tmpl/rb-stock-icons.sgml:
14602         * doc/reference/tmpl/rb-string-helpers.sgml:
14603         * doc/reference/tmpl/rb-thread.sgml:
14604         * doc/reference/tmpl/rb-tray-icon.sgml:
14605         * doc/reference/tmpl/rb-tree-dnd.sgml:
14606         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14607         * doc/reference/tmpl/rb-util.sgml:
14608         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14609         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14610         * doc/reference/tmpl/rhythmdb-tree.sgml:
14611         * doc/reference/tmpl/rhythmdb.sgml:
14612         * macros/.cvsignore:
14613         * shell/Makefile.am:
14614         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
14615         (rb_source_finalize), (rb_source_set_property),
14616         (rb_source_get_property), (default_get_pixbuf),
14617         (_rb_source_show_popup):
14618         * sources/rb-source.h:
14619         Add support for gtk-doc in rhythmbox.
14620         Convert RBSource to use newer glib functions, such as add_private.
14621         Gives RBSource a default get_pixbuf implementation.
14623 2005-09-25  James Livingston  <jrl@ids.org.au>
14625         * NEWS: Update with about a months worth of changes
14627         * data/glade/song-info-multiple.glade:
14628         * data/glade/song-info.glade:
14629         * data/rhythmbox.schemas:
14630         * lib/rb-preferences.h:
14631         * rhythmdb/rhythmdb.h:
14632         * shell/rb-shell-player.c:
14633         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
14634         few remaining parts of autorating.
14636 2005-09-24  James Livingston  <jrl@ids.org.au>
14638         * shell/rb-shell.c: (rb_shell_constructor),
14639         (rb_shell_window_state_cb), (rb_shell_set_visibility),
14640         (rb_shell_window_configure_cb): store window state in the gconf keys,
14641         so that it gets used. Closes bugs 313893 and 137068.
14643 2005-09-20  James Livingston  <jrl@ids.org.au>
14645         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
14646         crash if the entry has a NULL string in a property
14647         
14648         * shell/rb-removable-media-manager.c:
14649         (rb_removable_media_manager_load_media): fix some memory leaks
14650         
14651         (rb_removable_media_manager_mount_volume),
14652         (rb_removable_media_manager_eject_medium_cb),
14653         (rb_removable_media_manager_cmd_eject_medium): use
14654         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14655         
14656         * sources/rb-removable-media-source.c:
14657         (rb_removable_media_source_set_property),
14658         (rb_removable_media_source_get_property): use
14659         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14661 2005-09-18  James Livingston  <jrl@ids.org.au>
14663         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
14664         column
14666         * data/glade/general-prefs.glade:
14667         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
14668         (rb_shell_preferences_column_check_changed_cb),
14669         (rb_shell_preferences_sync): add checkbox to control visibility
14670         of the column
14671         
14672         
14673         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14674         (save_entry):
14675         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
14676         (rhythmdb_prop_get_type):
14677         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
14678         was as "last played" is handled
14679         
14680         * sources/rb-library-source.c: (rb_library_source_constructor):
14681         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14682         Make the column show in the library and playlists
14683         
14684         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
14685         * widgets/rb-entry-view.h: add the column
14686         
14687         * widgets/rb-query-creator-properties.c: allow automatic playlists to
14688         be sorted by the column
14690 2005-09-16  James Livingston  <jrl@ids.org.au>
14692         * shell/rb-shell-player.c: (rb_shell_player_init),
14693         (rb_shell_player_do_previous_or_seek),
14694         (rb_shell_player_previous_button_cb),
14695         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14696         (rb_shell_player_playpause_button_cb): Make the previous button act
14697         the same as the menu item. Fix an inversion of the "previous track or
14698         seek" logic.
14699         
14700         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14701         
14702         (rb_shell_player_playpause): make --play-pause stop source that can't
14703         be paused
14705 2005-09-15  James Livingston  <jrl@ids.org.au>
14707         * configure.ac: increase totem-plparser requirements to 1.1.5
14709         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
14710         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
14711         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
14712         use the newer playlist APIs to save the name of the playlist, and use
14713         the name of a loaded playlist.
14715         Closes bug 309817.
14717 2005-09-15  James Livingston  <jrl@ids.org.au>
14719         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14721         * shell/Makefile.am: stop some linker warnings
14723         * shell/main.c: (main): make --no-registration work with dbus
14725 2005-09-15  James Livingston  <jrl@ids.org.au>
14727         * daapsharing/rb-daap-sharing.c: (create_share):
14728         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
14729         reference sinking and counting issues that I caused.
14731 2005-09-15  James Livingston  <jrl@ids.org.au>
14733         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
14734         playing" icon in the "now playing" column header.
14736 2005-09-14  James Livingston  <jrl@ids.org.au>
14738         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
14739         daap shares, when sharing is turned off.
14741 2005-09-12  Bastien Nocera  <hadess@hadess.net>
14743         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
14744         the GConf value's default, especially for badly installed schema
14745         files
14747 2005-09-12  James Livingston  <jrl@ids.org.au>
14749         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
14751         Patch from Paolo Borelli <pborelli@katamail.com>
14753         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
14754         grip when maximised. Closes bug 316055.
14756 2005-09-11  James Livingston  <jrl@ids.org.au>
14758         Patch from William Jon McCann <mccann@jhu.edu>
14760         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
14761         subclass of GtkStatusbar instead of GtkHBox.
14762         (rb_statusbar_construct): Don't set border width.
14763         (rb_statusbar_init): Use resize grip.  Don't use
14764         markup.
14765         (set_statusbar_tooltip, unset_statusbar_tooltip) 
14766         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
14767         Connect tooltips for actions.
14768         (rb_statusbar_sync_status): Push new message to statusbar.
14769         (rb_statusbar_set_progress): Don't use markup.
14770         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
14771         flag here since it prevents actually showing or hiding.
14772         (rb_statusbar_sync_with_source): Push new message to statusbar.
14774 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14776         * daapsharing/rb-daap-structure.c:
14777         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
14778         around debugging definition.
14780 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14781         
14782         * daapsharing/rb-daap-structure.c:
14783         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
14784         type = version.
14786         * daapsharing/rb-daap-mdns.c/h:
14787         (resolve_cb): Updated mDNS resolve callback to send service-name &
14788         name (read from Machine Name in the TXT data or equal to service-name
14789         if not in TXT).
14791         * daapsharing/rb-daap-source.c:
14792         (rb_daap_source_class_init), (rb_daap_source_set_property), 
14793         (rb_daap_source_get_property), (rb_daap_source_new),
14794         (find_source_by_service_name), (resolve_cb), (browse_cb), 
14795         (stop_resolver), (start_browsing), (stop_browsing), 
14796         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
14797         and added 'host' and 'port' gobject properties.  Updated to use new
14798         mDNS resolve callback sending service-name & name arguments.
14800 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14802         * daapsharing/rb-daap-mdns.c:
14803         (howl_strerror): New function to report errors from Howl
14804         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
14805         (get_sw_discovery), (get_avahi_client): Better error reporting from
14806         Howl & Avahi.
14808         * sources/rb-daap-source.:
14809         (start_browsing), (stop_browsing): Fixed a bug where browsing would
14810         not get started or stopped in some situations.
14811         
14812 2005-09-12  James Livingston  <jrl@ids.org.au>
14814         * shell/rb-removable-media-manager.c: add a missing include, that
14815         would stop compilation if ipod support wasn't turned on
14817 2005-09-11  James Livingston  <jrl@ids.org.au>
14819         * daapsharing/rb-daap-dialog.c: (encode_base64),
14820         (rb_daap_password_dialog_new_run),
14821         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
14822         it is no broken in to two pieces, and remove a use of a goto
14823         
14824         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
14825         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
14826         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
14827         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
14828         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
14829         memory leaks, and some code style things.
14830         
14831         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
14832         (rb_daap_share_init), (rb_daap_share_set_property),
14833         (rb_daap_share_dispose), (rb_daap_share_new),
14834         (rb_daap_share_get_property): make the DB and the playlist manager
14835         gobject properties.
14836         
14837         (message_add_standard_headers),
14838         (message_set_from_rb_daap_structure), (server_info_cb),
14839         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
14840         (server_cb), (add_db_entry), (db_entry_added_cb),
14841         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
14842         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
14843         style and use CONF_PREFIX in the gconf keys
14844         
14845         * daapsharing/rb-daap-sharing.c: (create_share),
14846         (enable_sharing_changed_cb), (share_name_changed_cb),
14847         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
14848         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
14849         (rb_daap_src_instance_init), (rb_daap_src_dispose),
14850         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
14851         (rb_daap_src_get_property), (rb_daap_src_getcaps),
14852         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
14853         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
14854         (rb_daap_src_get_time): Deal with gconf callbacks where the key
14855         hasn't actually changed, fix some memory leaks, code style and release
14856         gconf notifications when the object is destroyed.
14857         
14858         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
14859         (rb_daap_source_class_init), (rb_daap_source_init),
14860         (rb_daap_source_dispose), (rb_daap_source_set_property),
14861         (rb_daap_source_get_property), (rb_daap_source_new),
14862         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
14863         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
14864         (rb_daap_sources_init), (rb_daap_sources_shutdown),
14865         (rb_daap_source_activate), (rb_daap_source_disconnect),
14866         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
14867         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
14868         release gconf notifications, handle gconf callbacks where the key
14869         hasn't changed, make "real name" and "password protected" gobject
14870         properties, fix some code style and fix a memory leak.
14872 2005-09-11  James Livingston  <jrl@ids.org.au>
14874         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14876         * shell/rb-playlist-manager.c:
14877         (rb_playlist_manager_save_playlists),
14878         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
14879         when we aren't supposed to. (Closes bug 315886)
14881 2005-09-11  James Livingston  <jrl@ids.org.au>
14883         * shell/rb-removable-media-manager.c:
14884         (rb_removable_media_manager_class_init),
14885         (rb_removable_media_manager_init),
14886         (rb_removable_media_manager_dispose),
14887         (rb_removable_media_manager_set_property),
14888         (rb_removable_media_manager_get_property),
14889         (rb_removable_media_manager_new),
14890         (rb_removable_media_manager_load_media),
14891         (rb_removable_media_manager_volume_mounted_cb),
14892         (rb_removable_media_manager_volume_unmounted_cb),
14893         (rb_removable_media_manager_mount_volume),
14894         (rb_removable_media_manager_unmount_volume),
14895         (rb_removable_media_manager_source_deleted_cb),
14896         (rb_removable_media_manager_append_media_source),
14897         (rb_removable_media_manager_set_uimanager),
14898         (rb_removable_media_manager_eject_medium_cb),
14899         (rb_removable_media_manager_cmd_eject_medium):
14900         * shell/rb-removable-media-manager.h:
14901         * sources/rb-removable-media-source.c:
14902         (rb_removable_media_source_class_init),
14903         (rb_removable_media_source_init),
14904         (rb_removable_media_source_dispose),
14905         (rb_removable_media_source_set_property),
14906         (rb_removable_media_source_get_property), (impl_get_pixbuf),
14907         (impl_delete_thyself):
14908         * sources/rb-removable-media-source.h: Add the four files that I
14909         somehow managed not to add to cvs in the last commit. Oops.
14911 2005-09-11  James Livingston  <jrl@ids.org.au>
14913         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
14914         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
14915         
14916         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14917         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
14918         removable-media-manager on startup, and handle creation of sources.
14919         
14920         * sources/rb-ipod-source.h:
14921         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
14922         (rb_ipod_source_init), (rb_ipod_source_constructor),
14923         (rb_ipod_source_dispose), (rb_ipod_source_new),
14924         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
14925         the iPod source over to the removable media framework.
14926         
14927         * sources/rb-library-source.c: (paned_size_allocate_cb),
14928         (rb_library_source_get_paned_key): fix a potential bug is a
14929         library-derived source doesn't have a paned-key
14931 2005-09-11  Bastien Nocera  <hadess@hadess.net>
14933         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
14934         mp3 when we can't get the suffix of a file (Closes: #315941)
14936 2005-09-10  James Livingston  <jrl@ids.org.au>
14938         * configure.ac: fix the mdns tests, so that it doesn't complain about
14939         not finding one, if daap support isn't being compiled in
14941 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
14943         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
14945         * daapsharing/rb-daap-dialog.c:
14946         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
14947         HIG compliancy & images.
14949         * daapsharing/rb-daap-mdns.c:
14950         (browse_cb), (resolve_cb): Better detection of local services.  
14951         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
14952         Howl's limitations.  Fix the way collision handling is done under
14953         Avahi.
14955         * daapsharing/rb-daap-share.c:
14956         (publish_cb): Better name collision handling (at least for Avahi).
14958 2005-09-10  James Livingston  <jrl@ids.org.au>
14960         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
14961         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
14962         preferences more HIG compliant (Closes #315889)
14963         
14964         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
14965         list of files to be translated
14967 2005-09-10  James Livingston  <jrl@ids.org.au>
14969         * configure.ac: fix it so that --enable-daap=no works
14970         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
14971         uninstalled
14973 2005-09-10  James Livingston  <jrl@ids.org.au>
14975         Patch from Christophe Fergeau <teuf@gnome.org>
14977         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
14978         the ipod code.
14980 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14981         * README.daap: Updating documentation
14983 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14984         * AUTHORS: Added myself.
14986         * daapsharing/rb-daap-connection.c:
14987         (connection_login), (rb_connection_new): Reorganized password
14988         handling.
14990         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
14992         * shell/rb-shell.c:
14993         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
14995         * sources/rb-daap-source.c:
14996         (rb_daap_source_activate): Better error handling when we are unable to
14997         connect.
14998         
14999 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15000         * README.daap: Fixed some terminology.
15002         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
15003         New --with-mdns=auto|howl|avahi flag to specify.
15005         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
15006         name collision dialogs.
15008         * daapsharing/rb-daap-connection.c:
15009         (connection_get_password), (build_message), (http_get)
15010         (connection_login): Ask for & use a password if the share demands it.
15012         * daapsharing/rb-daap-connection.h: Changed prototype of
15013         rb_daap_connection_new.
15014         
15015         * daapsharing/rb-daap-mdns.c: 
15016         (resolve_cb): Better detection of your own music share so it doesn't 
15017         appear in the sourcelist.
15019         * daapsharing/rb-daap-share.c:
15020         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
15021         that start on any available port.
15023         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
15025         * sources/rb-daap-source.c:
15026         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
15027         (browse_cb): Handle passworded shares. Resolve the host immediately
15028         instead of when activated.
15029         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
15030         (rb_daap_source_new): New GConf keys for UI state.
15031         (rb_daap_source_activate): Use RBPlaylistSource instead of
15032         RBDAAPPlaylistSource
15033         
15034         * sources/rb-daap-playlist-source.c/h: Removed
15036         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
15037         if the playlist is local (i.e. not DAAP or iPod).
15038         
15039         * shell/rb-playlist-manager.c:
15040         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
15041         wouldn't get saved if the last playlist hadn't changed.  Only save
15042         local playlists.
15043         
15044 2005-09-09  James Livingston  <jrl@ids.org.au>
15046         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
15047         iPod preferences pane, as it already uses the browser views as the
15048         library.
15050 2005-09-09  James Livingston  <jrl@ids.org.au>
15052         * sources/rb-library-source.c: (rb_library_source_finalize),
15053         (rb_library_source_constructor): fix gconf monitoring of library
15054         preference keys.
15055         * sources/rb-library-source.h: remove declaration of function that
15056         does not exist
15058 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15060         * player/rb-player-gst.c:
15061         (rb_player_set_time): Fix seeking in daap streams.
15063 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15065         * data/rhythmbox.schemas: Turn music share browsing on by default.
15067 2005-09-07  James Livingston  <jrl@ids.org.au>
15069         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
15071 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15072         * player/rb-player-gst.c: 
15073         (rb_player_get_time): Fix for extra << & == that accidentally made
15074         it in.
15076         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
15077         
15078 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15079         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
15080         it in last time.  Sorry.
15082 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15083         
15084         * player/rb-player-gst.c:
15085         (rb_player_get_time): Fix a small crash appearing when
15086         the uri isn't set in the player, but rb_player_get_time() is
15087         still called.
15089         * configure.ac: Also check for libsoup 2.4, which is what ships with
15090         Gnome 2.12.
15092         * po/POTFILES.in: Added music sharing files that have translatable 
15093         strings.
15095         * README.daap: New file explaining "How Music Sharing Works"  
15097 2005-09-06  Bastien Nocera  <hadess@hadess.net>
15099         * daapsharing/.cvsignore: added
15101 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15103         * daapsharing/*: Music sharing library.
15104         
15105         * sources/rb-daap-source.c/h: Music share RBSource.
15106         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
15108         * configure.ac: --enable-daap flag to turn on music sharing. Requires
15109         libsoup and a mutlicast DNS implementation (howl or avahi).
15111         * data/rhythmbox.schemas: New GConf keys for music sharing.
15113         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
15114         source right click menu.
15116         * player/rb-player-gst.c: Changes to properly play & seek in remote
15117         music share files.
15119         * shell/rb-playlist-manager.c/h:
15120         (rb_playlist_manager_get_playlists): New function to get a GList * of
15121         the playlists.
15122         (rb_playlist_manager_save_playlists): Don't save music share playlists
15123         and fixed a GObject reference leak.
15125         * shell/rb-shell.c/h:
15126         (rb_shell_append_source): No longer a local function.  Now takes a
15127         parent RBSource * argument, NULL to append a toplevel source.
15128         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
15129         source (useful for disconnecting from remote music share,
15130         specifically).
15131         (rb_shell_quit): Stop music sharing/browsing.
15132         (rb_shell_playlist_added_cb): Work with tree source structure.
15133         (rb_shell_get_property): "playlist-manager" property accessor.
15134         (rb_shell_class_init): New "playlist-manager" property.
15135         (rb_shell_construor): Append sources as toplevel sources.  Initialize
15136         daap sharing/browsing.
15137         (rb_shell_select_source): Notify source of activation/deactivation.
15139         * shell/rb-shell-prefernces.c: Music sharing preferences.
15141         * sources/rb-source.c/h: New activate, deactivate and disconnect
15142         class functions.  Activate & deactivate are notification style 
15143         functions that will tell a source when it is selected/unselected.
15144         Disconnect can be hooked up to a UI object to disconnect the source.
15146         * sources/rb-sourcelist-model.c:
15147         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
15148         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
15149         append a toplevel source.
15151 2005-09-05  James Livingston  <jrl@ids.org.au>
15153         * rhythmdb/rhythmdb-query-model.c:
15154         (rhythmdb_query_model_entry_changed_cb),
15155         (rhythmdb_query_model_do_reorder): Update the query model's totals if
15156         the duration of filesize of an entry changes.  Emit the row-changed
15157         signals that I forgot to put back in, when I was doing query sorting.
15159         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
15160         out "0 minutes" or "0 bytes".
15162 2005-09-04  James Livingston  <jrl@ids.org.au>
15164         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
15165         remove a leftover bit of the "internal-name" property of sources.
15167 2005-09-03  James Livingston  <jrl@ids.org.au>
15169         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
15170         extraneous debug message
15171         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
15172         crasher would affect any library-derived sources (which was also a
15173         memory leak).
15175 2005-09-02  Colin Walters  <walters@verbum.org>
15177         * configure.ac: Fix sytnax error.
15179         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
15180         code to disable minimization icons - need to figure out
15181         why it doesn't work...
15183 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
15185         * data/glade/song-info-multiple.glade:
15186         * data/glade/song-info.glade:
15187         * widgets/rb-song-info.c: (rb_song_info_constructor):
15188         Add a mnemonic to the newly added "Automatically rate" label
15189         in the properties dialog and use a bold typeface like all the 
15190         other labels in the dialog. (Closes bug 315089)
15192 2005-09-03  James Livingston  <jrl@ids.org.au>
15194         * sources/rb-library-source.c: (rb_library_source_class_init),
15195         (rb_library_source_finalize), (rb_library_source_constructor),
15196         (rb_library_source_set_property), (rb_library_source_get_property),
15197         (impl_get_paned_key), (paned_size_allocate_cb),
15198         (rb_library_source_state_prefs_sync), (impl_show_popup),
15199         (rb_library_source_get_paned_key):
15200         * sources/rb-library-source.h: Allow sources derived from
15201         RBLibrarySource to use different gconf keys for sort order, browser
15202         visibility and browser pane position. Fix a crasher if a derived
15203         source overrides _get_pixbuf.
15205 2005-09-02  Colin Walters  <walters@verbum.org>
15207         * shell/rb-shell.c (rb_shell_set_visibility): Move
15208         hint setting which seems to avoid races more.
15209         
15210 2005-09-03  James Livingston  <jrl@ids.org.au>
15212         * shell/rb-shell.c: fix compilation with iPod support enabled
15213         
15214 2005-09-02  Colin Walters  <walters@verbum.org>
15216         * shell/rb-shell.c (struct RBShellPrivate): Add
15217         idle_hide_mainwindow_id.
15218         (rb_shell_constructor): Move taskbar skipping hint into
15219         rb_shell_set_visibility.
15220         (idle_hide_mainwindow): New function.
15221         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
15222         racy hack to avoid rb appearing in taskbar when minimized.
15224 2005-09-01  Colin Walters  <walters@verbum.org>
15226         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
15228         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
15229         from gtkstatusicion.c.
15231         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
15233         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
15234         TrayShowWindow entry.
15235         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
15236         (rb_tray_icon_constructor): Create action group here.
15237         (rb_tray_icon_finalize): Destroy action group.
15238         (rb_tray_icon_set_property): Don't take an action group.
15239         (rb_tray_icon_new): Ditto.
15240         (tray_popup_position_menu): Some mostly boilerplate code
15241         to position menu.
15242         (rb_tray_icon_button_press_event_cb): Position menu.
15243         (rb_tray_icon_get_geom): New function used for the shell
15244         to set minimization hints.
15246         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
15248         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
15249         (struct RBShellPrivate): Change visible to iconified.
15250         (set_icon_geometry): New function from Søren Sandmann to
15251         tell Metacity where to draw the minimization animiation.
15252         (rb_shell_window_state_cb): Update iconified.
15253         (rb_shell_get_visibility): New function to say whether
15254         or not we're currently visible.
15255         (rb_shell_set_visibility): Update to minimize to
15256         tray or present as appropriate.
15257         (rb_shell_window_delete_cb): On window close, just
15258         minimize to tray if we're deleted.
15259         (rb_shell_set_window_title): Kill old notification code.
15260         (rb_shell_toggle_visibility): Nwe function.
15261         (rb_shell_cmd_toggle_visibility): Call it.
15262         (rb_shell_constructor): Skip the taskbar.
15263         (tray_destroy_cb): Better debugging.
15264         
15265 2005-09-01  Colin Walters  <walters@verbum.org>
15267         * data/ui/rhythmbox-ui.xml: Add MusicClose.
15269         * configure.ac: Enable bonobo by default.
15270         
15271 2005-09-01  Colin Walters  <walters@verbum.org>
15273         * configure.ac: Default to old art.  Add macros subdir.
15275         * Makefile.am (SUBDIRS): Add macros.
15277         * macros/Makefile.am: New.
15278         
15279 2005-09-01  Colin Walters  <walters@verbum.org>
15281         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
15282         rb-shell-player.xml.
15284         * remote/dbus/rb-remote-dbus.h: Deleted.
15285         
15286         * remote/dbus/Makefile.am: Delete all the junk, just dist
15287         rb-print-playing.py and rb-set-rating.py.
15289         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
15291         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
15293 2005-09-02  James Livingston  <jrl@ids.org.au>
15295         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
15296         file from cvs
15298         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
15299         (rb_shell_constructor): Patches from Jonathan Matthew
15300         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
15301         a crash when using "browse this artist".
15303 2005-08-31  Colin Walters  <walters@verbum.org>
15305         * configure.ac: Add --with-old-art configure switch.  Also
15306         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
15307         but it doesn't work.
15309         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
15310         Don't use eel_create_colorized_pixbuf for new art.
15311         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
15313         * data/art-clearlooks: New artwork.
15314         
15315 2005-08-31  Colin Walters  <walters@verbum.org>
15317         * shell/main.c (main): Fix Bastien's commit to continue to focus
15318         the window with GTK+ 2.8 at least.
15319         
15320 2005-08-31  Colin Walters  <walters@verbum.org>
15322         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
15323         is already loaded.
15325         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
15327 2005-08-31  Bastien Nocera  <hadess@hadess.net>
15329         * README: remove mentions of the xine-lib backend
15330         * shell/main.c: (main): make it compilable with gtk+ < 2.8
15332 2005-08-30  Colin Walters  <walters@verbum.org>
15334         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
15335         Make non-visible sources insensitive.
15336         
15337 2005-08-30  Colin Walters  <walters@verbum.org>
15339         * shell/rb-shell.c: Don't use GConf for selected source; it's
15340         confusing to have the selected source change after startup,
15341         and since we don't save other things it's not worth saving this.
15343         * sources/rb-playlist-source.c:
15344         * sources/rb-library-source.c:
15345         * sources/rb-iradio-source.c:
15346         * sources/rb-ipod-source.c: Delete internal-name property usage.
15347         * sources/rb-source.c: Delete internal-name property.
15349         * data/rhythmbox.schemas: Delete selected_source.
15350         
15351 2005-08-30  Colin Walters  <walters@verbum.org>
15353         * sources/rb-sourcelist.c: Make playing source bold instead of
15354         displaying a pixbuf; it's much less ugly.
15355         
15356 2005-08-30  Colin Walters  <walters@verbum.org>
15358         * sources/rb-source.c:
15359         * sources/rb-source.h: New virtual method try_playlist.
15361         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
15362         impl_try_playlist.
15363         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
15364         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
15365         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
15366         need to.
15367         (stations_view_drag_data_received_cb): Don't check for iradio uris;
15368         in theory we should though...
15370         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
15371         list in rb_shell_construct now.
15372         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
15373         RBiPodSource.
15374         (rb_shell_constructor): Create library, iradio, ipod here.
15375         (rb_shell_source_deleted_cb): Use source directly instead of
15376         indirecting through type.
15377         (rb_shell_sync_selected_source): Ditto.
15378         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
15379         from the type instead of special-casing.
15380         (rb_shell_guess_type_for_uri) 
15381         (rb_shell_add_uri)
15382         (handle_one_uri_with_possible_metadata): New functions.
15383         (rb_shell_load_uri): Refactor to allow loading playlists again,
15384         also use other URI infrastructure.
15386         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
15387         (rb_shell_player_error): Always set entry error on error, instead
15388         of depending on EOF behavior.
15390         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
15391         to just invoke rb_shell_add_uri.
15392         (rb_playlist_manager_parse_file): Return error instead of tossing
15393         up dialog box directly.
15394         (load_playlist_response_cb): Display error here.
15395         (add_uri_to_playlist): Delete.
15396         (handle_playlist_entry_into_playlist_cb): Renamed to
15397         handle_playlist_entry_cb.
15399         * shell/rb-playlist-manager.h: Add error, update prototype.
15401         * lib/rb-file-helpers.c:
15402         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
15404 2005-08-29  Colin Walters  <walters@verbum.org>
15406         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
15407         if entry already exists.  Use rhythmdb_entry_set_uninserted.
15409         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
15410         needlessly duping string, and use rhythmdb_entry_set_uninserted.
15411         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
15413         * shell/rb-shell.h (enum RBShellError): Add some more errors.
15414         Prototype rb_shell_set_song_property.
15416         * shell/rb-shell.xml: Export setSongProperty.
15418         * shell/rb-shell.c (rb_shell_set_song_property): New function.
15419         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
15420         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
15422         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
15423         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
15424         want to notify of the change.
15425         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
15427         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
15428         logic error; idle functions would be enqueued for each set.
15429         (rhythmdb_entry_set): Fix assertion logic error.
15431         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
15432         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
15433         Return if the entry already exists.
15434         
15435 2005-08-29  Colin Walters  <walters@verbum.org>
15437         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
15438         "inserted" member which we use to keep track of
15439         whether or not an entry is in the DB.  Prototype
15440         rhythmdb_entry_set_uninserted.
15442         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
15443         flag.
15444         (rhythmdb_entry_insert): Assert entry is not already inserted.
15445         (rhythmdb_process_metadata_load): Update to call _set_uninserted
15446         just after creating entry.
15447         (rhythmdb_entry_set): Document, and fail on uninserted entries.
15448         (rhythmdb_entry_set_nonotify): Ditto.
15449         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
15450         entries.
15451         (rhythmdb_entry_set_internal): Change notify flag to
15452         notify_if_inserted.  Also move notification after assertions.
15454         Update all existing callers of rhythmdb_entry_set_internal
15455         to give TRUE for notify_if_inserted; this should be what
15456         we want but may be an efficiency hit.
15457         
15458 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15460         * shell/rb-shell-player.c: (rb_shell_player_init),
15461         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
15462         (rb_shell_player_set_playing_source_internal),
15463         (rb_shell_player_sync_with_selected_source): Notify the player when an
15464         entry has updated the title, album or artist field, and resync the big
15465         display.
15466         
15467         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15468         * sources/rb-library-source.c: (rb_library_source_class_init),
15469         (impl_get_config_widget):
15470         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
15471         * sources/rb-source.c:
15472         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
15473         get_album functions in rb-source and adapted other sources accordingly.
15474         
15475 2005-08-29  Colin Walters  <walters@verbum.org>
15477         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
15478         signal_change member.
15479         (threadsafe_entry_set): New function.
15480         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
15481         (rhythmdb_entry_set_nonotify): New function; just call
15482         threadsafe_entry_set with FALSE.
15483         (rhythmdb_entry_set_internal): Take a notify flag; if true
15484         add the change to our pending set.
15486         Also update all internal callers of rhythmdb_entry_set_internal
15487         to pass FALSE.  Some of these may be bugs however and need to
15488         pass TRUE...
15490         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
15491         rhythmdb_entry_set, and rename rhythmdb_entry_set to
15492         rhythmdb_entry_set_nonotify.
15494         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
15495         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
15497         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
15499         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
15500         * sources/rb-source.c (rb_source_update_play_statistics): 
15501         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
15502         * sources/rb-ipod-source.c (entry_set_string_prop) 
15503         (load_ipod_db_idle_cb): 
15504         * shell/rb-shell.c (rb_shell_set_rating_impl): 
15505         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
15506         (info_available_cb): 
15507         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
15508         (rb_station_properties_dialog_sync_entries): 
15509         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
15511         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
15512         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
15513         
15514 2005-08-29  Colin Walters  <walters@verbum.org>
15516         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
15518         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
15519         linking insanity.
15521         * widgets/rb-header.c (sanitize_string): New function, extracted
15522         from old info_url.  Be sure to always strip the string.
15523         (info_url): Rewrite to take artist/album, and generate a sane
15524         URL for them from last.fm, which is better than allmusic.com in
15525         that they support Rhythmbox, and have a *SANE* URL scheme.
15526         (artist_info_url, album_info_url): Delete.
15527         (rb_header_sync): Use info_url.
15529 2005-08-29  James Livingston  <jrl@ids.org.au>
15531         * sources/rb-source.c: (rb_source_search): Check to ensure that this
15532         is implemented before calling it. Many sources don't implement the
15533         method.
15535 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
15537         * data/glade/create-playlist.glade:  Cleanup the layout,
15538         and add a few more mnemonics.
15539         * shell/rb-playlist-manager.c:
15540         (rb_playlist_manager_cmd_load_playlist),
15541         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
15542         capitalization for window titles.
15543         * widgets/rb-query-creator-properties.c: Add mnemonics
15544         to checkbutton labels.
15545         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
15546         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
15548 2005-08-28  Colin Walters  <walters@verbum.org>
15550         * data/rhythmbox.schemas: Delete search_text for library
15551         and iradio; this isn't a persistent value anymore.
15552         Closes #313757.
15553         
15554         * sources/rb-source.h:
15555         * sources/rb-source.c: Delete impl_can_search.
15557         * sources/rb-iradio-source.c: Delete search_text usage.
15558         * sources/rb-library-source.c: Ditto.
15560         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
15561         search when source is set, and just do rb_source_search in
15562         rb_source_header_search_cb.
15564         * shell/rb-shell.c (rb_shell_append_source): Don't
15565         initiate search.
15567         * shell/Makefile.am: Don't dist dashboard.c.
15569 2005-08-28  Colin Walters  <walters@verbum.org>
15571         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
15572         
15573 2005-08-28  Colin Walters  <walters@verbum.org>
15575         * data/org.gnome.Rhythmbox.service.in: New.
15577         * data/Makefile.am: Install service file.
15579         * configure.ac: Define DBUS_SERVICES_DIR.
15581         * autogen.sh: Set ACLOCAL_FLAGS.
15583         * macros/acinclude.m4: New.
15584         
15585 2005-08-28  Colin Walters  <walters@verbum.org>
15587         Initial patch from Jonathan Matthew; closes 313684.
15589         * rhythmdb/rhythmdb-tree.c:
15590         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
15591         (save_entry): Return on error.
15592         (rhythmdb_tree_save): Handle error when saving the
15593         db; additionally, handle errors from fclose and unlink,
15594         and print error too.
15596 2005-08-28  Colin Walters  <walters@verbum.org>
15598         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
15599         extra _.
15600         
15601 2005-08-28  Colin Walters  <walters@verbum.org>
15603         * configure.ac: Change iPod support to --with-ipod;
15604           automatically enable it if we have HAL.  Try to
15605           support both HAL 0.5 and HAL 0.2.  Break out
15606           totem-plparser into its own check so later we
15607           can do version tests there too.
15608           Kill dashboard support.
15609         
15610         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
15611         to support HAL > 0.5, but preserve the old code for HAL < 0.5
15612         Closes #310017.
15613         
15614         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
15615         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
15617         * sources/Makefile.am: Also handle
15618         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
15620         * shell/dashboard.c: Delete; someone should just write a little
15621         python shim which lists on the D-BUS interface and writes the
15622         stuff to Dashboard.  Even better Dashboard should be ported
15623         to D-BUS and do the listening itself, perhaps on an abstract
15624         "org.gnome.MusicPlayer" interface or something.
15626         * shell/rb-shell.c: Kill dashboard support.
15628 2005-08-28  Colin Walters  <walters@verbum.org>
15630         * remote/dbus/rb-print-playing.py: New file.
15632 2005-08-28  Colin Walters  <walters@verbum.org>
15634         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
15635         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
15637         * shell/rb-shell-player.h:
15638         * shell/rb-shell-player.c: Add playing-uri-changed signal.
15639         * shell/rb-shell-player.xml: Export it.
15641         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
15642         (rb_shell_error_quark): New.
15644         * shell/rb-shell.h: Prototype.  Also add RBShellError.
15645         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
15646         
15647 2005-08-28  Colin Walters  <walters@verbum.org>
15649         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
15650         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
15651         bonobo_unlock.
15652         (rb_remote_bonobo_preinit): Lock setting moved here.
15653         (rb_remote_bonobo_init): From here.
15655         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
15656         Also invoke handle_cmdline in the right place.
15657         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
15658         GFunc.
15660 2005-08-28  James Livingston  <jrl@ids.org.au>
15662         * NEWS: keep the NEWS file up to date, so we don't have to do it all
15663         when 0.9.1 comes around.
15665 2005-08-28  James Livingston  <jrl@ids.org.au>
15667         * iradio/rb-new-station-dialog.c:
15668         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
15669         bug 314477.
15671 2005-08-28  James Livingston  <jrl@ids.org.au>
15673         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15675         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
15676         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
15677         is a song is longer than 60 minutes. Closes bug 313311.
15679 2005-08-27  James Livingston  <jrl@ids.org.au>
15681         * data/glade/create-playlist.glade:
15682         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
15683         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
15684         "minutes" as an option in the playlist limit menu.
15686         * rhythmdb/rhythmdb-query-model.c:
15687         (rhythmdb_query_model_class_init),
15688         (rhythmdb_query_model_set_property),
15689         (rhythmdb_query_model_get_property),
15690         (rhythmdb_query_model_update_limited_entries): Allow query models to
15691         have a time limit
15692         
15693         * shell/rb-playlist-manager.c:
15694         (rb_playlist_manager_set_automatic_playlist),
15695         (rb_playlist_manager_cmd_edit_automatic_playlist):
15696         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
15697         (rb_playlist_source_get_query), (impl_receive_drag),
15698         (rb_playlist_source_new_from_xml),
15699         (rb_playlist_source_save_to_xml),
15700         (rb_playlist_source_songs_sort_order_changed_cb),
15701         (rb_playlist_source_do_query):
15702         * sources/rb-playlist-source.h:
15703         * widgets/rb-query-creator.h: Allow playlists to be limited by time
15705 2005-08-27  James Livingston  <jrl@ids.org.au>
15707         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
15709         * configure.ac:
15710         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
15711         non-standard location. Closes bug 314640.
15713 2005-08-26  Colin Walters  <walters@verbum.org>
15714         
15715         Patch from Olivier Blin <oblin@mandriva.com>
15717         * widgets/eggnotificationbubble.c (draw_bubble): 
15718         Handle extreme-left case as well.
15719         
15720 2005-08-26  Colin Walters  <walters@verbum.org>
15722         * shell/rb-shell.c (idle_save_state): Don't do this.
15723         (rb_shell_construct): Remove idle calls to idle_save_state.
15724         We should save the playlists automatically when they're
15725         modified.
15726         (rb_shell_load_uri): Don't try to re-stat entry if it already
15727         exists.
15729         * shell/rb-shell-player.c: Keep track of entry we are attempting
15730         to play.
15731         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
15732         Don't double-free error.
15733         (rb_shell_player_play_entry): Signal errors.
15734         (rb_shell_player_entry_activated_cb): Ditto.
15735         (rb_shell_player_property_row_activated_cb): Ditto.
15736         (rb_shell_player_set_playing_source_internal): Unset attempted
15737         playing entry.
15738         (rb_shell_player_error): Refactor to be usable both sync and
15739         async.  Handle case where displayed entry differs from entry.
15740         (error_cb): Move GDK locking here.
15742         * shell/main.c (main): Drop most commandline arguments for D-BUS;
15743         people can just use dbus-send or python.  We only support focusing
15744         and loading files.
15745         (load_uri_args): New function, extracted from handle_cmdline.
15746         (dbus_load_uri, bonobo_load_uri): New functions.
15748         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
15749         appropriate.
15751         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
15752         * remote/dbus/rb-remote-dbus.c: Deleted.
15754         * player/rb-player-gst.c: Clear any pending idle handlers when we
15755         close the player.  Signal errors generated during open/play etc
15756         as synchronous errors.
15758         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
15759         
15760 2005-08-26  Colin Walters  <walters@verbum.org>
15762         * shell/rb-shell.c (rb_shell_present): Try harder.
15764 2005-08-26  Colin Walters  <walters@verbum.org>
15766         * shell/rb-shell.c (rb_shell_present): Try to handle
15767         GTK_MINOR_VERSION < 8.
15769 2005-08-26  James Livingston  <jrl@ids.org.au>
15771         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
15772         <pbrobinson@gmail.com>
15774 2005-08-26  Colin Walters  <walters@verbum.org>
15776         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
15778 2005-08-25  Colin Walters  <walters@verbum.org>
15780         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
15781         Delete.
15782         (rb_shell_player_do_next_with_rating): Move back into
15783         rb_shell_player_do_next.
15784         (rb_shell_player_entry_activated_cb): Remove call to
15785         rb_shell_player_auto_adjust_rating.
15786         (do_next_idle): Just call rb_shell_player_do_next.
15788         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
15790 2005-08-25  Colin Walters  <walters@verbum.org>
15792         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
15793         before gtk_window_present_with_time.
15794         
15795 2005-08-25  Colin Walters  <walters@verbum.org>
15797         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
15798         default.
15800         * shell/rb-shell.c (rb_shell_constructor): Adapted from
15801         rb_shell_construct.  This is so we only have to do g_object_new.
15802         (rb_shell_get_player): New function.
15803         (rb_shell_get_player_path): Ditto.
15804         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
15805         
15806         * shell/rb-shell.h: Prototype them.
15808         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
15809         export over D-BUS.
15810         (reemit_playing_signal): New function.
15811         (rb_shell_player_open_playlist_location): Use return values from
15812         rb_player_open, rb_player_close, etc. instead of checking "error".
15813         Return a gboolean on failure.
15814         (rb_shell_player_open_entry): Just open entry location, don't
15815         print to stderr.
15816         (rb_shell_player_play): Handle retval from rb_player_play.  Return
15817         a gboolean.
15818         (do_next_idle): Move logic for handling of end of playlist here.
15819         (rb_shell_player_set_playing_entry): Take a GError, return a
15820         gboolean.  Update to use gboolean return values.
15821         (rb_shell_player_do_previous): Delete lots of crazy duplicate
15822         logic.  Signal an error on end of playlist.  Also signal error if
15823         we're not playing.  Move heuristic for replaying the song into
15824         rb_shell_player_cmd_previous.
15825         (rb_shell_player_do_next_with_rating): Signal error on end of
15826         playlist.
15827         (rb_shell_player_do_next): Return errors.
15828         (rb_shell_player_cmd_previous): Heuristic for restarting song
15829         moved here; the idea is you generally only want that from the GUI.
15830         (rb_shell_player_cmd_play): Handle error.
15831         (rb_shell_player_playpause): Signal errors.
15832         (filter_mmkeys): Use rb_shell_player_cmd_previous and
15833         rb_shell_player_cmd_next in favor of the internal _do functions.
15834         
15835         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
15836         errors.  Update prototypes for above changes.
15838         * shell/main.c: More tightly integrate D-BUS; register various
15839         major singleton objects here.  Fix handle_cmdline so we only
15840         process extra arguments, not every argument.
15842         * shell/Makefile.am: Generate D-BUS glue headers.
15844         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
15845         into shell/main.c.  Now this file just acts as a client library.
15846         Not heavily tested.
15848         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
15849         Moved here.
15850         (rb_remote_bonobo_init): Move long CORBA rant here along with
15851         setting of lock functions.
15853         * player/rb-player-gst.c (rb_player_construct)
15854         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
15855         on error.
15857         * player/rb-player.h: Update prototypes.
15859         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
15860         rb-remote-bonobo.c.
15861         (rb_threads_init): Don't set gdk lock functions here.
15863 2005-08-25  James Livingston  <jrl@ids.org.au>
15865         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15867         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
15868         * lib/rb-tree-dnd.h:
15869         * rhythmdb/rhythmdb-property-model.c:
15870         (rhythmdb_property_model_class_init),
15871         (rhythmdb_property_model_drag_source_init),
15872         (rhythmdb_property_model_iter_parent),
15873         (rhythmdb_property_model_row_draggable),
15874         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
15875         (rhythmdb_property_model_drag_data_get),
15876         (rhythmdb_property_model_enable_drag):
15877         * rhythmdb/rhythmdb-property-model.h:
15878         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
15879         (rb_playlist_manager_set_property), (append_new_playlist_source),
15880         (rb_playlist_manager_save_playlists):
15881         * shell/rb-shell.c: (rb_shell_construct),
15882         (sourcelist_drag_received_cb):
15883         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15884         * sources/rb-playlist-source.c: (impl_receive_drag):
15885         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
15886         (rb_sourcelist_model_drag_dest_init),
15887         (rb_sourcelist_model_set_dnd_targets),
15888         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
15889         (rb_sourcelist_model_row_drop_position),
15890         (rb_sourcelist_model_get_drag_target),
15891         (rb_sourcelist_model_drag_data_get):
15892         * sources/rb-sourcelist-model.h:
15893         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
15894         (rb_sourcelist_init), (rb_sourcelist_get_property),
15895         (rb_sourcelist_selection_changed_cb):
15896         * sources/rb-sourcelist.h:
15897         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
15898         improve drag-n-drop support. Allow dragging of item from property
15899         views to the source list, to create new automatic playlists. Allow
15900         playlist re-ordering. Fix dragging from Rhythmbox to other
15901         applications. (Closes bug 147337)
15903 2005-08-24  Colin Walters  <walters@verbum.org>
15905         Patch from Olivier Blin <oblin@mandriva.com>
15907         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
15908         correctly in the case where the window is next to monitor edge.
15910 2005-08-24  James Livingston  <jrl@ids.org.au>
15912         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
15913         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
15914         a gobject property to get the query model that backs the playlist.
15916 2005-08-24  James Livingston  <jrl@ids.org.au>
15918         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
15919         (handle_playlist_entry_into_playlist_cb),
15920         (rb_playlist_manager_playlist_entries_changed): Disable the "create
15921         audio cd" menu item when a non-playlist source is selected, or the
15922         playlist is empty. (Closes Bug 313253)
15924 2005-08-24  James Livingston  <jrl@ids.org.au>
15926         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
15927         Fix the playlist length checkso it doesn't report 0 for automatic
15928         playlists. This was stopping automati playlists being burnt to cd.
15930 2005-08-24  James Livingston  <jrl@ids.org.au>
15932         * configure.ac:
15933         * sources/rb-playlist-source-recorder.c: (burn_cd):
15934         * sources/rb-playlist-source.c:
15935         (rb_playlist_source_songs_sort_order_changed_cb):
15936         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
15937         more warnings that occur when compiling RPMs on Fedora.
15939 2005-08-24  James Livingston  <jrl@ids.org.au>
15941         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
15942         was stopping some distros gcc version compiling.
15944 2005-08-24  James Livingston  <jrl@ids.org.au>
15946         * NEWS:
15947         * data/glade/create-playlist.glade:
15948         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
15949         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
15950         (rhythmdb_query_free), (rhythmdb_query_serialize),
15951         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
15952         * rhythmdb/rhythmdb.h:
15953         * shell/rb-playlist-manager.c:
15954         (rb_playlist_manager_set_automatic_playlist),
15955         (rb_playlist_manager_cmd_edit_automatic_playlist):
15956         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
15957         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
15958         (impl_receive_drag), (rb_playlist_source_new_from_xml),
15959         (rb_playlist_source_save_to_xml),
15960         (rb_playlist_source_songs_sort_order_changed_cb),
15961         (rb_playlist_source_do_query):
15962         * sources/rb-playlist-source.h:
15963         * widgets/Makefile.am:
15964         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
15965         (rb_entry_view_set_sorting_order):
15966         * widgets/rb-query-creator-private.h:
15967         * widgets/rb-query-creator-properties.c:
15968         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
15969         (stringCriteriaGetWidgetData),
15970         (escapedStringCriteriaSetWidgetData),
15971         (escapedStringCriteriaGetWidgetData), (set_rating_score),
15972         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
15973         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
15974         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
15975         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
15976         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
15977         (relativeTimeCriteriaCreateWidget),
15978         (relativeTimeCriteriaSetWidgetData),
15979         (relativeTimeCriteriaGetWidgetData):
15980         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
15981         (rb_query_creator_class_init), (rb_query_creator_constructor),
15982         (rb_query_creator_dispose), (rb_query_creator_set_property),
15983         (rb_query_creator_get_property), (rb_query_creator_load_query),
15984         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
15985         (get_entry_for_property), (rb_query_creator_get_query),
15986         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
15987         (limit_toggled_cb), (lookup_row_by_widget),
15988         (remove_button_click_cb), (append_row),
15989         (get_property_index_from_proptype), (select_criteria_from_value),
15990         (property_option_menu_changed), (create_property_option_menu),
15991         (create_criteria_option_menu), (sort_option_menu_changed),
15992         (setup_sort_option_menu):
15993         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
15994         playlists. The two most notable improvements are 1) adding more
15995         properties to the query creator, making it much easier to add more in
15996         the future, and 2) allow playlists to be sorted, from the query editor
15997         if they gave limits, and by clicking on column headers if they don't.
15999         Files added: widgets/rb-query-creator-private.h,
16000         sources/rb-query-creator-properties.c
16002 2005-08-21  James Livingston  <jrl@ids.org.au>
16004         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
16005         error=NULL. This stops some crashes.
16007 2005-08-19  Colin Walters  <walters@verbum.org>
16009         Patch from Olivier Blin <oblin@mandriva.com>
16011         * widgets/eggnotificationbubble.c (force_window): Support top
16012         orientation.
16013         * widgets/eggnotificationbubble.h: Remove
16014         egg_notification_bubble_force_window from header.
16015         
16016 2005-08-18  James Livingston  <jrl@ids.org.au>
16018         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
16019         with the changes since then.
16021 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
16023         * shell/rb-shell-player.c: (rb_shell_player_init),
16024         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
16025         (rb_shell_player_volume_widget_changed_cb):
16026         * sources/rb-iradio-source.c:
16027         * sources/rb-library-source.c:
16028         * sources/rb-playlist-source.c:
16029         * widgets/Makefile.am:
16030         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
16031         (bacon_volume_button_class_init), (bacon_volume_button_init),
16032         (bacon_volume_button_dispose), (bacon_volume_button_new),
16033         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
16034         (bacon_volume_button_scroll), (bacon_volume_button_press),
16035         (cb_button_timeout), (cb_button_press), (cb_button_release),
16036         (bacon_volume_release_grab), (cb_dock_press),
16037         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
16038         (bacon_volume_scale_new), (bacon_volume_scale_press),
16039         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
16040         * widgets/bacon-volume.h:
16041         * widgets/rb-volume.c:
16042         * widgets/rb-volume.h:
16043           Use BaconVolumeButton (#300867).
16045 2005-08-17  James Livingston  <jrl@ids.org.au>
16047         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
16048         (rhythmdb_process_metadata_load): don't reset the First Seen time
16049         whenever we recheck the metadata.
16051 2005-08-17  James Livingston  <jrl@ids.org.au>
16053         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16054         temporary workaround to stop crashes when trying to burn an empty
16055         playlist. Doesn't disable the menu item which is the better solution
16056         (Bug 313253).
16058 2005-08-15  James Livingston  <jrl@ids.org.au>
16060         * shell/rb-source-header.c: (rb_source_header_init),
16061         (rb_source_header_sync_control_state),
16062         (rb_source_header_search_activate_cb):
16063         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
16064         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
16065         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
16066         (rb_search_entry_init), (rb_search_entry_searching),
16067         (rb_search_entry_activate_cb):
16068         * widgets/rb-search-entry.h: Move focus to the entry view when user
16069         presses enter in the search box. Patch from Paolo Borelli
16070         <pborelli@katamail.com> (Closes bug 128110)
16072 2005-08-15  James Livingston  <jrl@ids.org.au>
16074         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
16075         (rb_playlist_manager_new_playlist):
16076         * shell/rb-playlist-manager.h:
16077         * shell/rb-shell.c: (rb_shell_construct),
16078         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
16079         the source list to be shown when a new playlist is created. (Closes
16080         bug 161935)
16082 2005-08-15  James Livingston  <jrl@ids.org.au>
16084         * widgets/rb-header.c: (rb_header_init),
16085         (rb_header_set_show_timeline): disable the seek slider, rather than
16086         hiding it, which more closely follows the HIG. (Closes bug 139102)
16088 2005-08-13  Colin Walters  <walters@verbum.org>
16090         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
16091         rb_shell_hidden_notify.
16092         (rb_shell_hidden_notify): Notify if the shell is hidden.
16093         (rb_shell_set_visibility_impl): Debug goo.
16095         * shell/rb-shell.h: Export rb_shell_hidden_notify.
16097         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
16098         when the user clicks on notification.
16100         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
16101         CD burn is complete.
16102         (rb_playlist_source_recorder_finalize): Unref shell.
16103         (rb_playlist_source_recorder_new): Take shell.
16105         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
16106         Pass shell to RBPlaylistSourceRecorder.
16107         
16108 2005-08-13  Colin Walters  <walters@verbum.org>
16110         * lib/rb-thread.c:
16111         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
16112           time to convert.
16114 2005-08-13  Colin Walters  <walters@verbum.org>
16116         * widgets/eggnotificationbubble.h:
16117         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
16118         * widgets/eggtrayicon.c:
16119         * widgets/eggtrayicon.h: Add notification API.
16120         * shell/rb-tray-icon.c:
16121         * shell/rb-tray-icon.h: Add notification API.
16122         * shell/rb-shell.c: Notify on song change.
16124 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16126         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
16127         Correct an inversion of two lines causing NULL to be unreffed
16129 ============ Version 0.9.0
16131 2005-08-10  Bastien Nocera  <hadess@hadess.net>
16133         * configure.ac: 0.9.0, whee!
16134         * NEWS: badly updated
16135         * remote/bonobo/Makefile.am:
16136         * remote/bonobo/rb-remote-bonobo.h:
16137         * shell/Makefile.am:
16138         * shell/main.c: make distcheck fixes