2006-10-25 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
blob7ac556f60db71addac6ffa1a9bc7d7bd2bd48039
1 2006-10-25  James Livingston  <doclivingston@gmail.com>
3         * plugins/artdisplay/Makefile.am:
4         * plugins/audioscrobbler/Makefile.am:
5         * plugins/iradio/Makefile.am: fix "make distcheck"
7 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9         patch by: Brian Cameron <brian.cameron@sun.com>
11         * plugins/audiocd/Makefile.am:
12         Link audiocd plugin with libnautilus-burn as required to get it to work
13         on Solaris.  Fixes #363288.
15 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
17         patch by:  Gabor Kelemen  <kelemeng@gnome.hu>
19         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
20         Clarify that we don't submit actual songs to last.fm, just information
21         on what you're listening to.  Fixes #364014.
23 2006-10-24  Bastien Nocera  <hadess@hadess.net>
25         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
26         (bacon_volume_button_class_init), (bacon_volume_button_new),
27         (bacon_volume_key_release), (cb_button_timeout), (cb_button_press),
28         (cb_dock_button_press), (cb_dock_key_release), (cb_dock_key_press),
29         (bacon_volume_scale_value_changed): update from libbacon, to get
30         better accessibility support (Closes: #364637)
32 2006-10-24  James Livingston  <doclivingston@gmail.com>
34         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
36         * configure.ac: fix some typos and leftovers from disabled->enabled
37         changes. Fixes #364217
39 2006-10-23  William Jon McCann  <mccann@jhu.edu>
41         * shell/rb-source-header.c (rb_source_header_init):
42         Don't require source header cells to be homogeneous.
43         Patch from #359188
45 2006-10-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
47         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
48         Pause the pipeline while buffering.  Fixes #358290.
50 2006-10-23  Bastien Nocera  <hadess@hadess.net>
52         * configure.ac: update required libgpod version to avoid crashes
53         when starting up with an iPod connect (Closes: #352972)
54         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path),
55         (hal_udi_is_ipod): remove outdated ifdefs
57 2006-10-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
59         * plugins/Makefile.am:
60         * plugins/power-manager/rb-power-manager-plugin.c:
61         Don't try to build the power-manager plugin with dbus < 0.35.
63 2006-10-22  James Livingston  <doclivingston@gmail.com>
65         patch by: Ed Catmur  <ed@catmur.co.uk>
67         * plugins/artdisplay/Makefile.am:
68         * plugins/artdisplay/artdisplay/__init__.py:
69         * plugins/artdisplay/rhythmbox-missing-artwork.svg: display some
70         placeholder art when none is available, to avoid having the widget pop
71         in and out of existance.
73 2006-10-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
75         * plugins/lyrics/lyrics.py:
76         Set the lyrics window transient for the main window so it can
77         actually be seen in party mode.  Fixes #362981.
79 2006-10-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
81         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
82         * sources/rb-source.c: (rb_source_class_init),
83         (rb_source_can_show_properties), (rb_source_song_properties):
84         * sources/rb-source.h:
85         Only enable the 'properties' item in the 'music' menu if the selected
86         source implements the show_properties method.  Fixes #356485.
88 2006-10-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
90         * shell/rb-shell-player.c:
91         (rb_shell_player_property_row_activated_cb):
92         Take the entry to play from the play order, rather than grabbing the
93         first entry in the query model.  Fixes #362042.
95 2006-10-16  James Livingston  <doclivingston@gmail.com>
97         * shell/main.c: (main): save custom menu accelerators before exiting.
98         Fixed #362300
100 2006-10-13  Ryan P Skadberg  <skadz@stigmata.org>
102         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
103         I HATE adding this patch, but I'm sick of hitting Yes once
104         and hour.  Working around brain-dead podcasts.
106 2006-10-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
108         * plugins/lyrics/lyrics.py:
109         Disconnect the create-song-info handler when deactivated.
110         Fixes #361882.
112 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
114         * widgets/rb-search-entry.c: (rb_search_entry_changed_cb):
115         Reset the style when clearing the search text.  Fixes #361295.
117 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
119         * rhythmdb/rhythmdb-query-model.c:
120         (rhythmdb_query_model_entry_changed_cb):
121         Don't emit entry-prop-changed for hidden signals from chained query
122         models, as the model will also propagate the parent model's
123         entry-prop-changed signal.  Fixes mysteriously unreported crashes.
125 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
127         * sources/rb-ipod-source.c: (generate_ipod_filename):
128         * lib/rb-cut-and-paste-code.c: (rb_make_valid_utf8):
129         * lib/rb-cut-and-paste-code.h:
130         Move eel_make_valid_utf8 to lib/, make the replacement
131         character a parameter.
133         * rhythmdb/rhythmdb.c: (make_access_failed_error),
134         (rhythmdb_execute_multi_stat_info_cb),
135         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_load):
136         When constructing an error message that includes a URI, make sure the
137         URI is valid utf-8.  Fixes #353588.
139 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
141         * player/rb-recorder-gst.c: (rb_recorder_construct),
142         (acb_wave_time):
143         Add an extra audioconvert element to allow endianness conversion on
144         big-endian machines, and fix a few endianness issues in the .wav
145         reading code.  Fixes #355611.
147 2006-10-09  James Livingston  <doclivingston@gmail.com>
149         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
151         * widgets/eggtrayicon.c: (egg_tray_icon_notify): work around a
152         libnotify 0.3.0 bug, as it doesn't handle escaped messages properly.
153         Fixes #357553.
155 2006-10-09  James Livingston  <doclivingston@gmail.com>
157         patch by: Luca Ferretti  <elle.uca@libero.it>
159         * data/glade/song-info-multiple.glade:
160         * data/glade/song-info.glade: Fix a few HIG issues.
162 2006-10-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
164         * plugins/audioscrobbler/rb-lastfm-source.c:
165         (rb_lastfm_source_class_init):
166         Return TRUE from impl_try_playlist so playback starts in a separate
167         thread.
169 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
171         * shell/main.c: (main):
172         Call bind_textdomain_codeset ("gstreamer-0.10", "UTF-8") so we get
173         UTF-8 GStreamer messages.  Fixes #357973.
175 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
177         * shell/rb-shell.c: (rb_shell_constructor):
178         Remove a line that accidentally slipped in from some other universe.
180 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
182         * plugins/audiocd/rb-audiocd-plugin.c: (_delete_cb):
183         Don't remove sources from the hash table while iterating it on
184         shutdown.  Fixes #359583.
186 2006-10-07  James Livingston  <doclivingston@gmail.com>
188         patch from Alex Lancaster  <alexl@users.sourceforge.net>
190         * shell/rb-shell.c: change the keybinding for "Plugins" to not
191         conflict with others. Fixes #355904
193 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
195         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
196         (rhythmdb_query_model_chain),
197         (rhythmdb_query_model_entry_changed_cb),
198         (rhythmdb_query_model_base_entry_prop_changed),
199         (rhythmdb_query_model_base_entry_removed):
200         For chained models, propagate the parent model's entry-prop-changed
201         signal rather than emitting one from the db entry-changed handler.
202         This ensures that when the change filters the entry out of the parent
203         model, property models attached to the child model get the entry
204         change signal before the post-entry-delete signal, so they can
205         decrement the refcount for the right property value.  Fixes #359083.
207 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
209         * plugins/audioscrobbler/Makefile.am:
210         define NULL
212 2006-10-07  James Livingston  <doclivingston@gmail.com>
214         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
215         (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
216         * plugins/audioscrobbler/rb-lastfm-source.c:
217         (rb_lastfm_source_get_playback_uri): work around GStreamer not support
218         hypens in URI schemes.
220 2006-10-06  William Jon McCann  <mccann@jhu.edu>
222         * plugins/iradio/Makefile.am:
223         * plugins/audioscrobbler/Makefile.am:
224         * plugins/cd-recorder/Makefile.am:
225         Don't clean all plugin_DATA.
226         Fixes #360210
228 2006-10-06  James Livingston  <doclivingston@gmail.com>
230         patch from Matt N  <fisxoj@gmail.com>
232         * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
233         (rb_player_gst_bus_cb):
234         * backends/rb-player.c: (rb_player_interface_init),
235         (_rb_player_emit_tick), (_rb_player_emit_event):
236         * backends/rb-player.h: let the backend emit named "events", for
237         things that the core shouldn't know about.
239         * rhythmdb/rhythmdb.h:
240         * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
241         support for streams containing album metadata.
243         * plugins/audioscrobbler/Makefile.am:
244         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
245         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
246         (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
247         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
248         * plugins/audioscrobbler/rb-lastfm-source.c:
249         * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
250         of last.fm streams. From #313049.
252 2006-10-06  James Livingston  <doclivingston@gmail.com>
254         * plugins/magnatune/magnatune/Makefile.am: add a file I missed
255         committing. Oops.
257 2006-10-06  James Livingston  <doclivingston@gmail.com>
259         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
261         * configure.ac:
262         * data/rhythmbox.schemas:
263         * plugins/Makefile.am:
264         * plugins/magnatune/Makefile.am:
265         * plugins/magnatune/magnatune-loading.glade:
266         * plugins/magnatune/magnatune-prefs.glade:
267         * plugins/magnatune/magnatune-purchase.glade:
268         * plugins/magnatune/magnatune.rb-plugin.desktop.in:
269         * plugins/magnatune/magnatune/BuyAlbumHandler.py:
270         * plugins/magnatune/magnatune/MagnatuneSource.py:
271         * plugins/magnatune/magnatune/TrackListHandler.py:
272         * plugins/magnatune/magnatune/__init__.py:
273         * plugins/magnatune/magnatune_circle_small.png:
274         * plugins/magnatune/magnatune_logo_color_small.png:
275         * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
276         play and download tracks from the MagnaTune online music store. From
277         #345783.
279 2006-10-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
281         * lib/rb-proxy-config.c: (rb_proxy_config_init),
282         (rb_proxy_config_dispose), (rb_proxy_config_finalize),
283         (check_auto_proxy_config), (get_proxy_config):
284         Don't crash when eel_gconf_get_string returns NULL.
285         Fixes #359974.
287 2006-10-04  James Livingston  <doclivingston@gmail.com>
289         patch by: Fryderyk Dziarmagowski  <freetz@gmx.net>
291         * plugins/audiocd/Makefile.am: fix the plugin when linking with
292         --as-needed. Fixes #358730
294 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
296         patch by:  William Jon McCann  <mccann@jhu.edu>
298         * sources/rb-iradio-source.c: (playing_source_changed_cb):
299         Fix some stupidity I introduced that caused crashes on shutdown.
300         Fixes #359181.
302 2006-10-02  William Jon McCann  <mccann@jhu.edu>
304         * plugins/audiocd/Makefile.am:
305         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
306         * plugins/iradio/.cvsignore:
307         * plugins/iradio/Makefile.am:
308         * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
309         (impl_deactivate):
310         * plugins/power-manager/.cvsignore:
311         Install missing iradio ui file.  Don't leak ui filename.
312         Fix iradio install dir. Fix audiocd install dir.
313         Remove unused code from audio cd plugin.
315         Fixes #359170
317 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
319         * sources/rb-ipod-source.c: (impl_move_to_trash):
320         Uncomment rhythmdb_entry_move_to_trash call that I accidentally
321         commented out while fixing bug 355235.  Oops.
323 2006-10-03  James Livingston  <doclivingston@gmail.com>
325         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
326         non-unicode warnings to debug statements, since they can occur with
327         slightly broken files.
329         * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
330         * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
331         iradio plugin is disabled and re-enabled.
333 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
335         * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
336         (rhythmdb_entry_podcast_post_get_type):
337         * rhythmdb/rhythmdb.h:
338         * tests/bench-rhythmdb-load.c: (main):
339         Add definitions for some common extra-metadata fields,
340         remove iradio entry type definition, add the concept of entry type
341         categories, define categories for the core entry types.
342         Categories are used to decide if an entry can be copied to a removable
343         device, if it should be reported to audioscrobbler, etc.
345         * shell/Makefile.am:
346         * shell/rb-shell-player.c: (rb_shell_player_class_init),
347         (rb_shell_player_constructor), (rb_shell_player_init),
348         (rb_shell_player_get_property), (open_location_thread),
349         (rb_shell_player_open_location),
350         (rb_shell_player_sync_with_source),
351         (rb_shell_player_set_playing_source_internal), (tick_cb):
352         * shell/rb-shell.c: (construct_widgets), (construct_sources),
353         (rb_shell_player_elapsed_changed_cb):
354         Remove iradio-specific code, use extra metadata fields for streaming
355         title and artist name.
357         * data/ui/rhythmbox-ui.xml:
358         Add a placeholder for 'new ...' menu items.
360         * Makefile.am:
361         * sources/Makefile.am:
362         * configure.ac:
363         * data/rhythmbox.schemas:
364         * plugins/Makefile.am:
365         * plugins/iradio/Makefile.am:
366         * plugins/iradio/iradio-ui.xml:
367         * plugins/iradio/iradio.rb-plugin.desktop.in:
368         * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
369         (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
370         (rb_iradio_plugin_class_init):
371         iradio plugin, enabled and hidden by default.
373         * plugins/audioscrobbler/rb-audioscrobbler.c:
374         (rb_audioscrobbler_song_changed_cb):
375         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
376         * sources/rb-daap-source.c: (rb_daap_source_new):
377         * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
378         Define entry type categories, and use them where appropriate.
380         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
381         (rb_iradio_source_constructor), (rb_iradio_source_new),
382         (impl_get_status), (impl_want_uri), (buffering_cb),
383         (check_entry_type), (streaming_title_request_cb),
384         (streaming_artist_request_cb), (extra_metadata_gather_cb),
385         (info_available_cb), (playing_entry_changed_cb),
386         (playing_source_changed_cb):
387         Move streaming metadata and buffering handling here from
388         rb-shell-player.c.  Emit extra-metadata notify signals when the streaming
389         title or artist changes, and handle request and gather signals for
390         those.
392         * widgets/rb-header.c: (rb_header_class_init),
393         (rb_header_set_property), (rb_header_get_property),
394         (rb_header_new), (append_and_free), (rb_header_sync):
395         * widgets/rb-header.h:
396         Rework to use streaming artist and title extra-metadata.
397         streaming-artist overrides entry artist, and streaming-title means
398         entry title is a stream name, displayed in brackets.
400         * doc/reference/Makefile.am:
401         * doc/reference/rhythmbox.types:
402         Remove iradio stuff from gtk-doc build.
404         Fixed #347097.
406 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
408         patch mostly by: Ed Catmur  <ed@catmur.co.uk>
410         * bindings/python/rhythmdb.defs:
411         * lib/rb-marshal.list:
412         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
413         (rhythmdb_emit_entry_deleted),
414         (rhythmdb_entry_extra_metadata_accumulator),
415         (rhythmdb_entry_request_extra_metadata),
416         (rhythmdb_emit_entry_extra_metadata_notify),
417         (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
418         * rhythmdb/rhythmdb.h:
419         Add signals for dealing with transient metadata outside the set stored
420         in RhythmDBEntry:
421         - entry_extra_metadata_request returns a value for the requested
422           metadata field
423         - entry_extra_metadata_notify notifies observers of a change to an
424           extra metadata field
425         - entry_extra_metadata_gather returns the values of all extra metadata
426           fields
428         * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
429         (rb_shell_player_extra_metadata_cb):
430         Sync the display on extra metadata changes and emit dbus signals when
431         we can marshal the value.
433         * shell/rb-shell.c: (rb_shell_get_song_properties):
434         Implement rb_shell_song_get_properties using
435         rhythmdb_entry_gather_metadata.
437         * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
438         (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
439         * configure.ac:
440         Add GValue marshaller for python (until bug 351072 is fixed)
442         From #345592.
444 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
446         * configure.ac:
447         * data/rhythmbox.schemas:
448         * plugins/Makefile.am:
449         * plugins/power-manager/Makefile.am:
450         * plugins/power-manager/power-manager.rb-plugin.desktop.in:
451         * plugins/power-manager/rb-power-manager-plugin.c:
452         (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
453         (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
454         (playing_changed_cb), (impl_activate), (impl_deactivate):
455         gnome-power-manager integration: inhibit suspend while playing.
456         Fixes #344979.
458 2006-10-02  James Livingston  <doclivingston@gmail.com>
460         update by: Aloriel  <jorge.gonzalez.gonzalez@hispalinux.es>
461         and Alex Lancaster  <alexl@users.sourceforge.net>
463         * help/C/rhythmbox.xml: fix some mispellings and grammer.
464         Fixes #353143, #353146 and #353147.
466 ============ Version 0.9.6
468 2006-10-01  James Livingston  <doclivingston@gmail.com>
470         * configure.ac: bump version to 0.9.6. enable tag-writing and
471         ipod-writing by default
473         * NEWS: update NEWS
475 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
477         patch by:  William Jon McCann  <mccann@jhu.edu>
479         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
480         Use a local GError in case no error pointer pointer is passed in.
481         From bug #358396.
483 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
485         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
486         Don't reference members of freed structures.
488 2006-09-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
490         patch by:  William Jon McCann  <mccann@jhu.edu>
492         * player/rb-recorder-gst.c: (rb_recorder_burn):
493         Drop GDK lock before entering n-c-b.  Fixes #353894?
495 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
497         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
498         (impl_activate):
499         Handle error/hangup conditions on the LIRC connection.  Fixes #358049.
501 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
503         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
504         Call lirc_init before lirc_readconfig so we don't crash if the user's
505         .lircrc file has any mode sections. Fixes #357419.
507 2006-09-24  James Livingston  <doclivingston@gmail.com>
509         * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
510         if we get called twice, as that can happen. Fixes #357214.
512 2006-09-24  James Livingston  <doclivingston@gmail.com>
514         * backends/rb-encoder.h: add "file access" error
516         * lib/rb-file-helpers.c: (rb_dot_dir):
517         * podcast/rb-podcast-manager.c:
518         (rb_podcast_manager_download_file_info_cb): remove directory creation
519         race condition.
521         * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
522         (create_parent_dirs), (rb_encoder_gst_encode): check result of
523         directory creation. Fixes #347743
525 2006-09-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
527         * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
528         Strip trailing whitespace
530 2006-09-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
532         * rhythmdb/Makefile.am:
533         * rhythmdb/rhythmdb-private.h:
534         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
535         (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
536         * rhythmdb/rhythmdb-tree.h:
537         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
538         (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
539         * rhythmdb/rhythmdb.h:
540         Rather than aborting, show an error and refuse to load the database when
541         it appears to come from the future.  From bug #350304.
543 2006-09-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
545         * bindings/python/rhythmdb.override:
546         Make entry_foreach usable.
548 2006-09-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
550         * sources/rb-podcast-source.c: (rb_podcast_source_init):
551         Scale the icon so it matches the rest of the sources.
552         Fixes #351410.
554 2006-09-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
556         * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
557         (rhythmdb_property_model_set_query_model_internal),
558         (rhythmdb_property_model_row_inserted_cb),
559         (rhythmdb_property_model_prop_changed_cb),
560         (rhythmdb_property_model_entry_removed_cb),
561         (rhythmdb_property_model_delete),
562         (rhythmdb_property_model_perform_sync):
563         Use the hash table to track hidden entries, rather than visible
564         entries.  Cuts memory usage fairly significantly.  From bug #347425.
566 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
568         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
569         Patch from Christian Becke to fix compilation with -O3, bug #355945.
571 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
573         * sources/rb-ipod-source.c: (add_rb_playlist),
574         (impl_move_to_trash), (impl_delete_thyself):
575         Delete ipod playlists when the ipod source is deleted.  Fixes #355235.
577         * sources/rb-sourcelist.c: (rb_sourcelist_remove):
578         Make sure we don't leave the sourcelist thinking a deleted source is
579         still playing.  Fixes nothing.
581 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
583         * shell/rb-shell.c:
584         Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
585         'Music->Import Folder' menu item for better icon theme coverage.
586         Fixes #354575.
588 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
590         * rhythmdb/rhythmdb-private.h:
591         * rhythmdb/rhythmdb.c: (rhythmdb_init),
592         (rhythmdb_start_action_thread), (rhythmdb_finalize),
593         (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
594         (rhythmdb_load), (rhythmdb_save_async):
595         Use a limited thread pool for adding URIs to the database.
596         Fixes #352494.
598 2006-09-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
600         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
601         Do something like the previous change, but for gstreamer 0.10
602         this time.  Oops.  Really fixes #349569.
604 2006-09-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
606         * backends/gstreamer/rb-player-gst.c: (error_cb):
607         Ignore 'internal data flow error' messages if we've already got an
608         error for the file.  Fixes #349569.
610 2006-09-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
612         * shell/rb-shell-clipboard.c:
613         (rb_shell_clipboard_playlist_deleted_cb):
614         Rebuild 'add to playlist' menu before removing actions for deleted
615         playlists, and don't unref the action, as we never had a reference on
616         it to begin with.  Fixes #354599.
618 2006-09-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
620         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
621         (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
622         Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
624 2006-09-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
626         * daapsharing/rb-daap-connection.c: (handle_playlists):
627         Reverse the list of playlists on the DAAP server so it ends up in the
628         right order.  Fixes #353926.
630 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
632         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
633         Fully process each code so the LIRC client returns to its normal state
634         when we're done.  Makes LIRC actually work properly for me.
636 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
638         patch by: Ed Catmur  <ed@catmur.co.uk>
640         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
641         (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
642         Don't show unused GdkWindows in SexyIconEntry.  Fixes #353671.
644 2006-09-02  William Jon McCann  <mccann@jhu.edu>
646         patch by: James Livingston <doclivingston@gmail.com>
648         * configure.ac:
649         * data/rhythmbox.schemas:
650         * metadata/Makefile.am:
651         * plugins/Makefile.am:
652         * plugins/audiocd/.cvsignore:
653         * plugins/audiocd/Makefile.am:
654         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
655         * plugins/audiocd/rb-audiocd-plugin.c:
656         (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
657         (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
658         (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
659         (end_cd_drive_monitor), (begin_cd_drive_monitor),
660         (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
661         (rb_audiocd_plugin_playing_uri_changed_cb),
662         (nautilus_burn_drive_get_device),
663         (rb_audiocd_plugin_source_deleted), (create_source_cb),
664         (impl_activate), (_delete_cb), (impl_deactivate):
665         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
666         (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
667         * shell/main.c: (main):
668         * shell/rb-removable-media-manager.c:
669         (rb_removable_media_manager_finalize),
670         (rb_removable_media_manager_load_media),
671         (rb_removable_media_manager_mount_volume),
672         (rb_removable_media_manager_scan):
673         * sources/Makefile.am:
674         * sources/rb-audiocd-source.c:
675         * sources/rb-audiocd-source.h:
676         Make auto CD support a plugin.
678         Fixes #349415.
680 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
682         * daapsharing/rb-daap-connection.c: (handle_song_listing):
683         Add a final rhythmdb_commit to make sure all songs from the share show
684         up in the daap source.  Fixes #353913.
686 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
688         * sources/rb-sourcelist-model.c:
689         (rb_sourcelist_model_drag_data_received),
690         (rb_sourcelist_model_row_drop_possible):
691         Re-enable dragging of a set of tracks to the source list to create a
692         new static playlist.  Fixes #353893.
694 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
696         * widgets/bacon-volume.c: (cb_button_timeout):
697         Actually drop the GDK lock, rather than returning while holding it.
698         Fixes #353895.
700 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
702         * plugins/generic-player/rb-generic-player-source.c:
703         (rb_generic_player_source_constructor),
704         (rb_generic_player_source_get_device_info), (impl_delete_thyself),
705         (rb_generic_player_source_load_songs), (load_playlist_file),
706         (default_load_playlists), (get_hal_context):
707         Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
708         Fixes #353483.
710 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
712         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
713         Canonicalise URIs received from gnome-vfs file monitor.
714         Fixes #353447.
716 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
718         * help/C/rhythmbox.xml: unbreak help build
719         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
720         Unbuffer the IO channel.  Fixes some weirdness for me.
722 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
724         * help/C/rhythmbox.xml:
725         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
726         (impl_activate), (impl_deactivate):
727         Add 'playpause' LIRC command.
729 2006-08-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
731         * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
732         (rb_source_finalize):
733         Remove idle callbacks in dispose, rather than finalize. Fixes crashes
734         when disconnecting generic audio players.
736 2006-08-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
738         patch by: Paolo Borelli  <pborelli@katamail.com>
740         * plugins/rb-python-plugin.c: (rb_python_object_get_type):
741         Fix a small leak.
743 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
745         * backends/gstreamer/rb-player-gst.c:
746         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
747         Don't actually disable the seek bar for non-seekable songs,
748         because we can't reliably tell yet.
750 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
752         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
753         (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
754         (db_entry_deleted_cb), (rb_daap_share_server_start),
755         (rb_daap_share_server_stop):
756         * rhythmdb/rhythmdb-private.h:
757         * rhythmdb/rhythmdb-tree.c: (save_entry):
758         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
759         (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
760         (rhythmdb_entry_get_ulong):
761         * rhythmdb/rhythmdb.h:
762         Give db entries a numeric ID property, replacing the daap server's
763         entry->id map.  From #347665.
765 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
767         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
768         * widgets/rb-header.c: (rb_header_class_init),
769         (rb_header_set_property), (rb_header_get_property),
770         (rb_header_set_playing_entry), (rb_header_sync),
771         (rb_header_sync_time):
772         * widgets/rb-header.h:
773         Add a 'seekable' property on RBHeader, and use it to make the seek bar
774         insensitive when the player backend tells us we can't seek in the
775         current song.  From #330410.
777 2006-08-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
779         * widgets/rb-song-info.c: (rb_song_info_update_buttons):
780         Don't try to unref previous/next entries if they aren't there.
781         Fixes #351806.
783 2006-08-15  James Livingston  <doclivingston@gmail.com>
785         * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
786         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
787         mountpoint into a RBRefString and compare equality of those, rather
788         than doign lots of strcmp()s.
790         * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
791         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
792         status notification as well as the visibility update in an idle
793         callback. Makes it take much less time to update after a volume
794         mount/unmount event.
796 2006-08-15  James Livingston  <doclivingston@gmail.com>
798         patch by: Christian Becke  <christianbecke@web.de>
800         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
801         multiple selections in the Import Folder dialog. Fixes #351414.
803 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
805         * shell/rb-shell.c: (construct_widgets):
806         * shell/rb-statusbar.c: (rb_statusbar_class_init),
807         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
808         (rb_statusbar_get_property), (rb_statusbar_new):
809         * shell/rb-statusbar.h:
810         Use the connect-proxy signal from the UI manager, which covers all
811         action groups, rather than just one.  Fixes #351280.
813 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
815         * widgets/rb-library-browser.c: (rebuild_child_model):
816         Fix query model reference counts (bug #349601).
818 2006-08-15  James Livingston  <doclivingston@gmail.com>
820         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
821         Error signals be non-recursive. Fixes a highly-unlikely issue that
822         could have caused #322972.
824 2006-08-14  James Livingston  <doclivingston@gmail.com>
826         * sources/rb-auto-playlist-source.c:
827         (rb_auto_playlist_source_init):
828         * sources/rb-static-playlist-source.c:
829         (rb_static_playlist_source_init):
831 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
833         * sources/rb-browser-source.c:
834         * sources/rb-import-errors-source.c:
835         * sources/rb-iradio-source.c:
836         * sources/rb-library-source.c:
837         * sources/rb-missing-files-source.c:
838         * sources/rb-play-queue-source.c:
839         * sources/rb-playlist-source.c:
840         * sources/rb-podcast-source.c:
841         * sources/rb-source.c:
842         Make entry-type a property on RBSource, rather than on most of its
843         subclasses.  Fixes #347288.
845 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
847         * remote/dbus/rb-client.c: (parse_pattern),
848         (create_rb_shell_proxies), (main):
849         Actually implement %ag and %aG (genre) for --print-playing-format
851 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
853         * lib/rb-debug.c: (rb_debug_real):
854         No point allocating a buffer for the timestamp when we can just put it
855         on the stack.
857 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
859         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
860         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
862 2006-08-11  James Livingston  <doclivingston@gmail.com>
864         * podcast/rb-podcast-manager.c:
865         (rb_podcast_manager_update_synctime): fix accidental commit in the
866         last, which caused a warning.
868 2006-08-11  James Livingston  <doclivingston@gmail.com>
870         * data/rhythmbox.schemas:
871         * podcast/rb-podcast-manager.c:
872         (rb_podcast_manager_update_synctime): change the schema's
873         update-inteval value from 0 to 1, which causes it to update on
874         startup, rather than never. Should fixs #343818.
876 2006-08-11  James Livingston  <doclivingston@gmail.com>
878         * configure.ac:
879         * data/Makefile.am:
880         - data/rhythmbox.desktop.in:
881         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
882         the @VERSION@ can be substituted in. Fix some issues with newer
883         bug-buddy versions. Fixes #348853.
885 2006-08-10  William Jon McCann  <mccann@jhu.edu>
887         * data/rhythmbox.schemas:
888         * plugins/Makefile.am:
889         * plugins/artdisplay/Makefile.am:
890         * plugins/audioscrobbler/Makefile.am:
891         * plugins/cd-recorder/Makefile.am:
892         * plugins/generic-player/Makefile.am:
893         * plugins/ipod/Makefile.am:
894         * plugins/lirc/Makefile.am:
895         * plugins/lyrics/Makefile.am:
896         * plugins/pythonconsole/Makefile.am:
897         * plugins/rb-module.c:
898         * plugins/rb-module.h:
899         * plugins/rb-plugin-manager.c: (configure_button_cb),
900         (plugin_manager_view_cell_cb), (cursor_changed_cb),
901         (plugin_manager_populate_lists), (plugin_manager_set_active),
902         (plugin_manager_toggle_active),
903         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
904         (rb_plugin_manager_finalize):
905         * plugins/rb-plugin-manager.h:
906         * plugins/rb-plugin.c: (rb_get_plugin_paths),
907         (rb_plugin_find_file):
908         * plugins/rb-plugin.h:
909         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
910         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
911         (rb_plugins_engine_init), (rb_plugin_info_free),
912         (load_plugin_module), (rb_plugins_engine_activate_plugin),
913         (rb_plugins_engine_deactivate_plugin),
914         (rb_plugins_engine_plugin_is_active),
915         (rb_plugins_engine_plugin_is_visible),
916         (rb_plugins_engine_plugin_is_configurable),
917         (rb_plugins_engine_configure_plugin),
918         (rb_plugins_engine_get_plugin_name),
919         (rb_plugins_engine_get_plugin_description),
920         (rb_plugins_engine_get_plugin_authors),
921         (rb_plugins_engine_get_plugin_website),
922         (rb_plugins_engine_get_plugin_copyright),
923         (rb_plugins_engine_get_plugin_icon):
924         * plugins/rb-plugins-engine.h:
925         * plugins/rb-python-module.c: (rb_python_module_init_python),
926         (rb_python_module_load), (rb_python_module_unload),
927         (rb_python_module_class_init), (rb_python_module_new),
928         (finalise_collect_cb), (rb_python_shutdown):
929         * plugins/rb-python-module.h:
930         * plugins/rb-python-plugin.c: (call_python_method),
931         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
932         (impl_is_configurable), (rb_python_object_get_type):
933         * plugins/rb-python-plugin.h:
934         * plugins/rb/Makefile.am:
936         Use TRUE/FALSE in schemas to make it easier to read.  Remove
937         spurious whitespace.  Don't use libgnome explicitly.  Replace the
938         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
939         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
940         special case loading of dirs.  Install plugins to subdirectors of
941         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
942         not DATADIR.  Fixes #350352
944 2006-08-10  James Livingston  <doclivingston@gmail.com>
946         * daapsharing/rb-daap-connection.c: (connection_connected),
947         (connection_disconnected), (connection_operation_done):
948         * daapsharing/rb-daap-share.c: (name_collision_cb):
949         * plugins/generic-player/rb-generic-player-source.c:
950         (rb_generic_player_source_load_playlists):
951         * podcast/rb-podcast-manager.c:
952         (rb_podcast_manager_download_entry),
953         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
954         (end_job), (rb_podcast_manager_event_loop):
955         * rhythmdb/rhythmdb-property-model.c:
956         (rhythmdb_property_model_perform_sync):
957         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
958         (rhythmdb_query_model_process_update), (idle_process_update),
959         (rhythmdb_query_model_reapply_query_cb):
960         * shell/rb-play-order.c: (sync_playing_entry_cb):
961         * shell/rb-removable-media-manager.c:
962         (rb_removable_media_manager_load_media):
963         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
964         (rb_shell_clipboard_sync),
965         (rb_shell_clipboard_entryview_changed_cb),
966         (rb_shell_clipboard_entries_changed_cb),
967         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
968         (rebuild_playlist_menu_idle),
969         (rb_shell_clipboard_playlist_added_cb):
970         * shell/rb-shell-player.c: (notify_playing_idle),
971         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
972         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
973         (rb_shell_quit):
974         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
975         * sources/rb-library-source.c: (add_child_sources_idle):
976         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
977         (burn_cd_idle):
978         * sources/rb-source.c: (update_visibility_idle):
979         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
980         (cb_button_press):
981         * widgets/rb-druid.c: (idle_set_sensitive):
982         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
983         take the GDK lock when we should be, from #348588
985 2006-08-09  James Livingston  <doclivingston@gmail.com>
987         * rhythmdb/rhythmdb-property-model.c:
988         (rhythmdb_property_model_get_path),
989         (rhythmdb_property_model_get_value),
990         (rhythmdb_property_model_iter_next): don't attempt to verify the
991         iterator if it's the All value, since it isn't valid. Fixes a
992         potential crasher.
994 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
996         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
997         (rb_podcast_manager_download_file_info_cb),
998         (rb_podcast_manager_abort_download), (download_info_free),
999         (download_info_new):
1000         Use gnome_vfs_async_get_file_info to figure out the local filename for
1001         a podcast episode, so we get the filename from the target of any
1002         redirects, rather than the source.  When creating the GnomeVFSURI, hide
1003         the query string, then append it later, to stop gnome-vfs from
1004         converting 'http://' to 'http:/'.  If the local filename ends with the
1005         query string, remove it.  Fixes #330766 and #321991.
1007 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1009         * sources/rb-library-source.c: (impl_want_uri):
1010         * sources/rb-static-playlist-source.c: (impl_want_uri):
1011         Treat sftp:// URIs as likely indicators of songness.
1013 2006-08-07  James Livingston  <doclivingston@gmail.com>
1015         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
1016         remote tracks with GStreamer 0.10, and remember their visibility like
1017         local ones.
1019 2006-08-07  James Livingston  <doclivingston@gmail.com>
1021         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
1022         apparently it's a borrowed reference. Should fix #347072.
1024 2006-08-06  James Livingston  <doclivingston@gmail.com>
1026         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
1027         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1028         (rb_shuffle_play_order_get_previous),
1029         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
1030         (remove_from_history), (add_randomly_to_history),
1031         (rb_shuffle_sync_history_with_query_model),
1032         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
1033         (query_model_and_history_contents_match): remove the tentatative
1034         history stuff, which is from older code, like we did for -random a few
1035         weeks ago.
1037 2006-08-06  James Livingston  <doclivingston@gmail.com>
1039         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
1040         (rb_queue_play_order_get_previous):
1041         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
1042         (rb_random_play_order_go_next),
1043         (rb_random_play_order_get_previous), (rb_random_db_changed):
1044         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1045         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1046         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
1047         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
1048         (rb_shuffle_entry_removed),
1049         (query_model_and_history_contents_match):
1050         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
1051         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1052         (default_has_next), (default_has_previous),
1053         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
1054         various play orders, after reviewing the code. Should fix #349601.
1056 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1058         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
1059         Pass the items_per_notification parameter to
1060         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
1061         with some versions of python.
1063 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1065         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
1066         Don't try to draw the icon if the drawable area is too small.
1067         Fixes #349838.
1069 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
1071         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
1073         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
1075 2006-08-05  James Livingston  <doclivingston@gmail.com>
1077         * configure.ac: tell libtool not to check for C++/fortran/ etc
1078         compilers
1080         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
1081         watch, to fix some gconf warnings.
1083 2006-08-04  James Livingston  <doclivingston@gmail.com>
1085         patch by: William Jon McCann  <mccann@jhu.edu>
1087         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
1089 2006-08-04  James Livingston  <doclivingston@gmail.com>
1091         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
1092         actually fix #349722 this time
1094 2006-08-04  James Livingston  <doclivingston@gmail.com>
1096         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
1097         to seach for local art from http:// URIs, or those gnome-vfs doesn't
1098         know about. Fixes #348571.
1100 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
1102         various fixes for valgrind complaints:
1103         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
1104         (init_rb_tree_dnd_data):
1105           free the associated target list, too
1106         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
1107           initialize allocation.{x,y,width,height} correctly
1108         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
1109         (rb_entry_view_constructor):
1110           free strings when no longer needed
1112 2006-08-03  James Livingston  <doclivingston@gmail.com>
1114         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
1115         real GtkTreeModel not the filter. Fixes #349722
1117 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1119         * backends/gstreamer/rb-player-gst.c:
1120         Only use DAAP seek hacks for GStreamer 0.8 builds.
1122         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
1123         (rb_daap_src_open):
1124         * daapsharing/rb-daap-src.h:
1125         Implement normal GStreamer seeking for GStreamer 0.10 builds.
1127         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1128         (rb_daap_source_get_headers):
1129         * sources/rb-daap-source.h:
1130         Reimplement rb_daap_source_get_headers for the case where we've
1131         already got the byte offset.  Add a small hack to
1132         rb_daap_source_class_init to prevent the linker from dropping
1133         rb-daap-src.o entirely.
1135         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
1137 2006-08-02  James Livingston  <doclivingston@gmail.com>
1139         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
1140         (handle_song_listing), (handle_playlist_entries),
1141         (rb_daap_connection_dispose):
1142         * sources/rb-daap-source.c: (_add_location_to_playlist),
1143         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
1144         for playlist URIs, not pointless duplicate strings. From #347425.
1146 2006-08-02  James Livingston  <doclivingston@gmail.com>
1148         * data/rhythmbox.schemas:
1149         * lib/rb-preferences.h:
1150         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
1151         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
1152         (plugin_manager_set_active), (plugin_manager_toggle_active),
1153         (plugin_manager_get_selected_plugin), (name_search_cb),
1154         (plugin_manager_construct_tree), (rb_plugin_manager_new),
1155         (rb_plugin_manager_finalize):
1156         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
1157         (rb_plugins_engine_load_all), (rb_plugin_info_free),
1158         (rb_plugins_engine_plugin_is_visible),
1159         (rb_plugins_engine_plugin_visible_cb):
1160         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
1161         per-user plugins, and 2) hide plugins from the manager UI. From #349395
1163 2006-08-02  James Livingston  <doclivingston@gmail.com>
1165         * sources/rb-sourcelist-model.c:
1166         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
1167         drop on a source. Fixes #349580.
1169 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1171         * configure.ac:
1172         * daapsharing/rb-daap-dialog.c:
1173         * daapsharing/rb-daap-dialog.h:
1174         * shell/Makefile.am:
1175         * sources/Makefile.am:
1176         * sources/rb-daap-source.c: (connection_auth_cb),
1177         (rb_daap_source_connection_cb), (rb_daap_source_activate):
1178         Add gnome-keyring support for DAAP passwords and use
1179         gnome-password-dialog instead of our own.  
1180         Patch mostly by James Livingston.  Fixes bug #330346.
1182 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1184         * shell/rb-shell-player.c:
1185         (rb_shell_player_set_playing_source_internal),
1186         (rb_shell_player_sync_with_selected_source):
1187         Remove call to rb_source_have_url, as we never did anything with the
1188         result.
1190         * sources/rb-browser-source.c: (rb_browser_source_class_init):
1191         * sources/rb-import-errors-source.c:
1192         (rb_import_errors_source_class_init):
1193         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1194         (impl_song_properties), (impl_want_uri), (impl_add_uri):
1195         * sources/rb-library-source.c: (rb_library_source_class_init),
1196         (impl_want_uri), (impl_add_uri):
1197         * sources/rb-missing-files-source.c:
1198         (rb_missing_files_source_class_init):
1199         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
1200         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1201         (impl_want_uri), (impl_add_uri):
1202         * sources/rb-source.c: (rb_source_class_init),
1203         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
1204         * sources/rb-source.h:
1205         * sources/rb-static-playlist-source.c:
1206         (rb_static_playlist_source_class_init), (search_action_changed),
1207         (impl_want_uri):
1208         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
1209         When adding a URI, want_uri gets called for each source; the one that
1210         wants it most gets the URI passed to its add_uri method.
1211         
1212         * shell/rb-shell.h:
1213         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
1214         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
1215         (handle_playlist_entry_cb), (rb_shell_load_uri):
1216         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
1217         Use want_uri and add_uri to simplify and make generic
1218         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
1220         If a source that returns TRUE from try_playlist wants all the URIs in
1221         the playlist, give it the playlist URI instead.  This retains the
1222         existing behaviour for adding iradio playlists.
1224         * bindings/python/rb.defs: Update for above changes.
1226         From bug #347097.
1228 2006-07-31  James Livingston  <doclivingston@gmail.com>
1230         * data/Makefile.am:
1231         * data/generate-keys.sh: fix the build I broke with the last commit.
1232         Oops.
1234 2006-07-31  James Livingston  <doclivingston@gmail.com>
1236         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
1237         in a long time. Fixes #349179.
1239 2006-07-30  James Livingston  <doclivingston@gmail.com>
1241         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
1242         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1243         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
1245 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1247         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1248         Don't tell the browser the query is still pending when doing a subset
1249         search.  Fixes #348617 again.
1251 2006-07-30  James Livingston  <doclivingston@gmail.com>
1253         * bindings/python/rb.override: remove an extraneous _wrap_ from the
1254         override definition. Fixes #348893.
1256 2006-07-30  James Livingston  <doclivingston@gmail.com>
1258         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
1259         rb_error_dialog, as it's above this in the stack.
1261         * lib/rb-util.c: (rb_gvalue_compare):
1262         * lib/rb-util.h: change the return type to int, as we're returning
1263         -1/0/1
1265         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
1266         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1267         (rb_query_creator_set_sorting): minor leak fixes
1269 2006-07-28  James Livingston  <doclivingston@gmail.com>
1271         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1272         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
1273         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
1274         (get_or_create_genre), (remove_entry_from_album),
1275         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1276         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
1277         (rhythmdb_tree_entry_lookup_by_location),
1278         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1279         (rhythmdb_hash_tree_foreach),
1280         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
1281         threadsafe. Fix a nasty problem if the _foreach callback function
1282         caused the addition/removal of entries.
1284 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1286         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
1287         Clear selection before changing our idea of the model.  Fixes crashes
1288         on model changes while playing.
1290 2006-07-27  James Livingston  <doclivingston@gmail.com>
1292         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
1293         a missing rb_refstring_unref.
1295         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1296         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
1297         oops. should hopefully fix the crash reported on #347425.
1299 2006-07-27  James Livingston  <doclivingston@gmail.com>
1301         * backends/gstreamer/rb-encoder-gst.c:
1302         (get_profile_from_mime_type): fix encoding error issue, from #310774.
1304         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
1305         thread-safety issue.
1307 2006-07-27  James Livingston  <doclivingston@gmail.com>
1309         * rhythmdb/rb-refstring.c: (rb_refstring_find):
1310         * rhythmdb/rb-refstring.h: add a new function which returns the
1311         RBRefString that matches a string, but never creates a new one.
1313         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
1314         (monitor_entry_file), (rhythmdb_check_changed_file),
1315         (rhythmdb_directory_change_cb):
1316         * rhythmdb/rhythmdb-private.h:
1317         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1318         (unparent_entries), (free_unknown_entries),
1319         (rhythmdb_tree_parser_start_element),
1320         (rhythmdb_tree_parser_end_element), (save_entry),
1321         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
1322         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1323         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
1324         (rhythmdb_tree_entry_type_registered):
1325         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
1326         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
1327         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
1328         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1329         (rhythmdb_process_metadata_load),
1330         (rhythmdb_process_file_created_or_modified),
1331         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
1332         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
1333         (action_thread_main), (rhythmdb_entry_set_internal),
1334         (rhythmdb_entry_move_to_trash_set_error),
1335         (rhythmdb_entry_move_to_trash),
1336         (rhythmdb_entry_lookup_by_location),
1337         (rhythmdb_entry_lookup_by_location_refstring),
1338         (default_sync_metadata), (rhythmdb_entry_get_string),
1339         (rhythmdb_entry_get_refstring):
1340         * rhythmdb/rhythmdb.h:
1341         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
1342         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1343         (rb_playlist_source_row_deleted),
1344         (rb_playlist_source_entry_added_cb),
1345         (rb_playlist_source_location_in_map),
1346         (rb_playlist_source_add_to_map): Make the LOCATION field of
1347         RhythmDBEntry be a RBRefString instead, which reduces some of the
1348         memory-fragmentation on startup and saves RBStaticPlaylistSource
1349         duplicating all the strings.
1351 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1353         * rhythmdb/rhythmdb-query-model.c:
1354         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
1355         * rhythmdb/rhythmdb-query-model.h:
1356         Add function to copy contents from one query model to another,
1357         filtered by the destination model's query.
1359         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1360         Use the above to create a new query model for subset searches, rather
1361         than filtering the existing model. Fixes #348617.
1363 2006-07-25  James Livingston  <doclivingston@gmail.com>
1365         * rhythmdb/rhythmdb-query-model.c:
1366         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
1367         lost from static playlists. Yet again. Fixes #323095.
1369         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
1370         case for the above, so that we should know if a change will break it
1371         again.
1373 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1375         * data/rhythmbox.schemas: Fix for last commit.
1377         * podcast/rb-podcast-manager.c:
1378         (rb_podcast_manager_download_entry),
1379         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
1380         (rb_podcast_manager_db_entry_deleted_cb):
1381         * rhythmdb/rhythmdb-property-model.c:
1382         (rhythmdb_property_model_set_query_model_internal),
1383         (rhythmdb_property_model_set_property),
1384         (rhythmdb_property_model_finalize),
1385         (rhythmdb_property_model_drag_data_get):
1386         * rhythmdb/rhythmdb-query-model.c:
1387         (rhythmdb_query_model_set_query_internal),
1388         (rhythmdb_query_model_set_property),
1389         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
1390         * rhythmdb/rhythmdb-query-model.h:
1391         * sources/rb-browser-source.c: (rb_browser_source_dispose),
1392         (rb_browser_source_do_query):
1393         * sources/rb-import-errors-source.c:
1394         (rb_import_errors_source_constructor):
1395         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1396         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
1397         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
1398         (impl_search), (impl_get_status),
1399         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
1400         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
1401         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
1402         * sources/rb-missing-files-source.c:
1403         (rb_missing_files_source_constructor),
1404         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
1405         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
1406         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1407         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
1408         (rb_playlist_source_save_playlist),
1409         (rb_playlist_source_new_from_xml),
1410         (rb_playlist_source_save_to_xml),
1411         (rb_playlist_source_setup_entry_view),
1412         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
1413         (rb_playlist_source_get_query_model),
1414         (rb_playlist_source_mark_dirty),
1415         (rb_playlist_source_location_in_map),
1416         (rb_playlist_source_add_to_map):
1417         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
1418         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
1419         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
1420         (impl_delete), (rb_podcast_source_state_prefs_sync),
1421         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
1422         (impl_get_config_widget), (rb_podcast_source_add_feed),
1423         (rb_podcast_source_cmd_download_post),
1424         (rb_podcast_source_cmd_cancel_download),
1425         (rb_podcast_source_cmd_delete_feed),
1426         (rb_podcast_source_cmd_update_feed),
1427         (rb_podcast_source_cmd_update_all),
1428         (rb_podcast_source_cb_interval_changed_cb),
1429         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
1430         (rb_podcast_source_entry_activated_cb):
1431         * sources/rb-source.c: (rb_source_finalize),
1432         (rb_source_set_query_model_internal), (rb_source_set_property),
1433         (default_get_status):
1434         * sources/rb-static-playlist-source.c:
1435         (rb_static_playlist_source_dispose),
1436         (rb_static_playlist_source_finalize),
1437         (rb_static_playlist_source_constructor),
1438         (rb_static_playlist_source_do_query):
1439         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
1440         (rb_entry_view_set_shell_player_internal),
1441         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
1442         (rb_entry_view_set_model), (rb_entry_view_append_column),
1443         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
1444         (rb_entry_view_set_state):
1445         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
1446         (rb_library_browser_finalize), (rb_library_browser_new),
1447         (update_browser_property_visibilty), (view_selection_reset_cb),
1448         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
1449         (restore_selection), (rebuild_child_model),
1450         (rb_library_browser_set_selection), (rb_library_browser_set_model):
1451         * widgets/rb-property-view.c:
1452         (rb_property_view_set_model_internal),
1453         (rb_property_view_set_selection_mode), (rb_property_view_reset),
1454         (rb_property_view_get_model), (rb_property_view_set_model),
1455         (rb_property_view_get_num_properties),
1456         (rb_property_view_set_selection),
1457         (rb_property_view_append_column_custom),
1458         (rb_property_view_set_search_func):
1459         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
1460         From #347446
1462 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1464         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
1465         Work around a small n-c-b API change.
1467 2006-07-25  James Livingston  <doclivingston@gmail.com>
1469         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
1471         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
1472         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
1473         aborting entry-emission on finalise
1475 2006-07-25  James Livingston  <doclivingston@gmail.com>
1477         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
1478         warning when entry is NULL.
1480 2006-07-25  James Livingston  <doclivingston@gmail.com>
1482         * help/sv/.cvsignore:
1483         * lib/.cvsignore:
1484         * plugins/generic-player/.cvsignore:
1485         * remote/.cvsignore:
1486         * remote/dbus/.cvsignore:
1487         * shell/.cvsignore:
1488         * tests/.cvsignore: more .cvsignore updates
1490 2006-07-24  James Livingston  <doclivingston@gmail.com>
1492         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
1493         (transparent_expose_event), (make_transparent_again),
1494         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
1495         apply a patch for EggTrayIcon so that it handled transparent panels
1496         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
1497         Fixes #348208.
1499 2006-07-24  James Livingston  <doclivingston@gmail.com>
1501         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
1502         queries rather than taking ownership when parsing a subquery. Fixed a
1503         crash exposed by the recent leak fixes.
1505         * doc/reference/tmpl/disclosure-widget.sgml:
1506         * doc/reference/tmpl/rb-debug.sgml:
1507         * doc/reference/tmpl/rb-metadata.sgml:
1508         * doc/reference/tmpl/rb-play-order.sgml:
1509         * doc/reference/tmpl/rb-playlist-manager.sgml:
1510         * doc/reference/tmpl/rb-playlist-source.sgml:
1511         * doc/reference/tmpl/rb-shell-player.sgml:
1512         * doc/reference/tmpl/rb-shell.sgml:
1513         * doc/reference/tmpl/rb-song-display-box.sgml:
1514         * doc/reference/tmpl/rhythmbox-unused.sgml:
1515         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
1517 2006-07-24  James Livingston  <doclivingston@gmail.com>
1519         * lib/.cvsignore:
1520         * plugins/artdisplay/.cvsignore:
1521         * plugins/artdisplay/artdisplay/.cvsignore:
1522         * plugins/lyrics/.cvsignore:
1523         * plugins/pythonconsole/.cvsignore:
1524         * plugins/rb/.cvsignore: add/update various .cvsignore files
1526 2006-07-24  James Livingston  <doclivingston@gmail.com>
1528         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1529         (rb_refstring_ref): don't emit critical warnings when the refstring
1530         is NULL, as that happens often for podcast metadata.
1532         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
1533         missing rhythmdb_entry_ref call
1535 2006-07-23  William Jon McCann  <mccann@jhu.edu>
1537         * bindings/python/rb.override:
1538         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
1539         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1540         (playlist_row_inserted_cb):
1541         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
1542         * plugins/rb-plugin-manager.c:
1543         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
1544         (rb_podcast_manager_copy_post),
1545         (rb_podcast_manager_db_entry_deleted_cb),
1546         (rb_podcast_manager_insert_feed):
1547         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1548         (rb_refstring_ref), (rb_refstring_get_sort_key):
1549         * rhythmdb/rhythmdb-private.h:
1550         * rhythmdb/rhythmdb-property-model.c:
1551         (rhythmdb_property_model_set_property),
1552         (rhythmdb_property_model_get_property),
1553         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
1554         (rhythmdb_property_model_row_inserted_cb),
1555         (rhythmdb_property_model_prop_changed_cb),
1556         (rhythmdb_property_model_compare),
1557         (rhythmdb_property_model_insert),
1558         (rhythmdb_property_model_iter_from_string),
1559         (rhythmdb_property_model_get_column_type),
1560         (rhythmdb_property_model_get_iter),
1561         (rhythmdb_property_model_get_value),
1562         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
1563         (rhythmdb_property_model_enable_drag):
1564         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
1565         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
1566         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
1567         (rhythmdb_query_model_chain),
1568         (rhythmdb_query_model_entry_added_cb),
1569         (rhythmdb_query_model_entry_changed_cb),
1570         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
1571         (rhythmdb_query_model_add_entry),
1572         (rhythmdb_query_model_insert_into_main_list),
1573         (rhythmdb_query_model_insert_into_limited_list),
1574         (rhythmdb_query_model_remove_from_main_list),
1575         (rhythmdb_query_model_remove_from_limited_list),
1576         (rhythmdb_query_model_update_limited_entries),
1577         (rhythmdb_query_model_emit_reorder),
1578         (rhythmdb_query_model_do_reorder),
1579         (rhythmdb_query_model_do_insert),
1580         (rhythmdb_query_model_move_entry),
1581         (rhythmdb_query_model_remove_entry),
1582         (rhythmdb_query_model_entry_to_iter),
1583         (rhythmdb_query_model_iter_to_entry),
1584         (rhythmdb_query_model_get_previous_from_entry),
1585         (rhythmdb_query_model_row_draggable),
1586         (rhythmdb_query_model_drag_data_delete),
1587         (rhythmdb_query_model_drag_data_get),
1588         (rhythmdb_query_model_drag_data_received),
1589         (rhythmdb_query_model_row_drop_possible),
1590         (rhythmdb_query_model_row_drop_position),
1591         (rhythmdb_query_model_add_results),
1592         (rhythmdb_query_model_query_complete),
1593         (rhythmdb_query_model_get_column_type),
1594         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
1595         (rhythmdb_query_model_iter_nth_child),
1596         (apply_updated_entry_sequence),
1597         (rhythmdb_query_model_child_index_to_base_index),
1598         (rhythmdb_query_model_get_entry_index),
1599         (rhythmdb_query_model_base_row_inserted),
1600         (rhythmdb_query_model_base_row_deleted),
1601         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
1602         (rhythmdb_query_model_location_sort_func),
1603         (rhythmdb_query_model_title_sort_func),
1604         (rhythmdb_query_model_album_sort_func),
1605         (rhythmdb_query_model_artist_sort_func),
1606         (rhythmdb_query_model_track_sort_func),
1607         (rhythmdb_query_model_double_ceiling_sort_func),
1608         (rhythmdb_query_model_ulong_sort_func),
1609         (rhythmdb_query_model_date_sort_func),
1610         (rhythmdb_query_model_string_sort_func),
1611         (rhythmdb_query_model_within_limit):
1612         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
1613         (rhythmdb_tree_parser_start_element),
1614         (rhythmdb_tree_parser_end_element),
1615         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
1616         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
1617         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
1618         (save_entry_uint64), (save_entry_double), (save_entry),
1619         (set_entry_album), (rhythmdb_tree_entry_new),
1620         (get_genres_hash_for_type), (get_or_create_genre),
1621         (get_or_create_artist), (get_or_create_album), (remove_child),
1622         (remove_entry_from_album), (rhythmdb_tree_entry_set),
1623         (rhythmdb_tree_entry_delete), (remove_one_song),
1624         (rhythmdb_tree_entry_delete_by_type),
1625         (rhythmdb_tree_evaluate_query), (search_match_properties),
1626         (evaluate_conjunctive_subquery), (do_conjunction),
1627         (conjunctive_query_songs), (clone_remove_ptr_array_index),
1628         (conjunctive_query_albums), (conjunctive_query_artists),
1629         (conjunctive_query_genre), (conjunctive_query),
1630         (split_query_by_disjunctions), (do_query_recurse),
1631         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
1632         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1633         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
1634         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
1635         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
1636         (extract_gtype_from_enum_entry),
1637         (extract_nice_name_from_enum_entry), (rhythmdb_init),
1638         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
1639         (rhythmdb_event_free), (rhythmdb_finalize),
1640         (rhythmdb_set_property), (rhythmdb_get_property),
1641         (rhythmdb_thread_create), (free_entry_changes),
1642         (emit_entry_changed), (sync_entry_changed),
1643         (process_added_entries_cb), (process_deleted_entries_cb),
1644         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
1645         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
1646         (rhythmdb_entry_insert), (rhythmdb_entry_new),
1647         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
1648         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
1649         (rhythmdb_entry_is_editable), (set_props_from_metadata),
1650         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1651         (rhythmdb_process_metadata_load),
1652         (rhythmdb_process_file_created_or_modified),
1653         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
1654         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
1655         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
1656         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
1657         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
1658         (record_entry_change), (rhythmdb_entry_set_internal),
1659         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
1660         (rhythmdb_entry_move_to_trash_cb),
1661         (rhythmdb_entry_move_to_trash_set_error),
1662         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
1663         (rhythmdb_nice_elt_name_from_propid),
1664         (rhythmdb_propid_from_nice_elt_name),
1665         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
1666         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
1667         (rhythmdb_compute_status_normal), (default_sync_metadata),
1668         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
1669         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
1670         (podcast_get_playback_uri), (podcast_data_destroy),
1671         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
1672         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
1673         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
1674         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
1675         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
1676         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
1677         * rhythmdb/rhythmdb.h:
1678         * shell/rb-play-order-linear-loop.c:
1679         (rb_linear_play_order_loop_get_next),
1680         (rb_linear_play_order_loop_get_previous):
1681         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
1682         (rb_linear_play_order_get_previous):
1683         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
1684         * shell/rb-play-order-random.c: (get_query_model_contents):
1685         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
1686         (get_query_model_contents):
1687         * shell/rb-play-order.c: (rb_play_order_constructor),
1688         (rb_play_order_finalize),
1689         (rb_play_order_set_playing_entry_internal),
1690         (rb_play_order_set_property), (rb_play_order_new),
1691         (rb_play_order_get_player), (rb_play_order_get_source),
1692         (rb_play_order_get_db), (rb_play_order_get_query_model),
1693         (rb_play_order_player_is_playing),
1694         (rb_play_order_set_playing_entry),
1695         (rb_play_order_get_playing_entry),
1696         (rb_play_order_playing_source_changed),
1697         (rb_play_order_query_model_changed),
1698         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1699         (default_has_next), (default_has_previous),
1700         (sync_playing_entry_cb), (default_playing_entry_removed),
1701         (rb_play_order_has_next), (rb_play_order_get_next),
1702         (rb_play_order_go_next), (rb_play_order_has_previous),
1703         (rb_play_order_get_previous), (rb_play_order_go_previous),
1704         (rb_play_order_model_not_empty),
1705         (rb_play_order_update_have_next_previous):
1706         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
1707         (rb_playlist_manager_save_playlists),
1708         (rb_playlist_manager_set_automatic_playlist),
1709         (rb_playlist_manager_cmd_edit_automatic_playlist),
1710         (_queue_track_cb), (rb_playlist_manager_get_playlists),
1711         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
1712         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
1713         * shell/rb-shell-player.c: (rb_shell_player_constructor),
1714         (volume_pre_unmount_cb), (reemit_playing_signal),
1715         (notify_playing_idle), (rb_shell_player_open_playlist_url),
1716         (rb_shell_player_handle_eos_unlocked),
1717         (rb_shell_player_handle_eos), (rb_shell_player_init),
1718         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
1719         (playlist_entry_cb), (rb_shell_player_open_entry),
1720         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
1721         (rb_shell_player_set_play_order),
1722         (rb_shell_player_set_playback_state),
1723         (rb_shell_player_sync_play_order),
1724         (rb_shell_player_play_order_update_cb),
1725         (rb_shell_player_jump_to_current), (swap_playing_source),
1726         (rb_shell_player_do_previous), (rb_shell_player_do_next),
1727         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
1728         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
1729         (rb_shell_player_entry_activated_cb),
1730         (rb_shell_player_property_row_activated_cb),
1731         (rb_shell_player_entry_changed_cb),
1732         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
1733         (rb_shell_player_pause),
1734         (rb_shell_player_get_playing_song_duration),
1735         (rb_shell_player_error), (error_cb), (tick_cb),
1736         (info_available_cb), (buffering_cb),
1737         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
1738         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
1739         (rb_shell_jump_to_current):
1740         * sources/rb-auto-playlist-source.c:
1741         (rb_auto_playlist_source_finalize), (impl_receive_drag),
1742         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
1743         (rb_auto_playlist_source_get_query):
1744         * sources/rb-auto-playlist-source.h:
1745         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1746         * sources/rb-import-errors-source.c:
1747         (rb_import_errors_source_constructor):
1748         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
1749         * sources/rb-library-source.c: (filepath_parse_pattern):
1750         * sources/rb-missing-files-source.c:
1751         (rb_missing_files_source_constructor):
1752         * sources/rb-play-queue-source.c:
1753         (rb_play_queue_source_clear_queue),
1754         (rb_play_queue_source_track_info_cell_data_func):
1755         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
1756         (rb_playlist_source_get_property), (playlist_iter_func),
1757         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
1758         (rb_playlist_source_track_cell_data_func):
1759         * sources/rb-podcast-source.c: (construct_query_from_selection),
1760         (rb_podcast_source_post_status_cell_data_func),
1761         (rb_podcast_source_post_feed_cell_data_func),
1762         (rb_podcast_source_feed_title_search_func),
1763         (rb_podcast_source_post_date_cell_data_func):
1764         * sources/rb-source.c: (default_get_status),
1765         (rb_source_get_status), (rb_source_browser_toggled),
1766         (rb_source_update_play_statistics), (rb_source_search),
1767         (rb_source_get_config_widget), (default_add_to_queue),
1768         (rb_source_add_to_queue), (rb_source_receive_drag),
1769         (rb_source_gather_hash_keys):
1770         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
1771         (rb_sourcelist_model_is_row_visible),
1772         (rb_sourcelist_model_row_is_separator),
1773         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
1774         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
1775         (rb_sourcelist_model_drag_data_get):
1776         * sources/rb-sourcelist.c: (rb_sourcelist_append),
1777         (match_source_to_iter), (rb_sourcelist_source_to_iter),
1778         (rb_sourcelist_visible_source_to_iter),
1779         (rb_sourcelist_edit_source_name), (set_source_playing),
1780         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
1781         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
1782         (drop_received_cb), (row_activated_cb), (emit_show_popup),
1783         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
1784         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
1785         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
1786         (rb_static_playlist_source_add_location_internal),
1787         (rb_static_playlist_source_row_inserted):
1788         * widgets/rb-entry-view.c: (type_ahead_search_func),
1789         (rb_entry_view_finalize), (rb_entry_view_set_model),
1790         (rb_entry_view_playing_cell_data_func),
1791         (rb_entry_view_rating_cell_data_func),
1792         (rb_entry_view_long_cell_data_func),
1793         (rb_entry_view_play_count_cell_data_func),
1794         (rb_entry_view_duration_cell_data_func),
1795         (rb_entry_view_year_cell_data_func),
1796         (rb_entry_view_quality_cell_data_func),
1797         (rb_entry_view_location_cell_data_func),
1798         (rb_entry_view_string_cell_data_func),
1799         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
1800         (rb_entry_view_get_sorting_order),
1801         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
1802         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
1803         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
1804         (rb_entry_view_playing_song_changed), (harvest_entries),
1805         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
1806         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
1807         (set_column_visibility):
1808         * widgets/rb-entry-view.h:
1809         * widgets/rb-header.c: (rb_header_new),
1810         (rb_header_set_playing_entry), (rb_header_set_title):
1811         * widgets/rb-library-browser.c: (rebuild_child_model),
1812         (rb_library_browser_set_model):
1813         * widgets/rb-property-view.c:
1814         (rb_property_view_set_model_internal), (rb_property_view_finalize),
1815         (rb_property_view_set_property), (rb_property_view_get_property),
1816         (rb_property_view_reset), (rb_property_view_get_model),
1817         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
1818         (rb_property_view_button_press_cb):
1819         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1820         (rb_query_creator_get_property), (rb_query_creator_load_query),
1821         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
1822         (rb_query_creator_get_query), (rb_query_creator_get_limit),
1823         (rb_query_creator_get_sort_order), (limit_toggled_cb),
1824         (lookup_row_by_widget), (remove_button_click_cb),
1825         (add_button_click_cb), (create_property_option_menu):
1826         * widgets/rb-song-info.c: (rb_song_info_constructor),
1827         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
1828         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
1829         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
1830         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
1832 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1834         * shell/rb-shell-player.c: (rb_shell_player_class_init),
1835         (rb_shell_player_get_property):
1836         Add a property providing access to the player backend object.
1838 2006-07-23  James Livingston  <doclivingston@gmail.com>
1840         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
1841         (get_history), (rb_random_filter_history),
1842         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
1843         remove the tentative history, since it appears to be a remanent from
1844         older play order code. The only thing it was doing was using up
1845         CPU-time and memory. From #345857
1847 2006-07-23  James Livingston  <doclivingston@gmail.com>
1849         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
1851         * shell/main.c: (main):
1852         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
1853         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
1854         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
1855         (rb_playlist_manager_load_playlists),
1856         (rb_playlist_manager_save_data):
1857         * shell/rb-playlist-manager.h:
1858         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
1859         (rb_shell_get_property), (rb_shell_sync_state),
1860         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
1861         (construct_sources), (idle_handle_load_complete):
1862         * shell/rb-shell.h: Add a command-line option for changing the
1863         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
1865 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1867         * daapsharing/rb-daap-share.c: (databases_cb):
1868         Make sure we set status codes on HTTP responses.
1870 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1872         * configure.ac:
1873         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1874         (chunked_message_finished), (send_chunked_file),
1875         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
1876         Use GMappedFile to send local files to DAAP clients where possible.  
1877         iTunes can't seek properly in files sent using chunked transfer 
1878         encoding.  Also remove the useless bitrate calculation code, as we
1879         never even used the result anyway.  From #330410.
1881 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1883         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
1885         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
1886         Enable multiple selection for 'import file'.  Fixes #347478.
1888 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
1890         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
1891         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
1892         deprecated dbus_connection_disconnect () with dbus_connection_close ().
1893         Fixes #348098.
1895 2006-07-20  James Livingston  <doclivingston@gmail.com>
1897         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
1898         aren't NULL before calling strstr. Fixes #347998.
1900 2006-07-19  James Livingston  <doclivingston@gmail.com>
1902         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
1904         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
1905         MB that only have years. Fixes #347906.
1907 2006-07-19  James Livingston  <doclivingston@gmail.com>
1909         * rhythmdb/rhythmdb-private.h:
1910         * rhythmdb/rhythmdb.c: (rhythmdb_init),
1911         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
1912         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
1913         (rhythmdb_finalize), (timeout_rhythmdb_commit),
1914         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
1915         (rhythmdb_execute_stat), (queue_stat_uri),
1916         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
1917         (rhythmdb_load), (rhythmdb_entry_register_type),
1918         (rhythmdb_entry_register_type_alias): Keep track of outstanding
1919         asynchronous vfs operations, and cancel them when shutting down the
1920         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
1922         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
1923         (test_rhythmdb_shutdown): wait until the db has been finalised before
1924         continuing on to the next test.
1926 2006-07-19  James Livingston  <doclivingston@gmail.com>
1928         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
1929         right thing in the #ifdef. From #347832.
1931 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1933         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1934         Fix compile warning.
1936 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1938         * rhythmdb/rhythmdb-query-model.c:
1939         (rhythmdb_query_model_set_property),
1940         (rhythmdb_query_model_reapply_query_cb):
1941         Ignore old query == new query case.
1942         Fixes auto playlists with time-relative queries.
1944         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
1945         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
1946         (rhythmdb_query_to_string):
1947         * rhythmdb/rhythmdb.h:
1948         Add debug helper for printing queries in case someone needs it again.
1950 2006-07-18  James Livingston  <doclivingston@gmail.com>
1952         patch by: Ståle Lyngaas  <staale@lyngaas.com>
1953         * sources/rb-audiocd-source.c: store the MB track ids in the database.
1954         Fixes #347832
1956         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
1957         write then into files.
1959 2006-07-17  William Jon McCann  <mccann@jhu.edu>
1961         * daapsharing/rb-daap-connection.c:
1962         (rb_daap_connection_set_property):
1963         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
1964         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
1965         (add_playlist_to_mlcl), (databases_cb):
1966         * daapsharing/rb-daap-sharing.c: (create_share):
1967         * iradio/rb-new-station-dialog.c:
1968         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
1969         * iradio/rb-station-properties-dialog.c:
1970         (rb_station_properties_dialog_finalize),
1971         (rb_station_properties_dialog_set_property),
1972         (rb_station_properties_dialog_get_current_entry):
1973         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
1974         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
1975         * plugins/generic-player/rb-generic-player-source.c:
1976         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
1977         (handle_playlist_entry_cb):
1978         * plugins/generic-player/rb-nokia770-source.c:
1979         (rb_nokia770_source_new), (hal_udi_is_nokia770):
1980         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
1981         (visit_playlist_dirs), (hal_udi_is_psp):
1982         * podcast/rb-podcast-manager.c:
1983         * podcast/rb-podcast-properties-dialog.c:
1984         (rb_podcast_properties_dialog_finalize),
1985         (rb_podcast_properties_dialog_set_entry_view),
1986         (rb_podcast_properties_dialog_set_property):
1987         * rhythmdb/rhythmdb-property-model.c:
1988         * rhythmdb/rhythmdb-query-model.c:
1989         (rhythmdb_query_model_set_property),
1990         (rhythmdb_query_model_reapply_query_cb):
1991         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
1992         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
1993         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1994         (rhythmdb_event_free), (rhythmdb_shutdown),
1995         (rhythmdb_thread_create), (action_thread_main),
1996         (rhythmdb_do_full_query_async_parsed),
1997         (rhythmdb_do_full_query_internal):
1998         * shell/main.c: (main):
1999         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
2000         * shell/rb-play-order.c: (rb_play_order_finalize),
2001         (rb_play_order_set_player),
2002         (rb_play_order_set_playing_entry_internal),
2003         (rb_play_order_set_property),
2004         (rb_play_order_playing_source_changed),
2005         (rb_play_order_query_model_changed):
2006         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
2007         (rb_playlist_manager_set_source),
2008         (rb_playlist_manager_set_shell_internal),
2009         (rb_playlist_manager_set_property):
2010         * shell/rb-removable-media-manager.c:
2011         (rb_removable_media_manager_set_property),
2012         (rb_removable_media_manager_set_uimanager),
2013         (rb_removable_media_manager_cmd_eject_medium),
2014         (rb_removable_media_manager_cmd_copy_tracks):
2015         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
2016         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
2017         (rb_shell_clipboard_set),
2018         (rb_shell_clipboard_cmd_add_to_playlist_new),
2019         (rb_shell_clipboard_playlist_add_cb),
2020         (rb_shell_clipboard_playlist_renamed_cb),
2021         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
2022         (rebuild_playlist_menu):
2023         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2024         (rb_shell_player_set_queue_source_internal),
2025         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
2026         (rb_shell_player_entry_activated_cb),
2027         (rb_shell_player_property_row_activated_cb),
2028         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
2029         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
2030         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2031         (rb_shell_finalize), (construct_widgets),
2032         (rb_shell_playing_from_queue_cb),
2033         (rb_shell_player_stream_song_changed_cb),
2034         (rb_shell_player_volume_changed_cb):
2035         * shell/rb-statusbar.c: (rb_statusbar_new):
2036         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
2037         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
2038         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2039         * sources/rb-auto-playlist-source.c:
2040         (rb_auto_playlist_source_class_init),
2041         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
2042         (rb_auto_playlist_source_constructor), (impl_receive_drag),
2043         (rb_auto_playlist_source_do_query),
2044         (rb_auto_playlist_source_set_query),
2045         (rb_auto_playlist_source_browser_changed_cb),
2046         (search_action_changed):
2047         * sources/rb-auto-playlist-source.h:
2048         * sources/rb-browser-source.c: (rb_browser_source_finalize),
2049         (search_action_changed), (rb_browser_source_constructor),
2050         (rb_browser_source_cmd_choose_artist), (impl_delete),
2051         (rb_browser_source_browser_changed_cb),
2052         (rb_browser_source_do_query):
2053         * sources/rb-daap-source.c: (rb_daap_source_dispose),
2054         (rb_daap_source_finalize), (rb_daap_source_class_init),
2055         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
2056         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2057         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2058         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
2059         (rb_daap_source_get_headers):
2060         * sources/rb-import-errors-source.c:
2061         (rb_import_errors_source_constructor),
2062         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
2063         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2064         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
2065         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
2066         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
2067         (impl_paste), (impl_receive_drag):
2068         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
2069         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
2070         (impl_song_properties):
2071         * sources/rb-library-source.c: (rb_library_source_constructor),
2072         (rb_library_source_new), (impl_paste),
2073         (rb_library_source_add_child_source):
2074         * sources/rb-missing-files-source.c: (impl_delete),
2075         (impl_get_status):
2076         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
2077         (rb_play_queue_source_class_init),
2078         (rb_play_queue_source_constructor):
2079         * sources/rb-playlist-source.c: (rb_playlist_source_init),
2080         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
2081         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
2082         (rb_playlist_source_new_from_xml),
2083         (rb_playlist_source_save_to_xml):
2084         * sources/rb-podcast-source.c: (rb_podcast_source_init),
2085         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
2086         (search_action_changed), (rb_podcast_source_constructor),
2087         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2088         (construct_query_from_selection),
2089         (rb_podcast_source_cmd_download_post),
2090         (rb_podcast_source_cmd_cancel_download),
2091         (rb_podcast_source_cmd_delete_feed),
2092         (rb_podcast_source_start_download_cb),
2093         (rb_podcast_source_finish_download_cb),
2094         (rb_podcast_source_feed_updates_avaliable_cb),
2095         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
2096         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2097         (impl_get_status):
2098         * sources/rb-removable-media-source.c: (impl_delete_thyself):
2099         * sources/rb-source.c: (rb_source_get_property),
2100         (default_add_to_queue), (default_move_to_trash),
2101         (_rb_source_show_popup), (rb_source_gather_selected_properties),
2102         (_rb_source_register_action_group):
2103         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2104         (rb_sourcelist_model_is_row_visible),
2105         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
2106         (rb_sourcelist_model_row_draggable),
2107         (rb_sourcelist_model_drag_data_get):
2108         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
2109         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
2110         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
2111         (visibility_notify_cb):
2112         * sources/rb-static-playlist-source.c:
2113         (rb_static_playlist_source_class_init),
2114         (rb_static_playlist_source_init),
2115         (rb_static_playlist_source_finalize),
2116         (rb_static_playlist_source_constructor), (impl_delete),
2117         (rb_static_playlist_source_browser_changed_cb),
2118         (rb_static_playlist_source_add_location_internal),
2119         (search_action_changed):
2120         * sources/rb-static-playlist-source.h:
2121         * widgets/rb-druid.c:
2122         * widgets/rb-entry-view.c:
2123         (rb_entry_view_set_shell_player_internal),
2124         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
2125         (rb_entry_view_get_property), (rb_entry_view_new),
2126         (rb_entry_view_button_press_cb):
2127         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
2128         (rb_library_browser_set_property),
2129         (rb_library_browser_get_property):
2130         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
2131         (get_entry_for_property), (get_property_index_from_proptype):
2132         * widgets/rb-song-info.c: (rb_song_info_constructor),
2133         (rb_song_info_finalize), (rb_song_info_set_source_internal),
2134         (rb_song_info_set_property), (rb_song_info_get_property):
2136         More leak and reference counting fixes.  From bug #347446.
2138 2006-07-17  James Livingston  <doclivingston@gmail.com>
2140         * sources/rb-auto-playlist-source.c:
2141         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
2142         rather than setting the base model, as that lets us not import all the
2143         entries from the base model. This fixes some issues whether the search
2144         box wasn't filting automatic playlists.
2146 2006-07-17  James Livingston  <doclivingston@gmail.com>
2148         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
2149         error, which caused blacklist creation to fail.
2151 2006-07-17  James Livingston  <doclivingston@gmail.com>
2153         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
2154         running with -n, because we don't start it then. Fixes a crash on
2155         exit.
2157 2006-07-17  James Livingston  <doclivingston@gmail.com>
2159         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2161         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
2162         Save not Open for the button. Fixes #345816
2164 2006-07-17  James Livingston  <doclivingston@gmail.com>
2166         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2168         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
2169         when track transfer is disabled. Fixes #347705
2171 2006-07-17  James Livingston  <doclivingston@gmail.com>
2173         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2175         * sources/rb-library-source.c: (impl_get_config_widget): fix build
2176         with track transfer disabled. Fixes #347705
2178 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2180         * rhythmdb/rhythmdb-query-model.c:
2181         (rhythmdb_query_model_set_property):
2182         * shell/main.c: (main):
2183         * shell/rb-shell-clipboard.c: (unset_source_internal),
2184         (rb_shell_clipboard_finalize),
2185         (rb_shell_clipboard_set_source_internal),
2186         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
2187         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2188         (rb_shell_player_set_db_internal),
2189         (rb_shell_player_set_queue_source_internal),
2190         (rb_shell_player_finalize), (rb_shell_player_set_property):
2191         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
2192         * sources/rb-auto-playlist-source.c:
2193         (rb_auto_playlist_source_constructor),
2194         (rb_auto_playlist_source_new_from_xml):
2195         * sources/rb-daap-source.c: (create_pixbufs):
2196         * sources/rb-ipod-source.c:
2197         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
2198         * sources/rb-library-source.c:
2199         (rb_library_source_add_child_source):
2200         * sources/rb-play-queue-source.c:
2201         (rb_play_queue_sync_playing_state),
2202         (rb_play_queue_source_track_info_cell_data_func):
2203         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
2204         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2205         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2206         (impl_can_add_to_queue), (impl_add_to_queue):
2207         * sources/rb-source.c: (rb_source_set_property):
2208         * sources/rb-sourcelist.c: (rb_sourcelist_append):
2209         * sources/rb-static-playlist-source.c:
2210         (rb_static_playlist_source_constructor),
2211         (rb_static_playlist_source_load_from_xml):
2212         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
2213         * widgets/rb-entry-view.c: (rb_entry_view_init),
2214         (rb_entry_view_finalize), (rb_entry_view_append_column),
2215         (rb_entry_view_constructor):
2216         * widgets/rb-song-info.c: (rb_song_info_set_property):
2217         Fix leaks.  From bug #347446.
2219 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2221         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
2222         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
2223         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
2224         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
2225         (add_decoding_pipeline), (profile_bin_find_encoder),
2226         (get_profile_from_mime_type), (extract_track), (transcode_track),
2227         (rb_encoder_gst_encode):
2228         * backends/gstreamer/rb-encoder-gst.h:
2229         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
2230         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
2231         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
2232         (rb_player_gst_construct):
2233         * backends/gstreamer/rb-player-gst.h:
2234         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
2235         * backends/rb-encoder.h:
2236         * backends/rb-player.c: (_rb_player_emit_tick):
2237         * backends/rb-player.h:
2238         * daapsharing/rb-daap-connection.c: (build_message),
2239         (actual_http_response_handler), (http_response_handler),
2240         (http_get), (entry_set_string_prop), (emit_progress_idle),
2241         (handle_server_info), (handle_database_info),
2242         (handle_song_listing), (handle_playlists),
2243         (handle_playlist_entries), (rb_daap_connection_new),
2244         (connected_cb), (rb_daap_connection_do_something),
2245         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
2246         (rb_daap_connection_get_property):
2247         * daapsharing/rb-daap-connection.h:
2248         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
2249         (rb_daap_collision_dialog_new_run):
2250         * daapsharing/rb-daap-dialog.h:
2251         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
2252         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
2253         (DigestToString), (rb_daap_hash_generate):
2254         * daapsharing/rb-daap-hash.h:
2255         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
2256         (resolve_cb), (browse_cb):
2257         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
2258         (resolve_cb), (rb_daap_mdns_browser_resolve),
2259         (rb_daap_mdns_browser_start), (resolver_free):
2260         * daapsharing/rb-daap-mdns-browser.h:
2261         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
2262         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
2263         (publish_cb):
2264         * daapsharing/rb-daap-mdns-publisher.h:
2265         * daapsharing/rb-daap-share.c: (name_collision_cb),
2266         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
2267         (message_set_from_rb_daap_structure), (content_codes_cb),
2268         (session_id_validate), (logout_cb), (update_cb),
2269         (add_entry_to_mlcl), (add_playlist_to_mlcl),
2270         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
2271         (rb_daap_share_server_start), (rb_daap_share_server_stop),
2272         (rb_daap_share_publish_start):
2273         * daapsharing/rb-daap-share.h:
2274         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
2275         (share_password_changed_cb), (rb_daap_sharing_shutdown):
2276         * daapsharing/rb-daap-sharing.h:
2277         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
2278         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
2279         (rb_daap_src_open):
2280         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
2281         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
2282         (rb_daap_structure_parse_container_buffer),
2283         (rb_daap_structure_parse), (gnode_find_node),
2284         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
2285         (print_rb_daap_item):
2286         * daapsharing/rb-daap-structure.h:
2287         * iradio/rb-new-station-dialog.c:
2288         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
2289         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
2290         (rb_new_station_dialog_text_changed):
2291         * iradio/rb-station-properties-dialog.c:
2292         (rb_station_properties_dialog_init),
2293         (rb_station_properties_dialog_new),
2294         (rb_station_properties_dialog_response_cb),
2295         (rb_station_properties_dialog_get_current_entry),
2296         (rb_station_properties_dialog_rated_cb),
2297         (rb_station_properties_dialog_update_rating),
2298         (rb_station_properties_dialog_update_playback_error),
2299         (rb_station_properties_dialog_sync_entries):
2300         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
2301         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
2302         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
2303         (rb_metadata_can_save), (rb_metadata_save):
2304         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
2305         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
2306         (_handle_message), (_new_connection), (main):
2307         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
2308         (rb_metadata_dbus_read_from_message):
2309         * metadata/rb-metadata-dbus.h:
2310         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
2311         (rb_add_id3_tagger), (rb_metadata_init),
2312         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
2313         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
2314         (rb_metadata_gst_new_decoded_pad_cb),
2315         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
2316         * metadata/sj-error.c: (sj_error_quark):
2317         * metadata/sj-error.h:
2318         * metadata/sj-metadata-musicbrainz.c:
2319         (sj_metadata_musicbrainz_instance_init),
2320         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
2321         (get_rdf), (lookup_cd):
2322         * metadata/sj-metadata.c: (sj_metadata_get_type):
2323         * metadata/sj-structures.c:
2324         * metadata/sj-structures.h:
2325         * metadata/test-metadata.c: (load_metadata_cb), (main):
2326         * podcast/rb-feed-podcast-properties-dialog.c:
2327         (rb_feed_podcast_properties_dialog_init),
2328         (rb_feed_podcast_properties_dialog_update_title):
2329         * podcast/rb-feed-podcast-properties-dialog.h:
2330         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
2331         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
2332         (rb_new_podcast_dialog_text_changed):
2333         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
2334         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
2335         (rb_podcast_manager_set_property),
2336         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
2337         (rb_podcast_manager_download_entry),
2338         (rb_podcast_manager_update_feeds),
2339         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
2340         (rb_podcast_manager_copy_post),
2341         (rb_podcast_manager_thread_parse_feed),
2342         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
2343         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
2344         (download_info_free), (download_info_new), (start_job),
2345         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
2346         (download_progress_cb), (download_progress_update_cb),
2347         (rb_podcast_manager_remove_feed),
2348         (rb_podcast_manager_db_entry_deleted_cb),
2349         (rb_podcast_manager_cancel_download),
2350         (rb_podcast_manager_update_synctime),
2351         (rb_podcast_manager_set_remove_files),
2352         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
2353         (rb_podcast_manager_abort_subscribe),
2354         (rb_podcast_manager_get_podcast_dir):
2355         * podcast/rb-podcast-manager.h:
2356         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
2357         (rb_validate_channel_propert), (rb_validate_item_propert),
2358         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
2359         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
2360         (rb_podcast_parse_date), (rb_podcast_parse_time),
2361         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
2362         * podcast/rb-podcast-parse.h:
2363         * podcast/rb-podcast-properties-dialog.c:
2364         (rb_podcast_properties_dialog_init),
2365         (rb_podcast_properties_dialog_get_current_entry),
2366         (rb_podcast_properties_dialog_update_title),
2367         (rb_podcast_properties_dialog_update_duration),
2368         (rb_podcast_properties_dialog_update_date):
2369         * podcast/rb-podcast-properties-dialog.h:
2370         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
2371         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
2372         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
2373         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
2374         (g_sequence_search), (g_sequence_set_aggregate_data),
2375         (g_sequence_node_update_fields), (g_sequence_node_rotate),
2376         (find_min), (g_sequence_node_find_by_pos),
2377         (g_sequence_node_find_closest), (g_sequence_node_free),
2378         (g_sequence_node_split), (g_sequence_node_insert_before),
2379         (g_sequence_node_get_length), (g_sequence_node_remove),
2380         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
2381         (g_sequence_calc_tree_height):
2382         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
2383         (rb_refstring_get):
2384         * rhythmdb/rb-refstring.h:
2385         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
2386         (rhythmdb_gda_init), (dump_model), (execute_query),
2387         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
2388         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
2389         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
2390         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
2391         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
2392         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
2393         * rhythmdb/rhythmdb-gda.h:
2394         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
2395         (rhythmdb_finalize_monitoring), (monitor_entry_file),
2396         (monitor_library_directory), (rhythmdb_check_changed_file),
2397         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
2398         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
2399         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
2400         * rhythmdb/rhythmdb-private.h:
2401         * rhythmdb/rhythmdb-property-model.c:
2402         (rhythmdb_property_model_set_property),
2403         (rhythmdb_property_model_row_inserted_cb),
2404         (rhythmdb_property_model_prop_changed_cb),
2405         (rhythmdb_property_model_compare),
2406         (rhythmdb_property_model_get_value),
2407         (rhythmdb_property_model_iter_nth_child),
2408         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
2409         (rhythmdb_property_model_drag_data_get),
2410         (rhythmdb_property_model_enable_drag),
2411         (rhythmdb_property_model_column_get_type):
2412         * rhythmdb/rhythmdb-property-model.h:
2413         * rhythmdb/rhythmdb-query-model.c:
2414         (rhythmdb_query_model_class_init),
2415         (rhythmdb_query_model_set_property),
2416         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
2417         (rhythmdb_query_model_has_pending_changes),
2418         (rhythmdb_query_model_entry_changed_cb),
2419         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2420         (rhythmdb_query_model_add_entry),
2421         (rhythmdb_query_model_remove_from_main_list),
2422         (rhythmdb_query_model_remove_entry),
2423         (rhythmdb_query_model_drag_data_received),
2424         (rhythmdb_query_model_row_drop_possible),
2425         (rhythmdb_query_model_compute_status_normal),
2426         (rhythmdb_query_model_set_sort_order),
2427         (rhythmdb_query_model_get_entry_index),
2428         (rhythmdb_query_model_base_row_inserted),
2429         (rhythmdb_query_model_base_row_deleted),
2430         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2431         (rhythmdb_query_model_date_sort_func),
2432         (rhythmdb_query_model_within_limit):
2433         * rhythmdb/rhythmdb-query-model.h:
2434         * rhythmdb/rhythmdb-query-results.c:
2435         (rhythmdb_query_results_query_complete):
2436         * rhythmdb/rhythmdb-query-results.h:
2437         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
2438         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
2439         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
2440         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
2441         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
2442         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
2443         (rhythmdb_tree_parser_start_element),
2444         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
2445         (save_entry), (save_entry_type), (save_unknown_entry_type),
2446         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
2447         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
2448         (get_or_create_genre), (remove_entry_from_album),
2449         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2450         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
2451         (search_match_properties), (evaluate_conjunctive_subquery),
2452         (clone_remove_ptr_array_index), (conjunctive_query_albums),
2453         (conjunctive_query_artists), (conjunctive_query_genre),
2454         (conjunctive_query), (split_query_by_disjunctions),
2455         (do_query_recurse), (rhythmdb_tree_entry_foreach),
2456         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2457         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
2458         (rhythmdb_hash_tree_foreach),
2459         (rhythmdb_tree_entry_type_registered):
2460         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
2461         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
2462         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2463         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2464         (rhythmdb_shutdown), (rhythmdb_finalize),
2465         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
2466         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2467         (rhythmdb_entry_example_new),
2468         (set_metadata_string_default_unknown), (is_ghost_entry),
2469         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2470         (rhythmdb_process_metadata_load),
2471         (rhythmdb_process_queued_entry_set_event),
2472         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
2473         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
2474         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
2475         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
2476         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
2477         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2478         (rhythmdb_entry_delete_by_type),
2479         (rhythmdb_propid_from_nice_elt_name),
2480         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
2481         (rhythmdb_compute_status_normal),
2482         (rhythmdb_entry_register_type_alias),
2483         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
2484         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
2485         (rhythmdb_entry_import_error_get_type),
2486         (rhythmdb_entry_podcast_post_get_type),
2487         (rhythmdb_entry_podcast_feed_get_type),
2488         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2489         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
2490         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
2491         * rhythmdb/rhythmdb.h:
2492         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
2493         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
2494         (rb_history_limit_size):
2495         * shell/rb-history.h:
2496         * shell/rb-play-order-linear-loop.c:
2497         (rb_linear_play_order_loop_get_next):
2498         * shell/rb-play-order-linear-loop.h:
2499         * shell/rb-play-order-linear.c:
2500         * shell/rb-play-order-linear.h:
2501         * shell/rb-play-order-queue.c:
2502         (rb_queue_play_order_playing_entry_removed):
2503         * shell/rb-play-order-queue.h:
2504         * shell/rb-play-order-random-by-age-and-rating.c:
2505         * shell/rb-play-order-random-by-age-and-rating.h:
2506         * shell/rb-play-order-random-by-age.c:
2507         (rb_random_by_age_get_entry_weight):
2508         * shell/rb-play-order-random-by-age.h:
2509         * shell/rb-play-order-random-by-rating.c:
2510         * shell/rb-play-order-random-by-rating.h:
2511         * shell/rb-play-order-random-equal-weights.c:
2512         * shell/rb-play-order-random-equal-weights.h:
2513         * shell/rb-play-order-random.c: (rb_random_filter_history),
2514         (rb_random_get_total_weight), (rb_random_play_order_get_next),
2515         (rb_random_db_changed), (rb_random_playing_entry_changed),
2516         (rb_random_db_entry_deleted):
2517         * shell/rb-play-order-shuffle.c: (remove_from_history),
2518         (add_randomly_to_history), (get_query_model_contents),
2519         (rb_shuffle_playing_entry_changed):
2520         * shell/rb-play-order-shuffle.h:
2521         * shell/rb-play-order.c: (rb_play_order_class_init),
2522         (rb_play_order_set_property),
2523         (rb_play_order_playing_source_changed),
2524         (rb_play_order_query_model_changed_cb),
2525         (rb_play_order_query_model_changed),
2526         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
2527         * shell/rb-play-order.h:
2528         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2529         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
2530         (rb_playlist_manager_set_property),
2531         (rb_playlist_manager_parse_file),
2532         (rb_playlist_manager_load_playlists),
2533         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
2534         (rb_playlist_manager_save_playlists),
2535         (rb_playlist_manager_new_playlist),
2536         (rb_playlist_manager_new_playlist_from_selection_data),
2537         (rb_playlist_manager_cmd_new_automatic_playlist),
2538         (rb_playlist_manager_cmd_edit_automatic_playlist),
2539         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
2540         (save_playlist_response_cb), (export_set_extension_cb),
2541         (filter_get_export_filter_label), (setup_format_menu),
2542         (rb_playlist_manager_cmd_save_playlist),
2543         (rb_playlist_manager_get_playlists),
2544         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
2545         (rb_playlist_manager_delete_playlist),
2546         (rb_playlist_manager_export_playlist):
2547         * shell/rb-playlist-manager.h:
2548         * shell/rb-removable-media-manager.c:
2549         (rb_removable_media_manager_class_init),
2550         (rb_removable_media_manager_dispose),
2551         (rb_removable_media_manager_finalize),
2552         (rb_removable_media_manager_set_property),
2553         (split_drive_from_cdda_uri),
2554         (rb_removable_media_manager_playing_uri_changed_cb),
2555         (rb_removable_media_manager_load_media),
2556         (rb_removable_media_manager_volume_mounted_cb),
2557         (remove_volume_by_source),
2558         (rb_removable_media_manager_source_deleted_cb),
2559         (rb_removable_media_manager_volume_unmounted_cb),
2560         (rb_removable_media_manager_mount_volume),
2561         (rb_removable_media_manager_set_uimanager),
2562         (rb_removable_media_manager_scan), (do_transfer),
2563         (rb_removable_media_manager_cmd_copy_tracks):
2564         * shell/rb-removable-media-manager.h:
2565         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
2566         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
2567         (rb_shell_clipboard_sync),
2568         (rb_shell_clipboard_idle_poll_deletions),
2569         (rb_shell_clipboard_cmd_add_to_playlist_new),
2570         (rb_shell_clipboard_playlist_add_cb),
2571         (rb_shell_clipboard_playlist_deleted_cb),
2572         (rb_shell_clipboard_playlist_renamed_cb),
2573         (rb_shell_clipboard_playlist_visible_cb),
2574         (rb_shell_clipboard_playlist_added_cb):
2575         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2576         (rb_shell_player_constructor), (volume_pre_unmount_cb),
2577         (rb_shell_player_init), (rb_shell_player_set_property),
2578         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
2579         (rb_shell_player_open_location),
2580         (rb_shell_player_set_playing_entry),
2581         (rb_shell_player_play_order_update_cb),
2582         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
2583         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
2584         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
2585         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
2586         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2587         (gconf_song_position_slider_visibility_changed),
2588         (rb_shell_player_entry_activated_cb),
2589         (rb_shell_player_property_row_activated_cb),
2590         (rb_shell_player_entry_changed_cb),
2591         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2592         (actually_set_playing_source),
2593         (rb_shell_player_set_playing_source_internal),
2594         (rb_shell_player_get_playing_song_duration), (eos_cb),
2595         (rb_shell_player_error), (error_cb), (info_available_cb),
2596         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
2597         (rb_shell_player_error_get_type):
2598         * shell/rb-shell-player.h:
2599         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
2600         (rb_shell_preferences_append_page),
2601         (share_check_button_toggled_cb),
2602         (password_check_button_toggled_cb), (add_daap_preferences),
2603         (rb_shell_preferences_column_check_changed_cb),
2604         (rb_shell_preferences_sync_column_button),
2605         (rb_shell_preferences_sync),
2606         (rb_shell_preferences_browser_views_activated_cb):
2607         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
2608         (rb_shell_set_property), (rb_shell_get_property),
2609         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
2610         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
2611         (rb_shell_get_visibility), (rb_shell_set_visibility),
2612         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
2613         (rb_shell_register_entry_type_for_source),
2614         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
2615         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
2616         (rb_shell_player_stream_song_changed_cb),
2617         (rb_shell_set_window_title),
2618         (rb_shell_view_smalldisplay_changed_cb),
2619         (rb_shell_view_queue_as_sidebar_changed_cb),
2620         (rb_shell_cmd_plugins), (add_to_library_response_cb),
2621         (rb_shell_cmd_add_folder_to_library),
2622         (rb_shell_cmd_add_file_to_library),
2623         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
2624         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
2625         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
2626         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
2627         (handle_playlist_entry_cb), (rb_shell_load_uri),
2628         (rb_shell_add_to_queue), (rb_shell_present),
2629         (rb_shell_get_song_properties), (rb_shell_set_song_property),
2630         (rb_shell_volume_widget_changed_cb),
2631         (rb_shell_player_volume_changed_cb),
2632         (rb_shell_ui_location_get_type):
2633         * shell/rb-shell.h:
2634         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
2635         (rb_source_header_init), (rb_source_header_set_source_internal),
2636         (rb_source_state_sync), (rb_source_header_clear_search),
2637         (rb_source_header_view_browser_changed_cb):
2638         * shell/rb-source-header.h:
2639         * shell/rb-statusbar.c: (rb_statusbar_construct),
2640         (rb_statusbar_init), (rb_statusbar_finalize),
2641         (rb_statusbar_set_property), (rb_statusbar_set_progress),
2642         (rb_statusbar_source_status_changed_cb):
2643         * shell/rb-statusbar.h:
2644         * shell/rb-tray-icon.c: (rb_tray_icon_init),
2645         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
2646         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
2647         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
2648         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
2649         (rb_audiocd_create_track_entry):
2650         * sources/rb-auto-playlist-source.c:
2651         (rb_auto_playlist_source_class_init),
2652         (rb_auto_playlist_source_constructor),
2653         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
2654         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
2655         (rb_auto_playlist_source_query_complete_cb),
2656         (rb_auto_playlist_source_do_query),
2657         (rb_auto_playlist_source_set_query),
2658         (rb_auto_playlist_source_browser_changed_cb),
2659         (search_action_to_prop):
2660         * sources/rb-auto-playlist-source.h:
2661         * sources/rb-browser-source.c: (rb_browser_source_init),
2662         (rb_browser_source_dispose), (search_action_to_prop),
2663         (rb_browser_source_constructor),
2664         (rb_browser_source_cmd_choose_genre),
2665         (rb_browser_source_cmd_choose_artist),
2666         (rb_browser_source_cmd_choose_album), (impl_search),
2667         (rb_browser_source_browser_changed_cb),
2668         (rb_browser_source_do_query):
2669         * sources/rb-browser-source.h:
2670         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2671         (rb_daap_source_init), (rb_daap_source_dispose),
2672         (rb_daap_source_set_property), (start_browsing),
2673         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2674         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2675         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
2676         (rb_daap_source_get_headers), (rb_daap_source_get_status):
2677         * sources/rb-daap-source.h:
2678         * sources/rb-import-errors-source.h:
2679         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2680         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
2681         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
2682         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
2683         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
2684         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
2685         (ipod_mkdir_with_parents), (build_ipod_dir_name),
2686         (generate_ipod_filename), (ipod_path_from_unix_path),
2687         (impl_delete_thyself):
2688         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2689         (rb_iradio_source_init), (rb_iradio_source_constructor),
2690         (rb_iradio_source_new), (guess_uri_scheme),
2691         (rb_iradio_source_add_station),
2692         (rb_iradio_source_async_update_play_statistics),
2693         (genre_selection_reset_cb), (rb_iradio_source_do_query),
2694         (stations_view_drag_data_received_cb),
2695         (rb_iradio_source_cmd_new_station):
2696         * sources/rb-iradio-source.h:
2697         * sources/rb-library-source.c: (rb_library_source_dispose),
2698         (rb_library_source_constructor),
2699         (rb_library_source_location_button_clicked_cb),
2700         (impl_get_config_widget), (rb_library_source_library_location_cb),
2701         (sanitize_path), (filepath_parse_pattern),
2702         (layout_example_label_update),
2703         (rb_library_source_layout_filename_changed), (build_filename),
2704         (impl_can_paste), (impl_paste),
2705         (rb_library_source_add_child_source),
2706         (rb_library_source_sync_child_sources):
2707         * sources/rb-library-source.h:
2708         * sources/rb-missing-files-source.h:
2709         * sources/rb-play-queue-source.c:
2710         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
2711         * sources/rb-play-queue-source.h:
2712         * sources/rb-playlist-source-recorder.c:
2713         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
2714         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
2715         (rb_playlist_source_recorder_init),
2716         (rb_playlist_source_recorder_new):
2717         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2718         (rb_playlist_source_save_playlist),
2719         (rb_playlist_source_entry_added_cb),
2720         (rb_playlist_source_set_query_model),
2721         (rb_playlist_source_add_to_map):
2722         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2723         (rb_podcast_source_init), (rb_podcast_source_dispose),
2724         (rb_podcast_source_finalize), (search_action_to_prop),
2725         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
2726         (rb_podcast_source_get_property), (rb_podcast_source_new),
2727         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2728         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
2729         (rb_podcast_source_show_browser), (construct_query_from_selection),
2730         (rb_podcast_source_do_query), (impl_get_config_widget),
2731         (rb_podcast_source_btn_file_change_cb),
2732         (posts_view_drag_data_received_cb),
2733         (rb_podcast_source_cmd_download_post),
2734         (rb_podcast_source_cmd_cancel_download),
2735         (rb_podcast_source_cmd_delete_feed),
2736         (rb_podcast_source_cmd_properties_feed),
2737         (rb_podcast_source_cmd_update_feed),
2738         (rb_podcast_source_post_status_cell_data_func),
2739         (rb_podcast_source_post_feed_cell_data_func),
2740         (rb_podcast_source_post_date_cell_data_func),
2741         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
2742         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
2743         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2744         (impl_get_status):
2745         * sources/rb-podcast-source.h:
2746         * sources/rb-removable-media-source.c:
2747         (rb_removable_media_source_constructor):
2748         * sources/rb-removable-media-source.h:
2749         * sources/rb-source.h:
2750         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
2751         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
2752         (rb_sourcelist_model_row_is_separator),
2753         (rb_sourcelist_model_drag_data_received),
2754         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
2755         (rb_sourcelist_model_row_drop_position),
2756         (rb_sourcelist_model_get_drag_target),
2757         (rb_sourcelist_model_row_draggable),
2758         (rb_sourcelist_model_drag_data_get),
2759         (rb_sourcelist_model_row_inserted_cb),
2760         (rb_sourcelist_model_get_group_path):
2761         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2762         (match_source_to_iter), (rb_sourcelist_source_to_iter),
2763         (rb_sourcelist_visible_source_to_iter),
2764         (rb_sourcelist_edit_source_name),
2765         (rb_sourcelist_selection_changed_cb), (button_press_cb),
2766         (key_release_cb), (name_notify_cb), (icon_notify_cb),
2767         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2768         * sources/rb-static-playlist-source.c:
2769         (rb_static_playlist_source_class_init),
2770         (rb_static_playlist_source_constructor),
2771         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
2772         (impl_search), (rb_static_playlist_source_do_query),
2773         (rb_static_playlist_source_browser_changed_cb),
2774         (impl_receive_drag), (impl_save_contents_to_xml),
2775         (rb_static_playlist_source_add_location_swapped),
2776         (search_action_to_prop):
2777         * sources/rb-static-playlist-source.h:
2778         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
2779         * widgets/eggtrayicon.c: (egg_tray_icon_init),
2780         (egg_tray_icon_get_orientation_property),
2781         (egg_tray_icon_send_manager_message),
2782         (egg_tray_icon_update_manager_window),
2783         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
2784         (egg_tray_icon_send_message), (egg_tray_icon_notify):
2785         * widgets/eggtrayicon.h:
2786         * widgets/rb-cell-renderer-pixbuf.c:
2787         (rb_cell_renderer_pixbuf_get_property),
2788         (rb_cell_renderer_pixbuf_set_property),
2789         (rb_cell_renderer_pixbuf_get_size),
2790         (rb_cell_renderer_pixbuf_render),
2791         (rb_cell_renderer_pixbuf_activate):
2792         * widgets/rb-cell-renderer-rating.c:
2793         (rb_cell_renderer_rating_class_init),
2794         (rb_cell_renderer_rating_get_property),
2795         (rb_cell_renderer_rating_set_property),
2796         (rb_cell_renderer_rating_get_size),
2797         (rb_cell_renderer_rating_render),
2798         (rb_cell_renderer_rating_activate):
2799         * widgets/rb-dialog.c:
2800         * widgets/rb-dialog.h:
2801         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
2802         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
2803         (rb_druid_page3_finish_cb):
2804         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
2805         (rb_entry_view_init), (rb_entry_view_set_property),
2806         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
2807         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
2808         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
2809         (rb_entry_view_set_sorting_order),
2810         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
2811         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2812         (rb_entry_view_playing_song_changed),
2813         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
2814         (rb_entry_view_scroll_to_entry), (set_column_visibility),
2815         (rb_entry_view_set_fixed_column_width),
2816         (rb_entry_view_get_time_date_column_sample),
2817         (rb_entry_view_state_get_type):
2818         * widgets/rb-entry-view.h:
2819         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
2820         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
2821         (changed_idle_callback), (rb_header_elapsed_changed_cb):
2822         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
2823         (update_browser_property_visibilty),
2824         (rb_library_browser_construct_query), (restore_selection),
2825         (rebuild_child_model), (rb_library_browser_set_selection),
2826         (rb_library_browser_set_model):
2827         * widgets/rb-library-browser.h:
2828         * widgets/rb-property-view.c: (rb_property_view_class_init),
2829         (rb_property_view_set_property), (rb_property_view_reset),
2830         (rb_property_view_get_model), (rb_property_view_constructor),
2831         (rb_property_view_set_selection),
2832         (rb_property_view_selection_changed_cb),
2833         (rb_property_view_button_press_cb),
2834         (rb_property_view_set_search_func):
2835         * widgets/rb-query-creator-private.h:
2836         * widgets/rb-query-creator-properties.c:
2837         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
2838         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
2839         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
2840         (relativeTimeCriteriaCreateWidget),
2841         (relativeTimeCriteriaSetWidgetData):
2842         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2843         (rb_query_creator_dispose), (rb_query_creator_load_query),
2844         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
2845         (get_property_index_from_proptype), (select_criteria_from_value),
2846         (create_property_option_menu), (create_criteria_option_menu),
2847         (sort_option_menu_changed), (setup_sort_option_menu):
2848         * widgets/rb-query-creator.h:
2849         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
2850         (rb_rating_render_stars):
2851         * widgets/rb-rating-helper.h:
2852         * widgets/rb-rating.c: (rb_rating_expose):
2853         * widgets/rb-rating.h:
2854         * widgets/rb-search-entry.c: (rb_search_entry_clear),
2855         (rb_search_entry_timeout_cb):
2856         * widgets/rb-search-entry.h:
2857         * widgets/rb-song-info.c: (rb_song_info_construct_single),
2858         (rb_song_info_constructor), (rb_song_info_new),
2859         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
2860         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
2861         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2862         (rb_song_info_query_model_changed_cb),
2863         (rb_song_info_sync_entries_multiple),
2864         (rb_song_info_sync_entry_single):
2865         Strip all trailing whitespace.  Fixes #344293.
2867 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
2869         * doc/reference/Makefile.am: Fix GTK Doc Build
2871 2006-07-13  James Livingston  <doclivingston@gmail.com>
2873         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
2875         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
2876         instead of the LOCATION, and don't try to get the directory listing
2877         for http URI schemes
2879         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
2880         invalid utf8 in the error message, since apparently it can happen.
2882 2006-07-12  William Jon McCann  <mccann@jhu.edu>
2884         * sources/rb-import-errors-source.c:
2885         (rb_import_errors_source_class_init),
2886         (rb_import_errors_source_init),
2887         (rb_import_errors_source_constructor),
2888         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
2889         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
2890         * sources/rb-missing-files-source.c:
2891         (rb_missing_files_source_class_init),
2892         (rb_missing_files_source_init),
2893         (rb_missing_files_source_constructor),
2894         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
2895         (rb_missing_files_source_songs_sort_order_changed_cb),
2896         (impl_get_status):
2897         * sources/rb-source.c: (rb_source_class_init),
2898         (rb_source_finalize), (update_visibility_idle),
2899         (queue_update_visibility), (rb_source_set_hidden_when_empty),
2900         (rb_source_set_property), (rb_source_get_property),
2901         (default_get_status), (rb_source_update_play_statistics),
2902         (default_add_to_queue), (_rb_source_show_popup),
2903         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
2904         (rb_source_gather_selected_properties),
2905         (_rb_source_register_action_group):
2906         * sources/rb-source.h:
2907         * sources/rb-sourcelist.c: (visibility_notify_cb):
2908         Don't use a fake model for import-errors and missing-files
2909         sources.  Add a new source property "hidden-when-empty".
2910         Update source visibility in an idle.  Clean up some whitespace.
2911         From bug #346800
2913 2006-07-12  James Livingston  <doclivingston@gmail.com>
2915         * bindings/python/rb.defs:
2916         * bindings/python/rb.override: bind rb_error_dialog
2918         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
2919         the current working directory for uninstalled plugins, and add the
2920         class name to the method name.
2922 2006-07-12  James Livingston  <doclivingston@gmail.com>
2924         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
2925         the sources EOF type if it's NULL. Fixes #346284.
2927 2006-07-12  James Livingston  <doclivingston@gmail.com>
2929         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
2930         I accidently committed. Nothing to see here, move along...
2932 2006-07-11  James Livingston  <doclivingston@gmail.com>
2934         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2935         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
2936         Unknown.
2938 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2940         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
2942 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2944         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
2945         Don't try to set mtime if we've deleted the entry.
2947 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2949         * bindings/python/rhythmdb.defs:
2950         * rhythmdb/rhythmdb.c:
2951         * rhythmdb/rhythmdb.h:
2952         * rhythmdb/rhythmdb-private.h:
2953         * rhythmdb/rhythmdb-query.c:
2954         Move data structures holding registered entry types inside the
2955         RhythmDB object, and add a vfunc called when new types are registered.
2956         Add a flag to RhythmDBEntryType specifying whether entries of the type
2957         should be saved to the on-disk database.
2959         * sources/rb-audiocd-source.c:
2960         * sources/rb-daap-source.c:
2961         * sources/rb-ipod-source.c:
2962         * plugins/generic-player/rb-generic-player-source.c:
2963         * plugins/generic-player/rb-nokia770-source.c:
2964         * plugins/generic-player/rb-psp-source.c:
2965         Adjust to the above changes.
2967         * rhythmdb/rhythmdb-tree.c:
2968         If the type for an entry hasn't been registered yet, store the entry's
2969         properties as-is, and convert them to a real entry when the type is
2970         registered.  If the type doesn't get registered, save the entry back
2971         to the database unmodified.  From #330226.
2973 2006-07-10  James Livingston  <doclivingston@gmail.com>
2975         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
2976         os.path.unlink to os.unlink, so removing stuff works.
2978 2006-07-10  James Livingston  <doclivingston@gmail.com>
2980         patch by: Ed Catmur  <ed@catmur.co.uk>
2981               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
2983         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2984         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
2985         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
2986         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
2987         internals of the cover database and Amazon lookup engine, and add
2988         support for loading art from the local file system. Fixes #345688.
2990         * plugins/rb/Coroutine.py:
2991         * plugins/rb/Makefile.am:
2992         * plugins/rb/__init__.py: Add the Coroutine class to the common python
2993         plugin classes.
2995 2006-07-10  James Livingston  <doclivingston@gmail.com>
2997         * tests/Makefile.am: don't run the benchmark when doing "make check"
2999         * po/POTFILES.in: more build fixes, from Matti Lindell
3000         <feenixx@hotmail.com>. Fixes #347049.
3003 2006-07-10  James Livingston  <doclivingston@gmail.com>
3005         * plugins/cd-recorder/Makefile.am: build fixes
3007         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
3008         attempt to change properties if we couldn't create an entry.
3010         * shell/rb-source-header.c: (rb_source_header_init),
3011         (rb_source_header_view_browser_changed_cb),
3012         (rb_source_header_sync_control_state):
3013         * shell/rb-tray-icon.c:
3014         * widgets/Makefile.am:
3015         * widgets/disclosure-widget.c:
3016         * widgets/disclosure-widget.h: remove the remanents of the disclosure
3017         widget, as it hasn't been used for a while.
3019 2006-07-09  William Jon McCann  <mccann@jhu.edu>
3021         * Makefile.am:
3022         * configure.ac:
3023         * data/ui/rhythmbox-ui.xml:
3024         * plugins/Makefile.am:
3025         * plugins/cd-recorder/.cvsignore:
3026         * plugins/cd-recorder/Makefile.am:
3027         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
3028         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
3029         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
3030         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
3031         (source_burn), (cmd_burn_source), (playlist_entries_changed),
3032         (playlist_row_inserted_cb), (update_source),
3033         (shell_selected_source_notify_cb), (impl_activate),
3034         (impl_deactivate):
3035         * shell/Makefile.am:
3036         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
3037         (rb_playlist_manager_cmd_save_playlist):
3038         * shell/rb-shell.c: (rb_shell_select_source):
3039         * sources/Makefile.am:
3040         * sources/rb-playlist-source-recorder.c:
3041         (rb_playlist_source_recorder_new):
3042         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3043         (rb_playlist_source_add_to_map):
3044         * sources/rb-playlist-source.h:
3045         Move cd burning into a plugin.  Fixes #344300.
3047 2006-07-10  James Livingston  <doclivingston@gmail.com>
3049         * lib/eel-gconf-extensions.c:
3050         * shell/rb-shell.c: remove some ununsed gnomeui includes
3052         * widgets/Makefile.am:
3053         * widgets/rb-song-display-box.c:
3054         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
3055         since it isn't acutally used anywhere. Fixes #346926
3057 2006-07-09  James Livingston  <doclivingston@gmail.com>
3059         * bindings/python/rb.defs:
3060         * bindings/python/rb.override:
3061         * lib/rb-debug.c: (rb_debug_real):
3062         * lib/rb-debug.h:
3063         * plugins/rb/__init__.py: don't print out an extra newline when
3064         diverting python print statements to RB's debug log.
3066 2006-07-09  James Livingston  <doclivingston@gmail.com>
3068         * rhythmdb/rhythmdb-property-model.c:
3069         (rhythmdb_property_model_drag_data_get):
3070         * sources/rb-sourcelist-model.c:
3071         (rb_sourcelist_model_row_draggable),
3072         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
3073         from the row reference is still valid. Fixes #346709.
3075 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3077         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
3079         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
3080         If all selected entries have the same rating, use that as the initial
3081         rating for the multiple song info dialog.  Fixes #345970.
3083 2006-07-09  James Livingston  <doclivingston@gmail.com>
3085         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
3086         to prevent #343345:
3087                 - don't ever scale to 1x1, just hide the image in that case
3088                 - don't fade when the window is minimised
3089                 - use the last-good allocation width, not the current one - as
3090                   it sometimes get weird values.
3092 2006-07-08  William Jon McCann  <mccann@jhu.edu>
3094         * data/ui/rhythmbox-ui.xml:
3095         * shell/rb-shell.c:
3096         Remove Import audio CD from menu.  Fixes #339732
3098 2006-07-08  James Livingston  <doclivingston@gmail.com>
3100         * metadata/test-metadata.c: (print_metadata_string),
3101         (load_metadata_cb): print out all the metadata we have read, not just
3102         a few.
3104         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
3105         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
3107 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3109         * plugins/lyrics/lyrics.py:
3110         Change the lyrics cache location to match Quod Libet's,
3111         and fix the '&' -> 'and' substitution to require spaces.
3113 2006-07-08  James Livingston  <doclivingston@gmail.com>
3115         * bindings/python/rb.defs:
3116         * bindings/python/rb.override: bind rb_debug_real to rb._debug
3118         * configure.ac:
3119         * plugins/Makefile.am:
3120         * plugins/rb-python-module.c: (rb_python_module_init_python):
3121         * plugins/rb/Makefile.am: add a place to put common python classes.
3122         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
3123         rb module/
3125         * plugins/lyrics/Makefile.am:
3126         * plugins/lyrics/Loader.py:
3127         * plugins/artdisplay/artdisplay/Makefile.am:
3128         * plugins/artdisplay/artdisplay/Loader.py:
3129         * plugins/rb/Loader.py: move the loader class to rb.Loader
3131         * plugins/rb/__init__.py: redirect stdout from python (e.g.
3132         "print ...") to rb_debug. error output (e.g. exceptions) are still
3133         printed on stderr.
3135         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3136         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3137         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
3138         instead of Loader.
3140         Fixes #346895.
3142 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3144         * shell/rb-shell-player.xml:
3145         * shell/rb-shell-player.h:
3146         Correct the details of the playing-song-property-changed signal.
3148 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3150         * lib/rb-marshal.list:
3151         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3152         (rb_shell_player_entry_changed_cb):
3153         * shell/rb-shell-player.h:
3154         * shell/rb-shell-player.xml:
3155         Emit a dbus signal when a property is changed on the playing entry.
3156         Fixes #332461.
3158 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3160         * rhythmdb/rhythmdb-private.h:
3161         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3162         Fix build break with gcc 4.1 by changing RBRefString pointers into
3163         gpointers.
3165 2006-07-07  James Livingston  <doclivingston@gmail.com>
3167         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
3168         remove an extraneous !, which caused it not to monitor folders in the
3169         library with no tracks in them. Fixes #346759.
3171 2006-07-07  James Livingston  <doclivingston@gmail.com>
3173         * rhythmdb/rhythmdb-private.h:
3174         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
3175         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
3176         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
3177         (rhythmdb_entry_get_string):
3178         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
3179         flags for the affected properties. _sync_mirrored will get run
3180         automatically when a dirty property is accessed, which improves
3181         performance a bit (especially during startup) as we don't need to sync
3182         every time they change. From #325215.
3184         * tests/bench-rhythmdb-load.c
3185         * tests/Makefile.am: add a RhythmDB loading benchmark.
3187 2006-07-06  James Livingston  <doclivingston@gmail.com>
3189         * bindings/python/rb.defs:
3190         * bindings/python/rb.override: some more fixes, so that
3191         python classes derived from RBSource work correctly.
3193 2006-07-06  James Livingston  <doclivingston@gmail.com>
3195         * configure.ac: bump pygtk requirements to 2.8, since we're already
3196         using some features of it, and weird things will happen if people are
3197         actually trying to use pygtk 2.6.
3199         * bindings/python/rb.override:
3200         * bindings/python/rhythmdb.defs:
3201         * bindings/python/rhythmdb.override: allow python to set
3202         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
3204         * sources/rb-browser-source.c: remove some left over member variables
3206 2006-07-06  James Livingston  <doclivingston@gmail.com>
3208         * rhythmdb/rhythmdb.c:
3209         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
3210         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
3211         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
3212         former is pointless (as rhythmdb already knows which it should use)
3213         and the latter doesn't seem useful at all, and possibly bad. From
3214         #330226.
3216         * bindings/python/rhythmdb.defs:
3217         * bindings/python/rhythmdb.override:
3218         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
3219         (handle_song_listing):
3220         * podcast/rb-podcast-manager.c:
3221         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
3222         (rb_podcast_manager_insert_feed):
3223         * sources/rb-audiocd-source.c: (entry_set_string_prop),
3224         (rb_audiocd_create_track_entry):
3225         * sources/rb-ipod-source.c: (entry_set_string_prop),
3226         (add_ipod_song_to_db):
3227         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
3228         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
3230 2006-07-05  James Livingston  <doclivingston@gmail.com>
3232         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
3233         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
3234         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
3235         totem-plparser gives us, or the file name if it doesn't give us
3236         anything. Set the default file name when saving too. Fixes #345261
3238 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3240         patch by: Ed Catmur  <ed@catmur.co.uk>
3242         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
3243         Skip all hidden directories, not just trash, and skip unreadable
3244         files.  Fixes #346322.
3246 2006-07-04  James Livingston  <doclivingston@gmail.com>
3248         * plugins/rb-module.h:
3249         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
3250         (rb_module_new):
3251         * plugins/rb-plugin.h:
3252         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
3253         (rb_plugin_finalise), (rb_plugin_set_property),
3254         (rb_plugin_get_property), (rb_plugin_activate),
3255         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
3256         (rb_plugin_find_file):
3257         * plugins/rb-plugins-engine.c: (load_plugin_module):
3258         * plugins/rb-python-module.c: (rb_python_module_new_object),
3259         (rb_python_module_new):
3260         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
3261         rb_plugin_find_file method for locating plugin-specific data. Fixes
3262         346473.
3264         * bindings/python/rb.defs:
3265         * plugins/Makefile.am:
3266         * plugins/generic-player/rb-generic-player-plugin.c:
3267         (create_source_cb):
3268         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
3270 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3272         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
3273         (rb_metadata_can_save), (rb_metadata_save):
3274         Protect the dbus connection with a mutex.
3276 2006-07-03  James Livingston  <doclivingston@gmail.com>
3278         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
3279         case of the parser/tagger not being able to be created.
3281 2006-07-03  James Livingston  <doclivingston@gmail.com>
3283         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3285         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
3286         window resizable, as it used to be. Fixes #345940.
3288 2006-07-01  James Livingston  <doclivingston@gmail.com>
3290         Patch from Ståle Lyngaas  <staale@lyngaas.com>
3292         * rhythmdb/rhythmdb.h:
3293         * rhythmdb/rhythmdb-private.h:
3294         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3295         (rhythmdb_tree_parser_end_element), (save_entry):
3296         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
3297         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
3298         (set_props_from_metadata), (rhythmdb_entry_set_internal),
3299         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
3300         MusicBrainz track IDs in the database, and bump the on-disk version
3301         number to trigger a metadata reload.
3303         * backends/gstreamer/rb-player-gst.c: (process_tag):
3304         * metadata/rb-metadata-common.c:
3305         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
3306         (rb_metadata_gst_field_to_gst_tag):
3307         * metadata/rb-metadata.h: grab MB track IDs and use them.
3309         * plugins/audioscrobbler/rb-audioscrobbler.c:
3310         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
3311         (rb_audioscrobbler_timeout_cb),
3312         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
3313         the other metadata. Fixes #343491.
3315 2006-06-30  James Livingston  <doclivingston@gmail.com>
3317         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
3318         method.
3320 2006-06-30  James Livingston  <doclivingston@gmail.com>
3322         * bindings/python/rb.defs:
3323         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3324         (rb_browser_source_songs_show_popup_cb),
3325         (default_show_entry_popup):
3326         * sources/rb-browser-source.h:
3327         * sources/rb-library-source.c: (rb_library_source_class_init),
3328         (rb_library_source_constructor), (impl_show_popup): allow
3329         RBBrowserSource-derived sources to override the entry context menu
3330         properly - by making it a virtual function, rather than relying on
3331         signal handler order (which doesn't really work).
3333 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3335         * rhythmdb/rhythmdb-query-model.c:
3336         (rhythmdb_query_model_reapply_query_cb):
3337         Use the original query, not the preprocessed query, when redoing
3338         the query to pick up entries that previously didn't match.
3339         Preprocessing the query twice is bad.  Fixes #346186.
3341 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3343         * plugins/audioscrobbler/rb-audioscrobbler.c:
3344         (rb_audioscrobbler_song_changed_cb):
3345         Just check if the elapsed time has been reset, rather
3346         than checking if it's a different track.  Fixes #344827.
3348 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3350         * backends/gstreamer/rb-player-gst.c:
3351         Set cdda source read-speed to 1.  Fixes gaps in playback while the
3352         drive spins up, #344576.
3354 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3356         * plugins/audioscrobbler/rb-audioscrobbler.c:
3357         (rb_audioscrobbler_perform):
3358         Use HTTP/1.1.  Fixes #345895.
3360 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3362         * lib/rb-preferences.h:
3363         * lib/rb-proxy-config.c: (rb_proxy_config_init),
3364         (check_auto_proxy_config), (get_proxy_config):
3365         Don't try to use a HTTP proxy if no proxy host is specified.
3366         Alert the user to the fact that we don't support automatic proxy
3367         configuration as infrequently as possible.  From #345712.
3369 2006-06-25  James Livingston  <doclivingston@gmail.com>
3371         * rhythmdb/rhythmdb-property-model.c:
3372         (rhythmdb_property_model_set_property): connect to the
3373         "post-entry-delete" signal, rather than "entry-deleted". This ensures
3374         things get removed correctly, fixes #338183.
3376 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3378         * rhythmdb/rhythmdb-query-model.c:
3379         (rhythmdb_query_model_drag_data_received):
3380         Fix build break.
3382 2006-06-25  James Livingston  <doclivingston@gmail.com>
3384         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3386         * widgets/rb-search-entry.c: (rb_search_entry_init),
3387         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
3388         search box have a pale yellow background when it's in use, except for
3389         when the user has an "accessability" theme. Code based heavily on
3390         Epiphany's. Fixes #344416.
3392 2006-06-25  James Livingston  <doclivingston@gmail.com>
3394         * plugins/lyrics/lyrics.py:
3395         * plugins/pythonconsole/pythonconsole.py:
3396         * plugins/sample-python/sample-python.py: don't import gettext stuff
3397         as _, as the C code does this for us. Fixes i18n for python plugins,
3398         #343081
3400 2006-06-25  James Livingston  <doclivingston@gmail.com>
3402         * rhythmdb/rhythmdb-query-model.c:
3403         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
3404         a model use a reorder rather then deleting and re-adding the entry.
3405         This means it does do weird things like stop playback of a track that
3406         is dragged, fixing #337657.
3408 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3410         * metadata/rb-metadata-dbus-service.c:
3411         Add missing #include <glib/gi18n.h> from previous commit.
3413 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3415         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3417         * metadata/rb-metadata-dbus-service.c: (main):
3418         Initialize gettext in the metadata helper.
3419         * metadata/rb-metadata-gst.c:
3420         Make some strings translatable.  Fixes #345286.
3422 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3424         * configure.ac:
3425         * lib/Makefile.am:
3426         * lib/rb-stock-icons.c: (rb_stock_icons_init):
3427         Inline the custom icons so they can always be loaded, but are still
3428         themable.  Fixes #345796.
3430 2006-06-23  James Livingston  <doclivingston@gmail.com>
3432         * sources/rb-auto-playlist-source.c:
3433         (rb_auto_playlist_source_do_query): stop the search box being applied
3434         for limits in auto playlists. Fixes #345307.
3436 2006-06-23  James Livingston  <doclivingston@gmail.com>
3438         * shell/rb-shell-clipboard.c:
3439         (rb_shell_clipboard_set_source_internal),
3440         (rb_shell_clipboard_sync), (add_playlist_to_menu),
3441         (rebuild_playlist_menu): don't use the add-to-playlist menu for
3442         non-library tracks, as we don't supprot it yet. From #345248.
3444 2006-06-23  James Livingston  <doclivingston@gmail.com>
3446         patch by: Brian Cameron  <brian.cameron@sun.com>
3448         * plugins/generic-player/rb-generic-player-plugin.c:
3449         * plugins/generic-player/rb-generic-player-source.c:
3450         * plugins/generic-player/rb-nokia770-source.c:
3451         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
3452         Fixes 345673.
3454 2006-06-22  James Livingston  <doclivingston@gmail.com>
3456         * backends/rb-player.c: (rb_player_interface_init):
3457         * lib/rb-marshal.list:
3458         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3459         * rhythmdb/rhythmdb-query-model.c:
3460         (rhythmdb_query_model_class_init):
3461         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
3462         * shell/rb-shell-player.c: (rb_shell_player_class_init):
3463         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
3464         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
3465         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3466         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
3467         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
3468         possible not.
3470 2006-06-20  James Livingston  <doclivingston@gmail.com>
3472         patch by Alex Lancaster  <alexl@users.sourceforge.net>
3474         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
3475         metadata to clients. Fixes #345276.
3477 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3479         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
3480         (rb_add_id3_tagger):
3481         Fix plugin/element version detection for id3v2mux.
3483 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3485         * sources/rb-source.c: (rb_source_finalize),
3486         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
3487         (_autohide_update_visibility),
3488         (_rb_autohide_source_post_entry_deleted_cb),
3489         (_rb_autohide_source_row_inserted_cb),
3490         (_rb_source_hide_when_empty):
3491         Use post-entry-delete signal to update status and autohide sources.
3493 2006-06-20  James Livingston  <doclivingston@gmail.com>
3495         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
3496         "selection changed" idle callback, if present.
3498 2006-06-19  James Livingston  <doclivingston@gmail.com>
3500         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3502         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
3503         don't try to translate the empty string. Fixes #345285.
3505 2006-06-19  James Livingston  <doclivingston@gmail.com>
3507         * bindings/python/rhythmdb.override: more python binding fixes
3509 2006-06-19  James Livingston  <doclivingston@gmail.com>
3511         * lib/rb-util.c: (rb_copy_function):
3512         * lib/rb-util.h: add a function that returns the same pointer it was
3513         passed.
3515         * rhythmdb/rhythmdb.h:
3516         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
3517         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
3518         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
3519         and RhythmDBEntryType into boxed types. This allows them to be used
3520         from python. Note that entry-types aren't actually reference counted
3521         (yet).
3523         * bindings/python/rb.defs:
3524         * bindings/python/rhythmdb.defs:
3525         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
3526         return types of some bindings.
3528         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
3529         (process_added_entries_cb), (rhythmdb_entry_finalize),
3530         (rhythmdb_entry_delete):
3531         * daapsharing/rb-daap-connection.c:
3532         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
3533         (rb_daap_connection_get_property):
3534         * plugins/generic-player/rb-generic-player-source.c:
3535         (rb_generic_player_source_load_songs), (load_playlist_file):
3536         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3537         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
3538         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
3539         (idle_process_update), (rhythmdb_query_model_add_entry),
3540         (rhythmdb_query_model_insert_into_main_list),
3541         (rhythmdb_query_model_insert_into_limited_list),
3542         (rhythmdb_query_model_remove_from_main_list),
3543         (rhythmdb_query_model_remove_from_limited_list),
3544         (rhythmdb_query_model_drag_data_received),
3545         (rhythmdb_query_model_add_results),
3546         (rhythmdb_query_model_get_column_type),
3547         (rhythmdb_query_model_get_value):
3548         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3549         (rhythmdb_tree_entry_delete), (remove_one_song):
3550         * shell/rb-play-order-linear-loop.c:
3551         (rb_linear_play_order_loop_get_next),
3552         (rb_linear_play_order_loop_get_previous):
3553         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
3554         (rb_linear_play_order_get_previous):
3555         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
3556         (rb_queue_play_order_get_previous):
3557         * shell/rb-play-order-random.c: (rb_random_play_order_init),
3558         (rb_random_filter_history), (rb_random_play_order_get_next),
3559         (rb_random_play_order_go_next), (rb_random_db_changed),
3560         (rb_random_playing_entry_changed):
3561         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
3562         (remove_from_history), (add_randomly_to_history),
3563         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
3564         * shell/rb-play-order.c: (rb_play_order_class_init),
3565         (rb_play_order_set_property), (rb_play_order_get_property),
3566         (rb_play_order_update_have_next_previous):
3567         * shell/rb-play-order.h:
3568         * shell/rb-shell-clipboard.c:
3569         (rb_shell_clipboard_process_deletions),
3570         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
3571         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
3572         * sources/rb-auto-playlist-source.c:
3573         (rb_auto_playlist_source_constructor):
3574         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3575         (rb_browser_source_set_property), (rb_browser_source_get_property),
3576         (rb_browser_source_do_query):
3577         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
3578         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
3579         * sources/rb-ipod-source.c: (add_rb_playlist),
3580         (add_ipod_song_to_db), (impl_paste):
3581         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3582         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
3583         * sources/rb-library-source.c: (layout_example_label_update):
3584         * sources/rb-missing-files-source.c:
3585         (rb_missing_files_source_class_init),
3586         (rb_missing_files_source_set_property),
3587         (rb_missing_files_source_get_property),
3588         (rb_missing_files_source_new):
3589         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3590         (rb_playlist_source_set_property),
3591         (rb_playlist_source_get_property):
3592         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3593         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
3594         (construct_query_from_selection):
3595         * sources/rb-removable-media-source.c: (impl_delete_thyself):
3596         * sources/rb-static-playlist-source.c:
3597         (rb_static_playlist_source_constructor),
3598         (rb_static_playlist_source_add_location_internal):
3599         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3600         * widgets/rb-header.c: (rb_header_class_init),
3601         (rb_header_set_property), (rb_header_get_property):
3602         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
3603         (rb_library_browser_set_property),
3604         (rb_library_browser_get_property):
3605         * widgets/rb-song-info.c: (rb_song_info_class_init),
3606         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
3607         change, do s/pointer/boxed/ in many places and free entry-types
3608         properly.
3610 2006-06-18  James Livingston  <doclivingston@gmail.com>
3612         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
3613         unushed GThreadPool non-exclusive threads every now and then.
3615         * rhythmdb/rhythmdb-private.h:
3616         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
3617         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
3618         threads. Fixes #341593
3620 2006-06-19  James Livingston  <doclivingston@gmail.com>
3622         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3623         the "Track number" checkbox actually work for playlists. From #329986.
3625 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3627         * plugins/generic-player/rb-generic-player-source.c:
3628         Get playlist and audio folder information from HAL.  Fixes #333845.
3630 2006-06-18  James Livingston  <doclivingston@gmail.com>
3632         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
3634         * widgets/rb-entry-view.h:
3635         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3636         (rb_entry_view_append_column_custom),
3637         (rb_entry_view_insert_column_custom): add support for inserting custom
3638         columns at arbitrary locations, rather than just appending to the end.
3640         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3641         the playlists "track number" column go at the start, and add a normal
3642         track number column. Fixes #329986.
3644 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
3646         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
3647         a mnemonic conflict.  Add ellipses to the edit button.
3648         * sources/rb-library-source.c:
3649         (rb_library_source_edit_profile_clicked_cb),
3650         (impl_get_config_widget):  Hide dialog separator.  Assign a 
3651         mnemonic widget to the labels. Fixes #344114.
3653 2006-06-18  James Livingston  <doclivingston@gmail.com>
3655         * configure.ac: bump version
3656         * NEWS: add NEWS for 0.9.5
3658 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3660         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
3661         (rb_uri_handle_recursively):
3662         Don't attempt to recurse into directories we can't open.  
3663         Fixes #341485.
3665 2006-06-18  James Livingston  <doclivingston@gmail.com>
3667         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
3669         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
3670         #344610.
3672 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3674         * bindings/python/rb.defs:
3675         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
3676         * shell/rb-shell-player.h:
3677         * shell/rb-shell.c: (rb_shell_play_entry):
3678         Add source parameter to rb_shell_player_play_entry, using the selected
3679         source if not specified.
3681         * shell/rb-play-order.c: (rb_play_order_class_init),
3682         (rb_play_order_finalize), (rb_play_order_query_model_changed),
3683         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
3684         (default_playing_entry_removed):
3685         * shell/rb-play-order.h:
3686         Move entry removal handling back to the row-deleted signal, as we need
3687         the entry to be present in the model.  When changing to the next entry
3688         after the playing entry is deleted, set the new entry as the playing
3689         entry and then sync it to the player in an idle handler, so we don't
3690         end up playing it if it was removed too.
3691         * shell/rb-play-order-queue.c:
3692         (rb_queue_play_order_playing_entry_changed),
3693         (rb_queue_play_order_playing_entry_removed):
3694         Use the playing-entry-removed handler from the play order class,
3695         setting a flag so we don't try to remove the already-removed entry
3696         from the model.
3698         This makes removal of the playing entry from playlists etc. work more
3699         or less correctly for all play orders.  Fixes #344627.
3701 2006-06-17  James Livingston  <doclivingston@gmail.com>
3703         patch by: Elijah Newren  <newren@gmail.com>
3705         * tests/test-rhythmdb.c: fix the build with older versions of check
3706         (again). Fixes #343718.
3708 2006-06-17  James Livingston  <doclivingston@gmail.com>
3710         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
3711         name for capsfilter's "caps" property. Fixes #344968.
3713 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3715         * shell/rb-shell-player.c: (rb_shell_player_playpause):
3716         Don't leak the selected entry list when finding an entry to play.
3718 2006-06-17  James Livingston  <doclivingston@gmail.com>
3720         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
3721         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
3722         as a O(1) one works fine, and it will get called often when the user
3723         deleted multiple tracks. Part of #344922.
3725 2006-06-17  James Livingston  <doclivingston@gmail.com>
3727         * shell/rb-shell-player.c: (rb_shell_player_stop): make
3728         rb_shell_player_stop and rb_shell_player_playpause not mutually
3729         recursive. Fixed #336912.
3731 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3733         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
3734         Treat nested elements inside properties as unknown.  Fixes parsing of
3735         podcast feeds with unescaped HTML in description tags, bug #344532.
3737 2006-06-15  William Jon McCann  <mccann@jhu.edu>
3739         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
3740         when quitting.  Fixes #344875.
3742 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3744         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
3745         Move the playing-entry-removed handling to after the normal entry
3746         delete handling, since we're called after the entry has been removed
3747         from the query model now.  Fixes crashes described in #344627.
3749 2006-06-13  William Jon McCann  <mccann@jhu.edu>
3751         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
3752         (rb_rating_get_rating_from_widget):
3753         * widgets/rb-rating.c: (rb_rating_class_init),
3754         (rb_rating_finalize), (rb_rating_get_property),
3755         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
3756         (rb_rating_button_press_cb):
3757         Don't crash when ratings icons can't be found.  Fixes #344533.
3759 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3761         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
3763 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3765         * Makefile.am:
3766         * configure.ac:
3767         * remote/Makefile.am:
3768         * remote/dbus/Makefile.am:
3769         * remote/dbus/rb-client.c:
3770         * shell/Makefile.am:
3771         New dbus client program providing --play/--next etc. arguments.
3772         Fixes #340863, #155763.
3774 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3776         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
3777         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
3779 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
3781         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
3783         * rhythmdb/rhythmdb-query-model.c:
3784         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
3785         to Library incorrectly
3787 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3789         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
3790         Return input string untouched if gnome_vfs_uri_new returns NULL.
3791         * sources/rb-static-playlist-source.c: (impl_receive_drag),
3792         (rb_static_playlist_source_add_list_uri):
3793         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
3794         URIs don't break it.  Fixes #339033.
3796 2006-06-08  James Livingston  <doclivingston@gmail.com>
3798         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
3799         for sources on the edge (i.e. the queue). Fixes #328409.
3801         * sources/rb-ipod-source.c: fix typo
3803 2006-06-08  James Livingston  <doclivingston@gmail.com>
3805         * configure.ac:
3806         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
3807         --enable-ipod-writing to enable the ipod syncing code.
3809 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3811         * sources/rb-library-source.c: (layout_example_label_update):
3812         add missing comma so we don't generate broken markup.
3814 2006-06-08  James Livingston  <doclivingston@gmail.com>
3816         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
3817         tag-merging with id3v2mux as well as id3mux. From #342330.
3819 2006-06-07  James Livingston  <doclivingston@gmail.com>
3821         * tests/test-rhythmdb.c: #define fail_if for old version of check
3822         which don't have it. Hopefully fixes #343718.
3824 2006-06-07  James Livingston  <doclivingston@gmail.com>
3826         * shell/rb-playlist-manager.c:
3827         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
3828         g_value_array_free with NULL. Fixes #341053.
3830 2006-06-07  James Livingston  <doclivingston@gmail.com>
3832         * shell/rb-playlist-manager.c:
3833         (rb_playlist_manager_playlist_entries_changed),
3834         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
3835         instead of "row-removed", which fixes updating "burn playlist"
3836         sensitivity. Fixes #331119.
3838 2006-06-07  James Livingston  <doclivingston@gmail.com>
3840         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
3841         rather than restarting if the source uses _RETRY and there is an
3842         actual error (like an undecodable stream) rather than it just dropping
3843         out and causing EOS.
3845 2006-06-07  James Livingston  <doclivingston@gmail.com>
3847         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
3848         free the pixbufs if they couldn't be loaded. Fixed #343852.
3850 2006-06-07  James Livingston  <doclivingston@gmail.com>
3852         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
3853         the close button on the dialog work. Fixes #335346.
3855 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3857         * sources/rb-sourcelist-model.c: (path_is_droppable),
3858         (path_is_reorderable):
3859         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
3860         (row_activated_cb), (emit_show_popup), (key_release_cb),
3861         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3862         Ignore group marker rows in the source list.  Fixes #344089, a couple
3863         of other crashers, and some weird UI glitches too.
3865 2006-06-07  James Livingston  <doclivingston@gmail.com>
3867         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
3868         the seeking query fails. This is needed because many gst elements
3869         don't implement the seeking query yet. Should fix 329977.
3871 2006-06-06  James Livingston  <doclivingston@gmail.com>
3873         * configure.ac: bump version for a prerelease, turn on track transfer
3874         by default.
3876         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
3877         ipod transfer stuff, since it has big issues and we'll hopefully land
3878         real support (bug 310774) after 0.9.5
3880 2006-06-06  James Livingston  <doclivingston@gmail.com>
3882         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
3883         id3v2mux once we've detected it.
3885 2006-06-06  James Livingston  <doclivingston@gmail.com>
3887         * lib/Makefile.am:
3888         * tests/test-rhythmdb.c: undo accidental commit which caused
3889         rb-thread.c to be built (which it isn't normally)
3891 2006-06-06  James Livingston  <doclivingston@gmail.com>
3893         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
3894         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
3895         fail_{if/unless} calls, as some versions of check need them (they are
3896         optional in others). Should fix bug 343718.
3898 2006-06-06  James Livingston  <doclivingston@gmail.com>
3900         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
3901         343836.
3902         
3903         * lib/Makefile.am:
3904         * lib/rb-thread.c: (process_actions):
3905         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
3906         tests that don't pass.
3908 2006-06-05  James Livingston  <doclivingston@gmail.com>
3910         * data/glade/Makefile.am:
3911         * data/glade/load-failure.glade:
3912         * data/rhythmbox.schemas: remove the remainder of the old load-failure
3913         dialog.
3915 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3917         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
3918         checked in.
3920 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3922         * bindings/python/rb.defs:
3923         * sources/rb-source.h:
3924         * sources/rb-source.c: (rb_source_class_init),
3925         (rb_source_set_property), (rb_source_get_property),
3926         (rb_sourcelist_group_get_type):
3927         Add 'sourcelist-group' property on the RBSource class, describing how
3928         sources should be grouped in the source list.
3930         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
3931         (rb_sourcelist_model_new), (real_row_is_separator),
3932         (rb_sourcelist_model_is_row_visible),
3933         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
3934         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
3935         (rb_sourcelist_model_row_draggable),
3936         (rb_sourcelist_model_row_inserted_cb),
3937         (rb_sourcelist_model_row_deleted_cb),
3938         (rb_sourcelist_model_get_group_path):
3939         * sources/rb-sourcelist-model.h:
3940         * sources/rb-sourcelist.c: (rb_sourcelist_init),
3941         (rb_sourcelist_append):
3942         Add group marker rows for each sourcelist group, and use these to
3943         insert sources in the right place.  Sort transient sources (DAAP
3944         shares) by name.  Show the group marker rows as separators when the
3945         next visible row is a source.  Make persistant sources (playlists) and
3946         removable sources reorderable using drag and drop, restricting them
3947         within the source groups.
3948         
3949         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
3950         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
3951         * sources/rb-daap-source.c: (rb_daap_source_new):
3952         * sources/rb-ipod-source.c: (rb_ipod_source_new):
3953         * sources/rb-static-playlist-source.c:
3954         (rb_static_playlist_source_new):
3955         * plugins/generic-player/rb-generic-player-source.c:
3956         (rb_generic_player_source_new):
3957         * plugins/generic-player/rb-nokia770-source.c:
3958         (rb_nokia770_source_new):
3959         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
3960         Add source list group information to existing source classes.
3962         Fixes #318754 and #336492.
3964 2006-06-04  James Livingston  <doclivingston@gmail.com>
3966         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
3967         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
3968         win32 build fixes.
3970 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3972         * rhythmdb/rhythmdb-query-model.c:
3973         (rhythmdb_query_model_class_init),
3974         (rhythmdb_query_model_remove_from_main_list):
3975         * rhythmdb/rhythmdb-query-model.h:
3976         Add a new 'post-entry-delete' signal, emitted when the entry has been
3977         removed from the model's data structures.
3979         * shell/rb-play-order.c: (rb_play_order_finalize),
3980         (rb_play_order_query_model_changed),
3981         (rb_play_order_post_entry_delete_cb):
3982         Use the new signal to update the play order, so the queue play order
3983         doesn't try to scroll to entries that don't exist in a way that causes
3984         the tree view to crash.  Fixes #340216.
3986 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3988         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
3989         Fix rb_debug call I missed previously.
3991 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3993         * metadata/rb-metadata-gst.c:
3994         Don't use NULL as the error message for ignored files, as it crashes
3995         with some C libraries.  Fixes #343713.
3997 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3999         * widgets/rb-dialog.c: (rb_error_dialog):
4000         * widgets/rb-dialog.h:
4001         Mark rb_error_dialog as taking printf-like arguments, and use a format
4002         string for the primary message rather than passing in the message
4003         directly.
4005         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
4006         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
4007         (info_available_cb):
4008         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
4009         * shell/rb-removable-media-manager.c:
4010         (rb_removable_media_manager_eject_medium_cb):
4011         Make sure all calls to rb_error_dialog use string constants for the
4012         format string rather than passing the error message directly.  Remove
4013         an extra %s from the message used when playback fails.  Fixes #343562.
4015         * lib/rb-debug.h:
4016         * sources/rb-audiocd-source.c:
4017         * plugins/audioscrobbler/rb-audioscrobbler.c:
4018         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
4019         Mark rb_debug as taking printf-like arguments and fix a few resulting
4020         warnings.
4022 2006-06-02  James Livingston  <doclivingston@gmail.com>
4024         * configure.ac:
4025         + macros/check.m4: add support for using check for unit tests, the .m4
4026         files is so autogen can run without check being installed
4028         * tests/Makefile.am:
4029         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
4030         some of the old tests, and add some new ones. Currently
4031         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
4032         yet (the query doesn't return any entries).
4034         - tests/deserialization-test1.xml:
4035         - tests/deserialization-test2.xml:
4036         - tests/deserialization-test3.xml:
4037         - tests/test-rhythmdb-indexing.c:
4038         - tests/test-rhythmdb-simple.c:
4039         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
4040         have been ported
4042         - tests/test-cd.c:
4043         - tests/test-cmdline.c: remove obsolete tests
4045 2006-06-02  James Livingston  <doclivingston@gmail.com>
4047         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4048         (rb_add_id3_tagger), (rb_metadata_init): add support for using
4049         id3v2mux, and check whether we are using a version of id3mux that has
4050         the correct merge-mode behaviour.
4052         * plugins/sample-python/Makefile.am: fix distcheck.
4054         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
4055         the changed-files source was added before trying to remove it.
4057         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
4058         *old* bug which would crash if a query with top-level disjunctions
4059         tried to check later disjunctive parts. Hooray for unit-testing.
4061 2006-06-02  William Jon McCann  <mccann@jhu.edu>
4063         * player/rb-recorder-gst.c (rb_recorder_set_device):
4064         Check for a null drive.
4066 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4068         * lib/Makefile.am:
4069         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4070         Register the app icon as a builtin if the icon theme can't find it.
4072 2006-05-31  James Livingston  <doclivingston@gmail.com>
4074         * player/rb-recorder-gst.c: add missing include.
4076 2006-05-30  William Jon McCann  <mccann@jhu.edu>
4078         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
4079         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
4080         (tick_timeout_cb), (rb_recorder_sync_pipeline),
4081         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
4082         (rb_recorder_set_device), (rb_recorder_get_default_device):
4083         * shell/main.c: (main):
4084         * shell/rb-removable-media-manager.c:
4085         (rb_removable_media_manager_finalize),
4086         (get_nautilus_burn_drive_for_path),
4087         (rb_removable_media_manager_playing_uri_changed_cb),
4088         (rb_removable_media_manager_load_media),
4089         (nautilus_burn_drive_get_device),
4090         (rb_removable_media_manager_scan):
4091         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
4093         Update for libnautilus-burn 2.15.3 API changes.
4094         Fixes #342604
4096 2006-05-30  James Livingston  <doclivingston@gmail.com>
4098         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
4099         "return" to that it asks for the password again if it was wrong.
4101 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4103         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
4104         typefind element.
4106 2006-05-30  James Livingston  <doclivingston@gmail.com>
4108         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
4109         (download_progress_cb): don't do wonky things if the transfer
4110         "suceeds" without transferring any data.
4112 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4114         * sources/rb-library-source.c: (layout_example_label_update),
4115         (build_filename):  Fix crash when no audio profile is selected.
4116         Fixes #341447.
4118 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4120         * shell/rb-shell.c: (rb_shell_clear_queue):
4121         * shell/rb-shell.h:
4122         * shell/rb-shell.xml:
4123         * sources/rb-play-queue-source.c:
4124         (rb_play_queue_source_clear_queue),
4125         (rb_play_queue_source_cmd_clear):
4126         * sources/rb-play-queue-source.h:
4127         Add clearQueue dbus method.
4129 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4131         * shell/main.c: (main):  Implement --quit option.
4133 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4135         * rhythmdb/rhythmdb-private.h:
4136         * rhythmdb/rhythmdb-tree.h:
4137         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
4138         (rhythmdb_entry_insert), (rhythmdb_entry_set),
4139         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
4140         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
4141         (rhythmdb_entry_get_boolean):
4142         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
4143         bitmask, giving the db backend anything past the first 16 bits for 
4144         its own private use.
4146         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4147         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
4148         Add a 'loading' flag to indicate that an entry is being loaded from
4149         disk, and use that to ignore entry_set operations on such entries
4150         rather than the 'inserted' flag, which doesn't quite mean the same
4151         thing.  Fixes #342694.
4153 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4155         * shell/rb-shell.xml: Remove visibility property, since it causes
4156         crashes (dbus bug 7057) and doesn't do much else.
4158 2006-05-28  James Livingston  <doclivingston@gmail.com>
4160         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
4162         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4163         * po/POTFILES.in: fix some more i18n issues.
4165 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4167         * bindings/python/rb.defs:
4168         * shell/rb-shell-player.c: (rb_shell_player_playpause),
4169         (filter_mmkeys):
4170         * shell/rb-shell-player.h:
4171         Deprecate the useless 'ignore_stop' parameter to
4172         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
4173         API.  From bug #334829.
4175 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4177         * plugins/generic-player/rb-generic-player-source.c:
4178         (visit_playlist_dirs), (default_transform_playlist_uri):
4179         When playlist parsing fails, unref the playlist, not the parent
4180         source.  Fix memory leak in playlist uri transform.
4181         * plugins/generic-player/rb-nokia770-source.c:
4182         (impl_transform_playlist_uri):
4183         Fix memory leak in playlist uri transform.
4185 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
4187         * doc/reference/Makefile.am: fix grk-doc build
4189 2006-05-27  James Livingston  <doclivingston@gmail.com>
4191         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4193         * plugins/lyrics/lyrics.py:
4194         * po/POTFILES.in: Make strings in plugins translatable. From bug
4195         343081.
4197 2006-05-27  James Livingston  <doclivingston@gmail.com>
4199         * backends/Makefile.am:
4200         * backends/gstreamer/Makefile.am:
4201         * lib/Makefile.am:
4202         * plugins/audioscrobbler/Makefile.am:
4203         * plugins/generic-player/Makefile.am:
4204         * po/POTFILES.in:
4205         * rhythmdb/rhythmdb-monitor.c:
4206         * rhythmdb/rhythmdb.c:
4207         * sources/Makefile.am:
4208         * widgets/Makefile.am: fix compilation after some CVS surgery was
4209         done.
4211 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4213         * bindings/python/rhythmdb.defs:
4214         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
4215         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
4216         (rhythmdb_query_deserialize):
4217         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
4218         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
4219         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
4220         (rhythmdb_entry_register_type_alias),
4221         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
4222         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
4223         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
4224         (rhythmdb_entry_podcast_feed_get_type),
4225         (rhythmdb_entry_import_error_get_type),
4226         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
4227         * rhythmdb/rhythmdb.h:
4228         Allocate a specified amount of extra memory for each db entry, to be
4229         used to store fields specific to the entry type.  Optionally associate
4230         a name with each entry type, to be used when saving entries and
4231         auto playlists to disk.  Allow entry types to have multiple names
4232         to handle older playlist files that used '0' to represent 'song'.
4233         Use private data to store podcast fields.
4235         * rhythmdb/rhythmdb-private.h:
4236         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4237         (rhythmdb_tree_parser_end_element), (save_entry),
4238         (rhythmdb_tree_entry_set):
4239         Simplify property handling by using existing code to convert
4240         properties from strings to GValues and to set properties on entries.
4241         Other assorted changes due to the above.
4243         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4244         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
4245         * sources/rb-generic-player-source.c:
4246         (rb_generic_player_source_new):
4247         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4248         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
4249         * sources/rb-psp-source.c: (rb_psp_source_new):
4250         Update for changes to rhythmdb_entry_register_type.  None of these
4251         entry types need names or use private data.
4253         Fixes #337429.
4255 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4257         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
4258         Fix creation of ignored-file db entries - need to check for
4259         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
4261 2006-05-25  James Livingston  <doclivingston@gmail.com>
4263         * AUTHORS:
4264         * MAINTAINERS: update my email address
4266 2006-05-25  James Livingston  <doclivingston@gmail.com>
4268         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
4269         "(... mix)" when searching for lyrics. Cache the lyrics under
4270         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
4272 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4274         * sources/rb-import-errors-source.c:
4275         (rb_import_errors_source_class_init):
4276         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
4277         * sources/rb-browser-source.c: (rb_browser_source_class_init):
4278         * sources/rb-source.c: (rb_source_class_init),
4279         (default_move_to_trash):
4280         Implement the basic move-to-trash operation once in rb-source.c, 
4281         rather than in each source type that supports it.
4283         * plugins/ipod/rb-ipod-plugin.c:
4284         * shell/rb-removable-media-manager.c:
4285         * shell/rb-shell.c: (rb_shell_constructor):
4286         Only scan removable media once after loading plugins.  Add a flag
4287         plugins can use to check if the initial scan has been done.
4289         * data/rhythmbox.schemas:
4290         Enable ipod and generic-player plugins by default.
4291         
4292         * configure.ac:
4293         * data/ui/Makefile.am:
4294         * data/ui/generic-player-ui.xml:
4295         * data/ui/rhythmbox-ui.xml:
4296         * plugins/Makefile.am:
4297         * plugins/generic-player/Makefile.am:
4298         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
4299         * plugins/generic-player/rb-generic-player-plugin.c:
4300         * sources/Makefile.am:
4301         * sources/rb-generic-player-source.c:
4302         * sources/rb-generic-player-source.h:
4303         * sources/rb-nokia770-source.c:
4304         * sources/rb-nokia770-source.h:
4305         * sources/rb-psp-source.c: (visit_playlist_dirs):
4306         * sources/rb-psp-source.h:
4307         Pluginise generic player (and nokia770 and PSP) support and add
4308         move-to-trash for players not mounted read-only.
4309         Fixes #342868.
4311 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4313         * daapsharing/rb-daap-connection.c (handle_song_listing):
4314         Lower bound check for batch commit.  Fixes #342848
4316         * sources/rb-daap-source.c (rb_daap_source_get_status):
4317         Always set output variables if provided.
4319 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4321         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
4322         (rhythmdb_tree_entry_delete), (remove_one_song):
4323         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
4324         Fix two db entry reference counting problems.
4325         The initial reference on the entry is held by the db backend, but it
4326         was never being dropped.  The reference count was incremented when
4327         adding an entry to the deleted_entries map and to the
4328         deleted_entries_to_emit list, but only decremented for one of those.
4330 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4332         * daapsharing/rb-daap-connection.c (http_response_handler) 
4333         (rb_daap_connection_dispose):
4334         Call soup_session_abort to make sure there are no outstanding
4335         requests when we dispose of the connection.  Ignore cancelled
4336         messages in the callback.
4338 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4340         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
4341         (rb_daap_source_disconnect): Set a flag when disconnecting
4342         the source.  Check this flag in connection callback
4343         to see if we should release the connection.
4345 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4347         * daapsharing/Makefile.am:
4348         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
4349         (rb_daap_connection_class_init), (connection_connected),
4350         (connection_disconnected), (connection_operation_done),
4351         (build_message), (connection_set_error_message),
4352         (actual_http_response_handler), (http_get),
4353         (entry_set_string_prop), (emit_progress_idle),
4354         (handle_server_info), (handle_login), (handle_update),
4355         (handle_database_info), (handle_song_listing), (handle_playlists),
4356         (handle_playlist_entries), (handle_logout),
4357         (rb_daap_connection_new), (rb_daap_connection_is_connected),
4358         (connection_response_data_free), (connected_cb),
4359         (rb_daap_connection_connect), (disconnected_cb),
4360         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
4361         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
4362         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
4363         (rb_daap_connection_get_property):
4364         * daapsharing/rb-daap-connection.h:
4365         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
4366         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
4367         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
4368         (rb_daap_hash_generate):
4369         * daapsharing/rb-daap-hash.h:
4370         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4371         (rb_daap_get_icon), (remove_source), (stop_browsing),
4372         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
4373         (connection_connecting_cb), (connection_disconnected_cb),
4374         (release_connection), (rb_daap_source_connection_cb),
4375         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
4376         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
4378         Adds a better async API for connect and disconnect.  Doesn't share
4379         callback data for every async call.  Adds a connect signal.  Uses
4380         an operation-done signal to trigger the callbacks.  Displays an
4381         error when connections fail.  A few refcounting fixes to fix
4382         crashes.  Uses a weak pointer to set the connection to NULL so we
4383         don't clobber references.  Wait for each disconnect when shutting
4384         down sources.  Split out DAAP hash stuff into its own file.  Fix
4385         typo in header.
4387         Fixes #342643
4388         
4389 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4391         * sources/rb-auto-playlist-source.c:
4392         (rb_auto_playlist_source_new_from_xml):
4393         Initialize the gvalue used to hold the size limit correctly.
4394         Fixes #342744.
4396 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4398         * shell/rb-shell.c: (rb_shell_window_delete_cb),
4399         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
4400         * shell/rb-shell.h:
4401         * shell/rb-shell.xml:
4402         Convert rb_shell_quit into a dbus method, and add visibility dbus
4403         property.
4405 2006-05-22  James Livingston  <doclivingston@gmail.com>
4407         * rhythmdb/rhythmdb.h:
4408         * rhythmdb/rhythmdb.c: (sync_entry_changed),
4409         (rhythmdb_entry_is_editable), (action_thread_main),
4410         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
4411         vfuncs for can_sync_metadata, and sync_metadata. The default is always
4412         false, and syncing into the file.
4414         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
4415         (rhythmdb_entry_iradio_get_type),
4416         (rhythmdb_entry_import_error_get_type):
4417         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
4418         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
4419         change the DB.
4421 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4423         * rhythmdb/Makefile.am:
4424         * rhythmdb/rhythmdb-monitor.c:
4425         * rhythmdb/rhythmdb-private.h:
4426         * rhythmdb/rhythmdb-query.c:
4427         * rhythmdb/rhythmdb.c:
4428         Split up rhythmdb.c a bit.
4430 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4432         * data/glade/audioscrobbler-prefs.glade:
4433         Add a link to the last.fm server status page.
4435 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4437         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
4438         Capitalization fix.
4439         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
4440         (impl_create_configure_dialog):  UI layout fixes, remove
4441         dialog separator, and capitalization fix for window title.
4442         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
4443         and remove dialog separator.
4444         * data/glade/plugins.glade:  UI layout fixes.
4445         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
4446         and capitalization fix.  Fixes #342438.
4448 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4450         * data/glade/podcast-properties.glade:  Fix layout of the download 
4451         location.  Fixes #342431.
4453 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4455         * data/ui/rhythmbox-ui.xml:
4456         We only need one copy of the 'add to queue' action in the edit menu.
4458 2006-05-20  James Livingston  <doclivingston@gmail.com>
4460         * data/ui/rhythmbox-ui.xml:
4461         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
4462         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
4463         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
4464         (rb_shell_clipboard_sync),
4465         (rb_shell_clipboard_cmd_add_to_playlist_new),
4466         (rb_shell_clipboard_cmd_queue_song_info),
4467         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
4468         (rb_shell_clipboard_playlist_deleted_cb),
4469         (rb_shell_clipboard_playlist_renamed_cb),
4470         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
4471         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
4472         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
4473         dynamically generated with all the static playlists. Fixes bug 323364.
4475         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
4476         right child, so it doesn't go weird when art appears and disappears.
4478 2006-05-20  James Livingston  <doclivingston@gmail.com>
4480         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
4482         * rhythmdb/rhythmdb-query-model.c:
4483         (rhythmdb_query_model_set_property),
4484         (rhythmdb_query_model_finalize),
4485         (rhythmdb_query_model_reapply_query_cb):
4486         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
4487         (rhythmdb_query_append_prop_multiple),
4488         (rhythmdb_query_is_time_relative):
4489         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
4490         time-based criteria, fixes bug 341131.
4492 2006-05-20  James Livingston  <doclivingston@gmail.com>
4494         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
4495         we have already changed playing entries. Interpolate the art size so
4496         it doesn't jump when the old and new images have different aspect
4497         ratios.
4499 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4501         * rhythmdb/rhythmdb-private.h:
4502         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4503         (save_entry):
4504         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
4505         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
4506         (rhythmdb_entry_get_ulong):
4507         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
4508         and elsewhere, use them on the stack rather than allocating on 
4509         the heap.  From bug #342333.
4511 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4513         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
4514         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
4515         (add_track), (eos_cb), (error_signal_idle),
4516         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
4517         (rb_recorder_construct), (recorder_track_free),
4518         (rb_recorder_finalize):
4519         * sources/rb-playlist-source-recorder.c:
4520         Support libnautilus-burn size -> capacity API change.  Add
4521         some braces to blocks.
4523 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4525         * metadata/sj-metadata-musicbrainz.c:
4526         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
4527         Sync with sound-juicer in CVS.  Fixes #342177
4528         * sources/rb-audiocd-source.c: Don't declare variables
4529         in the middle of a block (c99ism).  Fix order of #includes.
4530         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
4531         one variable per line.  Update copyright date.
4533 2006-05-19  James Livingston  <doclivingston@gmail.com>
4535         patch by: Hendrik Richter  <hendi@gnome-de.org>
4537         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
4538         "translator_credits" to a hyphen, so it doesn't cause problems for
4539         tools that check access keys. Fixes bug 341832.
4541 2006-05-19  James Livingston  <doclivingston@gmail.com>
4543         * po/POTFILES.in: remove references to files that don't exist any more
4544         (fixes make distcheck).
4546 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
4548         * plugins/lyrics/lyrics.py:  Fix layout close button in 
4549         Song Lyrics dialog. Fixes bug 342322.
4551 2006-05-19  James Livingston  <doclivingston@gmail.com>
4553         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
4555         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
4556         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
4557         version checks not break when libnotify goes to 1.0.0. Fixes bug
4558         342244.
4560 2006-05-18  James Livingston  <doclivingston@gmail.com>
4562         * shell/rb-shell-clipboard.c:
4563         * shell/rb-shell.c:
4564         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
4566 2006-05-17  William Jon McCann  <mccann@jhu.edu>
4568         * sources/rb-playlist-source-recorder.c (get_song_description):
4569         Reverse artist and title in song description.  This
4570         is useful because at least the title will be visible
4571         when there is limited space.
4573 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4575         * daapsharing/rb-daap-connection.c: (connection_get_password):
4576         Take gdk lock before emitting authenticate signal.
4577         * sources/rb-daap-source.c: (connection_connecting_cb):
4578         Get rid of the unnecessary idle handler (it's already called from one)
4579         Fixes #342047 once more.
4581 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4583         * shell/rb-shell.c: (rb_shell_class_init):
4584         * shell/rb-shell.h:
4585         * widgets/rb-song-info.c: (rb_song_info_class_init),
4586         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
4587         (rb_song_info_constructor), (rb_song_info_get_property),
4588         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
4589         (rb_song_info_forward_clicked_cb):
4590         * widgets/rb-song-info.h:
4591         * data/glade/song-info-multiple.glade:
4592         * lib/rb-marshal.list:
4593         * bindings/python/Makefile.am:
4594         * bindings/python/rb.defs:
4595         * bindings/python/rb.override:
4596         Allow plugins to add pages to the notebooks used in song info windows,
4597         and to track the current song displayed in single-entry windows.
4598         
4599         * configure.ac:
4600         * plugins/Makefile.am:
4601         * plugins/lyrics/Loader.py:
4602         * plugins/lyrics/Makefile.am:
4603         * plugins/lyrics/lyrics.py:
4604         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
4605         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
4606         as a separate window (for the playing song) or as a page in the song
4607         info window.  A few TODO items left, but this fixes #319320.
4609 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4611         Patch by:  Roozbeh Pournader
4613         * configure.ac:
4614         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
4615         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
4617 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4618         
4619         * sources/rb-daap-source.c: (update_connection_status):
4620         Correct return value.  Fixes #342047 again.
4622 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4624         * sources/rb-daap-source.c: (update_connection_status),
4625         (connection_connecting_cb):
4626         Update status in an idle handler so we don't rely on the gdk lock
4627         being recursive (because it isn't any more).  Fixes #342047.
4629 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4631         * lib/rb-util.c: (rb_make_duration_string),
4632         (rb_make_elapsed_time_string):
4633         * lib/rb-util.h:
4634         Add a function for formatting an elapsed time string.
4636         * shell/rb-shell-player.c: (rb_shell_player_init),
4637         (rb_shell_player_sync_with_source),
4638         (rb_shell_player_get_playing_time_string), (tick_cb):
4639         Store elapsed time in the private data structure, and use the above
4640         function.
4641         
4642         * widgets/rb-header.c:
4643         * widgets/rb-header.h:
4644         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
4645         object, so everything has the same idea of the elapsed time.
4646         Fixes #339693.
4648 2006-05-16  James Livingston  <doclivingston@gmail.com>
4650         * bindings/python/rhythmdb.defs:
4651         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
4652         some parametre defaults, so you don't have to pass None, False for the
4653         sorting order.
4655 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4657         * bindings/python/rhythmdb.defs:
4658         * rhythmdb/rhythmdb-query-model.c:
4659         (rhythmdb_query_model_compute_status_normal):
4660         * rhythmdb/rhythmdb-query-model.h:
4661         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
4662         * rhythmdb/rhythmdb.h:
4663         Change the various compute_status methods to accept a singular/plural
4664         pair to use in the status string.
4665         
4666         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4667         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
4668         * sources/rb-source.c: (default_get_status):
4669         Call entries 'songs' by default, and 'episodes' in the podcast source.
4670         Fixes #340227.
4672 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4674         patch by:  Paul Drain
4676         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
4677         Fixes #341817.
4679 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4681         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
4682         Generate reorder maps correctly.
4683         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
4684         Scroll to the first entry from the old selection.
4685         Fixes #322992.
4687 2006-05-15  William Jon McCann  <mccann@jhu.edu>
4689         * data/ui/rhythmbox-ui.xml:
4690         * lib/rb-preferences.h:
4691         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4692         (rb_shell_playlist_created_cb),
4693         (rb_shell_view_sidepane_changed_cb),
4694         (rb_shell_sync_sidepane_visibility),
4695         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
4696         (sidepane_visibility_changed_cb):
4697         * sources/rb-podcast-source.c:
4698         Convert sourcelist visibility to side-pane visbility.
4699         Fixes #339733
4701 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4703         * widgets/rb-header.c:
4704         * widgets/rb-header.h: Stop RBHeader from referring to itself as
4705         'player', and make it use the private data structure allocated for it.
4707 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4709         * configure.ac: enable metadata helper with dbus < 0.35.
4711 2006-05-15  James Livingston  <doclivingston@gmail.com>
4713         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4715         * data/glade/song-info.glade:
4716         * widgets/rb-song-info.c: (rb_song_info_construct_single),
4717         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
4718         (rb_song_info_update_filesize): Add the file size into the song info
4719         window. Fixes bug 340861.
4721 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4723         * bindings/python/rhythmdb.defs:
4724         * rhythmdb/rhythmdb-query-model.c:
4725         (rhythmdb_query_model_set_property),
4726         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
4727         * rhythmdb/rhythmdb-query-model.h:
4728         Add a new method to chain query models without importing entries from
4729         the parent into the child.  This is useful when the subset of entries
4730         in the child can be more easily determined by running a query than by
4731         filtering entries from the parent.
4733         * bindings/python/rb.defs:
4734         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4735         (rb_library_browser_set_property),
4736         (rb_library_browser_get_property), (rb_library_browser_new),
4737         (rebuild_child_model):
4738         * widgets/rb-library-browser.h:
4739         * sources/rb-auto-playlist-source.c:
4740         (rb_auto_playlist_source_constructor):
4741         * sources/rb-static-playlist-source.c:
4742         (rb_static_playlist_source_constructor):
4743         * sources/rb-browser-source.c: (rb_browser_source_constructor):
4744         Use more efficient queries for constructing the browser query model
4745         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
4746         backend to optimise the query) and run new queries rather than
4747         filtering entries from the parent.  Fixes #341402.
4749         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
4751 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4753         * configure.ac:
4754         * shell/Makefile.am:
4755         * shell/main.c: (main), (load_uri_args), (send_present_message),
4756         (unregister_dbus_handler), (handle_dbus_message),
4757         (register_dbus_handler):
4758         Add minimal support for dbus 0.31 - 0.35.
4760         * doc/reference/Makefile.am:
4761         * doc/reference/rhythmbox.types:
4762         * data/Makefile.am:
4763         * data/GNOME_Rhythmbox.server.in:
4764         * data/rhythmbox.pc.in:
4765         * remote/*:
4766         * remote/bonobo/*:
4767         Remove remaining bonobo and generic remote interface files.
4769 2006-05-14  James Livingston  <doclivingston@gmail.com>
4771         * shell/rb-shell.c: (construct_widgets):
4772         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
4773         resize the browser and queue-sidebar section of their panes, unless
4774         the other section is below the minimum size. Fixes bug 331927.
4776 2006-05-13  James Livingston  <doclivingston@gmail.com>
4778         * rhythmdb/rhythmdb-query-model.c:
4779         (rhythmdb_query_model_class_init),
4780         (rhythmdb_query_model_set_property),
4781         (rhythmdb_query_model_get_property),
4782         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
4783         (rhythmdb_query_model_insert_into_main_list),
4784         (rhythmdb_query_model_insert_into_limited_list),
4785         (rhythmdb_query_model_do_reorder),
4786         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
4787         (rhythmdb_query_model_location_sort_func),
4788         (rhythmdb_query_model_title_sort_func),
4789         (rhythmdb_query_model_album_sort_func),
4790         (rhythmdb_query_model_artist_sort_func),
4791         (rhythmdb_query_model_genre_sort_func),
4792         (rhythmdb_query_model_track_sort_func),
4793         (rhythmdb_query_model_double_ceiling_sort_func),
4794         (rhythmdb_query_model_ulong_sort_func),
4795         (rhythmdb_query_model_date_sort_func),
4796         (rhythmdb_query_model_string_sort_func):
4797         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
4798         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
4799         "data destroy" property. Fixed bug 341543.
4801         * bindings/python/rhythmdb.defs:
4802         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
4803         rhythmdb_query_model_set_sorting_order
4805         * rhythmdb/rhythmdb-property-model.c:
4806         (rhythmdb_property_model_drag_data_get):
4807         * sources/rb-import-errors-source.c:
4808         (rb_import_errors_source_constructor):
4809         * sources/rb-missing-files-source.c:
4810         (rb_missing_files_source_constructor):
4811         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
4812         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
4813         * widgets/rb-entry-view.h: adapt to the above change.
4815 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4817         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4818         (rhythmdb_tree_load):
4819         Commit loaded entries in batches, rather than individually.  
4820         More startup time reduction.
4822 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
4824         * doc/reference/Makefile.am: fix gtk-doc compilation
4826 2006-05-12  William Jon McCann  <mccann@jhu.edu>
4828         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4829         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4830         * plugins/artdisplay/artdisplay/Loader.py:
4831         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
4832         Only call the first artist the best match when album==Unknown.
4833         Don't perform each query twice if album doesn't include "Vol N".
4834         Fix searching for compilations.  Fix blacklisting.
4835         Part of bug #307848
4837 2006-05-12  William Jon McCann  <mccann@jhu.edu>
4839         * Makefile.am:
4840         * bindings/python/Makefile.am:
4841         * bindings/python/rb.defs:
4842         * bindings/python/rb.override:
4843         * configure.ac:
4844         * doc/reference/Makefile.am:
4845         * plugins/Makefile.am:
4846         * plugins/audioscrobbler/Makefile.am:
4847         * plugins/ipod/Makefile.am:
4848         * plugins/lirc/Makefile.am:
4849         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
4850         (impl_activate), (impl_deactivate):
4851         * plugins/sample/Makefile.am:
4852         * remote/Makefile.am:
4853         * shell/Makefile.am:
4854         * shell/main.c: (main), (main_shell_weak_ref_cb):
4855         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
4856         (rb_shell_get_property), (rb_shell_window_state_cb),
4857         (idle_hide_mainwindow), (rb_shell_set_visibility),
4858         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
4859         (rb_shell_set_song_property):
4860         * shell/rb-shell.h:
4861         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
4862         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
4863         (rb_tray_icon_get_property), (rb_tray_icon_new),
4864         (rb_tray_icon_button_press_event_cb),
4865         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
4866         (rb_tray_icon_show_window_changed_cb):
4867         * shell/rb-tray-icon.h:
4869         Remove bonobo, require DBUS.
4870         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
4871         Fixes #339720
4873 2006-05-13  James Livingston  <doclivingston@gmail.com>
4875         * bindings/python/rb.override: fix some pointer-type warnings
4877 2006-05-12  James Livingston  <doclivingston@gmail.com>
4879         * lib/rb-util.c: (rb_value_free):
4880         * lib/rb-util.h: Add function to unset and free a GValue* that was
4881         allocated in the heap.
4883         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
4884         the metadata hastable values
4885         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
4886         leak the metadata hashtable structure
4887         * metadata/rb-metadata-dbus.c:
4888         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
4889         using g_strdup and then _take_string
4891         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
4892         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
4893         stat something.
4895         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
4896         leak the encoded string
4898         * widgets/rb-property-view.c:
4899         (rb_property_view_selection_changed_cb): set some variables to have
4900         inital values, because some code paths may not set them before we use
4901         them.
4903         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
4904         don't have python warning into a debug message".
4906 2006-05-10  William Jon McCann  <mccann@jhu.edu>
4908         * data/rhythmbox.schemas: Use zero instead of null for
4909         default burn speed.  Fixes #341283.
4911 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4913         * bindings/python/rb.defs:
4914         * widgets/rb-library-browser.c:
4915         (rb_library_browser_get_property_view):
4916         * widgets/rb-library-browser.h:
4917         Add a method to get the property view for a given property.
4919         * sources/rb-browser-source.c:
4920         (rb_browser_source_cmd_choose_genre),
4921         (rb_browser_source_cmd_choose_artist),
4922         (rb_browser_source_cmd_choose_album):
4923         Change the browser selection by changing the property view selection. 
4924         Makes the selection change visible, fixing #331740.
4926 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4928         * bindings/python/rb.defs:
4929         * bindings/python/rb.override:
4930         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
4931         * shell/rb-statusbar.c: (*),
4932         * sources/rb-import-errors-source.c: (impl_get_status):
4933         * sources/rb-iradio-source.c: (impl_get_status):
4934         * sources/rb-missing-files-source.c: (impl_get_status):
4935         * sources/rb-source.c: (default_get_status),
4936         (rb_source_get_status):
4937         * sources/rb-source.h:
4938         Allow sources to provide a progress value for the status bar.
4939         Simplify status bar processing (much less polling).
4940         Consider rhythmdb busy while it's still loading the database.
4942         * daapsharing/rb-daap-connection.c: (*)
4943         * daapsharing/rb-daap-connection.h:
4944         * lib/rb-marshal.list:
4945         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4946         (rb_daap_source_init), (connection_connecting_cb),
4947         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
4948         (rb_daap_source_get_status):
4949         Provide status information for DAAP connections, and move processing
4950         of large responses into a separate thread.
4951         Fixes bugs #322020 and #338978.
4953 2006-05-09  James Livingston  <doclivingston@gmail.com>
4955         Split the artdisplay plugin into several files.
4956         Fix loader and amazon-search re-use issues.
4957         Add some better search heuristics.
4959         * configure.ac:
4960         * plugins/artdisplay/Makefile.am:
4961         * plugins/artdisplay/artdisplay.py:
4962         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4963         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4964         * plugins/artdisplay/artdisplay/Loader.py:
4965         * plugins/artdisplay/artdisplay/Makefile.am:
4966         * plugins/artdisplay/artdisplay/__init__.py:
4968 2006-05-09  James Livingston  <doclivingston@gmail.com>
4970         * sources/rb-browser-source.h: remove the _has_first_added_column
4971         stuff since it isn't actually used anywhere. Sources that want it
4972         should just add it themselves, as the library already does
4974         * bindings/python/rb.defs:
4975         * sources/rb-daap-source.c: (rb_daap_source_class_init):
4976         * sources/rb-library-source.c: (rb_library_source_class_init):
4977         * sources/rb-removable-media-source.c:
4978         (rb_removable_media_source_class_init): Remove the remanants of the
4979         above.
4981 2006-05-09  James Livingston  <doclivingston@gmail.com>
4983         * bindings/python/rb.defs:
4984         * sources/rb-browser-source.h: remove a function that was declared in
4985         the header, but not defined anywhere.
4987 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4989         * plugins/artdisplay/.cvsignore:
4990         * plugins/ipod/.cvsignore: Added.
4992 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4994         * sources/rb-auto-playlist-source.c:
4995         (rb_auto_playlist_source_new_from_xml):
4996         Fix reading of older playlist files where all three limits were
4997         specified so we take the first nonzero limit.  From #341053.
4999 2006-05-09  James Livingston  <doclivingston@gmail.com>
5001         * bindings/python/Makefile.am:
5002         * bindings/python/rb.defs:
5003         * bindings/python/rb.override: bind RBBrowserSource,
5004         RBRemovableMediaSource and RBRemovableMediamanager.
5006 2006-05-09  James Livingston  <doclivingston@gmail.com>
5008         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5010         * data/glade/plugins.glade: make the plugin dialog look a bit better.
5011         Fixes bug 339221.
5013 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5015         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5016         Don't explode when trying to edit a query with no limit set.
5018 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5020         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5021         Clear the should_queue flag when switching to a non-submittable entry,
5022         so we don't submit songs that played for three seconds before
5023         switching to a podcast episode.
5025         * rhythmdb/rhythmdb-query-model.c
5026         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
5027         in the drag data list.
5029 2006-05-08  James Livingston  <doclivingston@gmail.com>
5031         * lib/rb-util.c: (rb_value_array_append_data):
5032         * lib/rb-util.h: add function which is basically a combination of
5033         G_VALUE_COLLECT and g_value_array_append.
5035         * rhythmdb/rhythmdb-query-model.h:
5036         * rhythmdb/rhythmdb-query-model.c:
5037         (rhythmdb_query_model_class_init),
5038         (rhythmdb_query_model_set_property),
5039         (rhythmdb_query_model_get_property),
5040         (rhythmdb_query_model_finalize),
5041         (rhythmdb_query_model_update_limited_entries),
5042         (rhythmdb_query_model_set_sort_order),
5043         (rhythmdb_query_model_within_limit),
5044         (rhythmdb_query_model_limit_type_get_type): Make query model limits
5045         saner. Rather than having <count=N, time=N, size=N> we now have a
5046         <type, value> pair. This will also make it much easier to add new
5047         limit types in the future.
5049         * shell/rb-playlist-manager.c:
5050         (rb_playlist_manager_set_automatic_playlist),
5051         (rb_playlist_manager_cmd_edit_automatic_playlist):
5052         * sources/rb-auto-playlist-source.c:
5053         (rb_auto_playlist_source_finalize),
5054         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
5055         (_save_write_ulong), (_save_write_uint64),
5056         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
5057         (rb_auto_playlist_source_set_query),
5058         (rb_auto_playlist_source_get_query):
5059         * sources/rb-auto-playlist-source.h:
5060         * sources/rb-library-source.c:
5061         (rb_library_source_add_child_source):
5062         * sources/rb-psp-source.c: (visit_playlist_dirs):
5063         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
5064         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
5065         * widgets/rb-query-creator.h: Adapt to the above change.
5067 2006-05-08  James Livingston  <doclivingston@gmail.com>
5069         * shell/rb-playlist-manager.c:
5070         (rb_playlist_manager_cmd_edit_automatic_playlist):
5071         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
5072         (rb_auto_playlist_source_set_query),
5073         (rb_auto_playlist_source_get_query): copy the query in the _get method
5074         and free it in things calling that. Fixes a crasher.
5076 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5078         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5079         Make entries on newly mounted volumes visible immediately, hiding them
5080         later if they turn out to be missing.  Fixes #340068.
5082 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5084         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
5085         Ignore zip files and ignore errors for files we've decided to ignore.
5087 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5089         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
5090         Add missing }, should fix #340844.
5092 2006-05-06  James Livingston  <doclivingston@gmail.com>
5094         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
5095         typo.
5097 2006-05-06  James Livingston  <doclivingston@gmail.com>
5099         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
5100         that we work with libnotify >= 0.4
5102 2006-05-06  James Livingston  <doclivingston@gmail.com>
5104         patch by: Joe Barnett  <thejoe@gmail.com>
5106         * configure.ac: check if we're using a version of libgpod that
5107         supports the Motorola ROKR
5109         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
5110         for the db path, if we using the newer version.
5112         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
5114 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5116         * rhythmdb/rhythmdb-query-model.c:
5117         (rhythmdb_query_model_drag_data_get):
5118         Use playback URI, not location, for drag data.  Fixes #322597.
5120 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
5122         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
5124 2006-05-03  James Livingston  <doclivingston@gmail.com>
5126         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
5127         (rb_add_id3_tagger), (rb_metadata_save):
5128         Set the tags on the tagging element when it is
5129         created, not during pipeline creation - which is required for
5130         dynamically created elements.
5132         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
5133         support for using the "vorbistag" element to re-tag ogg vorbis files.
5134         Fixes bug 339878.
5136 2006-05-03  James Livingston  <doclivingston@gmail.com>
5138         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
5140         * plugins/artdisplay/artdisplay.py:
5141         - Fix small bug callback of data loader getting overwritten on fast
5142         connections.
5143         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
5144         Jonathan Matthew)
5145         - Fix Rhythmbox UI blocking while loading/searching cover art
5146         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
5147         - Initial approach to allow additional "art search engines"
5148         - Further modularization in a couple of places
5149         - Minor fixes for empty entries (iradio, album, artist etc.)
5151 2006-05-03  James Livingston  <doclivingston@gmail.com>
5153         * shell/rb-playlist-manager.c:
5154         (rb_playlist_manager_playlist_entries_changed),
5155         (rb_playlist_manager_set_source): don't show the edit/delete/rename
5156         options for non-local sources, rather than showing disabled ones.
5158         * sources/rb-library-source.c: (add_child_sources_idle),
5159         (rb_library_source_constructor), (rb_library_source_new),
5160         (rb_library_source_library_location_changed),
5161         (rb_library_source_add_child_source),
5162         (rb_library_source_sync_child_sources): Create "child library" sources
5163         when the user has multiple library locations set. Fixes bug 100552.
5165 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5167         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
5168         * plugins/sample/sample.rb-plugin.desktop.in:
5169         Finish changing 'Author' to 'Authors'
5170         
5171         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
5172         (rhythmdb_entry_import_error_get_type):
5173         Implement get_playback_uri for import errors (returns NULL)
5175         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
5176         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
5177         entry, rather than doing entry type checks.
5179 2006-05-02  James Livingston  <doclivingston@gmail.com>
5181         patch from Alessandro Decina  <alessandro@nnva.org>
5183         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
5184         the signal emission in the case of fatal-on-init errors. From bug
5185         322268.
5187 2006-05-02  James Livingston  <doclivingston@gmail.com>
5189         * rhythmdb/rhythmdb.h:
5190         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
5191         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
5192         (rhythmdb_entry_podcast_post_get_type),
5193         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
5194         virtual function to entry-types for getting the playback URI. From bug
5195         330226.
5197         * backends/gstreamer/rb-encoder-gst.c:
5198         (create_pipeline_and_source), (extract_track):
5199         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
5200         to get the URI.
5202 2006-05-02  James Livingston  <doclivingston@gmail.com>
5204         patch by: Brian Cameron  <brian.cameron@sun.com>
5206         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
5207         340337.
5209 2006-05-01  William Jon McCann  <mccann@jhu.edu>
5211         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
5212         instead of clear.  Use regex matching to strip "disc N"
5213         from album.  Match titles in ProductName.  Perform
5214         fallback queries including various artist compilations.
5215         Include "us" locale.  Improve queries when artist or album
5216         is unknown.  Use medium size image if large is unavailable.
5218         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
5219         William Jon McCann  <mccann@jhu.edu>
5220         
5221 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5223         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
5224         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
5225         (conjunctive_query): Sanity check.
5226         (evaluate_conjunctive_subquery): 
5227         Don't return TRUE immediately when a relative-time query criterion
5228         matches.  Fixes #339972.
5230 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5232         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5233         Don't crash if primary or secondary are NULL.
5235 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5237         * doc/reference/Makefile.am: fix gtk-doc build yet again
5239 2006-04-28  James Livingston  <doclivingston@gmail.com>
5241         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
5242         python console. Fixes bug 339934.
5244 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5246         * rhythmdb/rhythmdb-property-model.c:
5247         (rhythmdb_property_model_drag_data_get):
5248         When creating uri list drag data, create a new query model based on
5249         the query model the property model is attached to.  Makes the
5250         resulting query use the right entry type and include the upstream
5251         query criteria.  Fixes half of #327540.
5253 2006-04-27  James Livingston  <doclivingston@gmail.com>
5255         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
5256         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
5257         build fixes.
5259 2006-04-27  James Livingston  <doclivingston@gmail.com>
5261         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
5263 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5265         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
5266         (rb_playlist_manager_save_data),
5267         (rb_playlist_manager_save_playlists):
5268         * shell/rb-playlist-manager.h:
5269         * shell/rb-shell.c: (rb_shell_sync_state),
5270         (idle_save_playlist_manager):
5271         Remove a bit more threading insanity from the playlist manager.
5273 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5275         * shell/rb-playlist-manager.c: 
5276         * shell/rb-playlist-manager.h:
5277         Remove dead code, add gtk-doc, remove threading insanity (mostly).
5278         
5279         * shell/rb-shell.c: (rb_shell_sync_state),
5280         (idle_save_playlist_manager), (construct_sources),
5281         (rb_shell_select_source), (rb_shell_sync_party_mode):
5282         Adjustments for above changes.
5284 2006-04-26  William Jon McCann  <mccann@jhu.edu>
5286         * sources/rb-browser-source.c (impl_browser_toggled):
5287         Reset browser when hidden.  Fixes #339617.
5289 2006-04-26  James Livingston  <doclivingston@gmail.com>
5291         * backends/Makefile.am:
5292         * backends/gstreamer/Makefile.am: work again with separated
5293         built-roots
5295 2006-04-26  James Livingston  <doclivingston@gmail.com>
5297         * shell/rb-removable-media-manager.c:
5298         (rb_removable_media_manager_set_uimanager): fix compilation with
5299         -Werror and --enable-track-transfer.
5301 2006-04-26  James Livingston  <doclivingston@gmail.com>
5303         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
5304         implementing class. In theory allows alternate player implementations
5305         to be selected at run-time rather than compile-time. Fixes bug 338667.
5307         * Makefile.am:
5308         * backends/Makefile.am:
5309         * backends/gstreamer/Makefile.am:
5310         * backends/gstreamer/rb-player-gst.h:
5311         * backends/rb-player.c: (rb_player_interface_init),
5312         (rb_player_get_type), (rb_player_open), (rb_player_opened),
5313         (rb_player_close), (rb_player_play), (rb_player_pause),
5314         (rb_player_playing), (rb_player_set_volume),
5315         (rb_player_get_volume), (rb_player_set_replaygain),
5316         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
5317         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
5318         (_rb_player_emit_buffering), (_rb_player_emit_error),
5319         (_rb_player_emit_tick), (rb_player_error_quark):
5320         * player/Makefile.am:
5321         * player/rb-player-gst.c: (rb_player_gst_class_init),
5322         (rb_player_init), (tick_timeout), (rb_player_gst_init),
5323         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
5324         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
5325         (process_tag), (found_tag_cb), (buffering_cb),
5326         (rb_player_gst_bus_cb), (rb_player_gst_construct),
5327         (rb_player_gst_new):
5328         * player/rb-player.h:
5329         * shell/Makefile.am:
5330         * sources/rb-audiocd-source.c:
5331         * widgets/Makefile.am:
5332         * widgets/rb-header.c: (rb_header_class_init):
5334 2006-04-26  James Livingston  <doclivingston@gmail.com>
5336         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
5337         don't try to download an episode if it couldn't be parsed. Fixes bug
5338         339712.
5340         * shell/rb-removable-media-manager.c:
5341         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
5342         Library" option when track transfer is disabled. Fixes bug 339728.
5344 2006-04-26  James Livingston  <doclivingston@gmail.com>
5346         * data/ui/Makefile.am:
5347         * data/ui/daap-ui.xml:
5348         * data/ui/rhythmbox-ui.xml:
5349         * sources/rb-daap-source.c: (rb_daap_sources_init),
5350         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
5351         way that the ipod ui is. Fixes bug 339743.
5353 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5355         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
5356         (process_added_entries_cb), (process_deleted_entries_cb),
5357         (rhythmdb_commit_internal): 
5358         Combine the idle functions to emit entry-added and entry-deleted,
5359         and combine as many invocations of same as possible.  Another
5360         significant reduction in startup time.
5361         
5362         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
5363         Delay the next call to rhythmdb_process_events if the queue is
5364         empty or if we can't process any of the events in the queue because
5365         the database is read only.
5367         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
5369 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5371         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
5373         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
5374         Don't special case errors quite so much.
5376 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5378         * data/rhythmbox.schemas: Remove default speed.
5380         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
5381         Add n-c-b 2.15 support.  Make the default speed to slowest since
5382         that is all that works reliably.
5384 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5386         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
5387         Fix compiler error from last commit.
5389 2006-04-25  James Livingston  <doclivingston@gmail.com>
5391         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
5392         transcoding-related issues. From bug 322268.
5394         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
5395         don't emit the signal, since the object is being finalised, which os a
5396         Bad Thing To Do.
5398         (profile_bin_find_encoder), (get_profile_from_mime_type),
5399         (transcode_track): find the encoding element by iterating looking for
5400         element in the class Codec/Encoder/Audio rather than the one named
5401         "enc".
5403 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5405         * shell/rb-shell-player.xml:
5406         * shell/rb-shell.xml:
5407         Add signal argument information.  
5408         Patch by Tim Moloney  <t.moloney@verizon.net>
5410         * shell/rb-shell.c: (rb_shell_window_state_cb):
5411         Use the right value for the visibility_changed signal.  Most of the
5412         time, anyway.
5414 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5416         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5417         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5418         (impl_create_configure_dialog):
5419         * data/glade/audioscrobbler-prefs.glade:
5420         * shell/rb-audioscrobbler.c (*):
5421         * lib/rb-preferences.h:
5422         * data/rhythmbox.schemas:
5423         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
5424         Add status information (# tracks submitted, # queued, last submit
5425         time, result of last submission) to the plugin config window.
5426         Remove 'enabled' setting, since it's easier to just disable the
5427         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
5428         nonexistant (so far) 'last.fm streaming' plugin.
5429         
5430         * help/C/rhythmbox.xml: Update documentation for last.fm profile
5431         plugin
5433         Fixes some of #325848.  We still don't provide a way to view the
5434         submission queue.
5436 2006-04-25  James Livingston  <doclivingston@gmail.com>
5438         patch by: Anders Petersson  <demitar@worldforge.org>
5440         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
5441         the YY-MM-DD format.
5443 2006-04-23  James Livingston  <doclivingston@gmail.com>
5445         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
5446         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
5447         * bindings/python/override_common.h:
5448         * bindings/python/rb.override: python binding fixes
5450 2006-04-23  James Livingston  <doclivingston@gmail.com>
5452         * shell/rb-statusbar.c: (rb_statusbar_finalize),
5453         (rb_statusbar_sync_with_source),
5454         (rb_statusbar_source_status_changed_cb): do the sync in an idle
5455         callback, rather than immediately every time. Takes ~5% off my warm-cache
5456         startup time.
5458         * bindings/python/rhythmdb.defs: fix the types using for
5459         RhythmDBEntryTypes.
5461 2006-04-22  James Livingston  <doclivingston@gmail.com>
5463         * data/ui/rhythmbox-ui.xml:
5464         * shell/rb-shell.c:
5465         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5466         (remove_source), (rb_daap_sources_init),
5467         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
5468         (rb_daap_source_disconnect):
5469         * sources/rb-source.c: (rb_source_class_init),
5470         (rb_source_deactivate):
5471         * sources/rb-source.h: move the "disconnect" functionality from into
5472         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
5474 2006-04-22  James Livingston  <doclivingston@gmail.com>
5476         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
5477         actually get the translated strings for browser headers (they were
5478         already marked as translatable). Fixes bug 339380.
5480 2006-04-22  James Livingston  <doclivingston@gmail.com>
5482         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
5483         submission timeout when the object is finalised.
5485         * bindings/python/Makefile.am:
5486         * bindings/python/rb.defs:
5487         * bindings/python/rb.override:
5488         * bindings/python/rhythmdb.defs: fix some python binding stuff.
5490         * widgets/rb-library-browser.c:
5491         (rb_library_browser_construct_query), (rebuild_output_model),
5492         (rebuild_child_model):
5493         * widgets/rb-library-browser.h: change from GPtrArray to
5494         RhythmDBQuery (which in C is the same thing).
5496 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5498         * shell/rb-shell.c: (rb_shell_get_song_properties):
5499         Don't try to include entry-type (or anything else not easily
5500         marshallable) in the song properties hash table.
5502         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
5504         * sources/rb-playlist-source.c: (rb_playlist_source_init),
5505         (rb_playlist_source_constructor): Fix entry-type initialization as
5506         with previous commit.
5508 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5510         * sources/rb-iradio-source.c: (rb_iradio_source_init),
5511         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
5512         * sources/rb-podcast-source.c: (rb_podcast_source_init),
5513         (rb_podcast_source_constructor):
5514         Set default values for entry-type after base class construction,
5515         rather than in _init, because gobject will set the entry-type property
5516         to NULL after _init if no value is provided.  Fixes #339206.
5518 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
5520         patch by: Gunnar Steinn Magnusson
5522         * COPYING:
5523         * backends/gstreamer/rb-encoder-gst.c:
5524         * backends/gstreamer/rb-encoder-gst.h:
5525         * backends/rb-encoder.c:
5526         * backends/rb-encoder.h:
5527         * bindings/python/override_common.c:
5528         * bindings/python/override_common.h:
5529         * daapsharing/rb-daap-connection.c:
5530         * daapsharing/rb-daap-connection.h:
5531         * daapsharing/rb-daap-dialog.c:
5532         * daapsharing/rb-daap-dialog.h:
5533         * daapsharing/rb-daap-mdns-browser-avahi.c:
5534         * daapsharing/rb-daap-mdns-browser-howl.c:
5535         * daapsharing/rb-daap-mdns-browser.h:
5536         * daapsharing/rb-daap-mdns-publisher-avahi.c:
5537         * daapsharing/rb-daap-mdns-publisher-howl.c:
5538         * daapsharing/rb-daap-mdns-publisher.h:
5539         * daapsharing/rb-daap-share.c:
5540         * daapsharing/rb-daap-share.h:
5541         * daapsharing/rb-daap-sharing.c:
5542         * daapsharing/rb-daap-sharing.h:
5543         * daapsharing/rb-daap-src.c:
5544         * daapsharing/rb-daap-src.h:
5545         * daapsharing/rb-daap-structure.c:
5546         * daapsharing/rb-daap-structure.h:
5547         * help/C/fdl-appendix.xml:
5548         * help/es/es.po:
5549         * help/ja/fdl-appendix.xml:
5550         * iradio/rb-new-station-dialog.c:
5551         * iradio/rb-new-station-dialog.h:
5552         * iradio/rb-station-properties-dialog.c:
5553         * iradio/rb-station-properties-dialog.h:
5554         * lib/mkdtemp.c:
5555         * lib/mkdtemp.h:
5556         * lib/rb-cut-and-paste-code.c:
5557         * lib/rb-cut-and-paste-code.h:
5558         * lib/rb-debug.c:
5559         * lib/rb-debug.h:
5560         * lib/rb-file-helpers.c:
5561         * lib/rb-file-helpers.h:
5562         * lib/rb-glade-helpers.c:
5563         * lib/rb-glade-helpers.h:
5564         * lib/rb-preferences.h:
5565         * lib/rb-proxy-config.c:
5566         * lib/rb-stock-icons.c:
5567         * lib/rb-stock-icons.h:
5568         * lib/rb-thread.c:
5569         * lib/rb-thread.h:
5570         * lib/rb-tree-dnd.c:
5571         * lib/rb-tree-dnd.h:
5572         * lib/rb-util.c:
5573         * lib/rb-util.h:
5574         * metadata/rb-metadata-common.c:
5575         * metadata/rb-metadata-dbus-client.c:
5576         * metadata/rb-metadata-dbus-service.c:
5577         * metadata/rb-metadata-dbus.c:
5578         * metadata/rb-metadata-dbus.h:
5579         * metadata/rb-metadata-gst.c:
5580         * metadata/rb-metadata.h:
5581         * metadata/sj-error.c:
5582         * metadata/sj-error.h:
5583         * metadata/sj-metadata-musicbrainz.c:
5584         * metadata/sj-metadata-musicbrainz.h:
5585         * metadata/sj-metadata.c:
5586         * metadata/sj-metadata.h:
5587         * metadata/sj-structures.c:
5588         * metadata/sj-structures.h:
5589         * metadata/test-metadata.c:
5590         * player/rb-player-gst.c:
5591         * player/rb-player.h:
5592         * player/rb-recorder-gst.c:
5593         * player/rb-recorder.h:
5594         * plugins/artdisplay/artdisplay.py:
5595         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5596         * plugins/ipod/rb-ipod-plugin.c:
5597         * plugins/lirc/rb-lirc-plugin.c:
5598         * plugins/pythonconsole/pythonconsole.py:
5599         * plugins/rb-module.c:
5600         * plugins/rb-module.h:
5601         * plugins/rb-plugin-manager.c:
5602         * plugins/rb-plugin-manager.h:
5603         * plugins/rb-plugin.c:
5604         * plugins/rb-plugin.h:
5605         * plugins/rb-plugins-engine.c:
5606         * plugins/rb-plugins-engine.h:
5607         * plugins/rb-python-module.c:
5608         * plugins/rb-python-module.h:
5609         * plugins/rb-python-plugin.c:
5610         * plugins/rb-python-plugin.h:
5611         * plugins/sample/rb-sample-plugin.c:
5612         * po/de.po:
5613         * po/el.po:
5614         * po/en_CA.po:
5615         * po/eu.po:
5616         * po/fi.po:
5617         * po/fr.po:
5618         * po/it.po:
5619         * po/ja.po:
5620         * po/mk.po:
5621         * po/pt_BR.po:
5622         * po/ru.po:
5623         * podcast/rb-feed-podcast-properties-dialog.c:
5624         * podcast/rb-feed-podcast-properties-dialog.h:
5625         * podcast/rb-new-podcast-dialog.c:
5626         * podcast/rb-new-podcast-dialog.h:
5627         * podcast/rb-podcast-manager.c:
5628         * podcast/rb-podcast-manager.h:
5629         * podcast/rb-podcast-parse.c:
5630         * podcast/rb-podcast-parse.h:
5631         * podcast/rb-podcast-properties-dialog.c:
5632         * podcast/rb-podcast-properties-dialog.h:
5633         * remote/bonobo/libmain.c:
5634         * remote/bonobo/rb-nautilus-context-menu.c:
5635         * remote/bonobo/rb-nautilus-context-menu.h:
5636         * remote/bonobo/rb-remote-bonobo.c:
5637         * remote/bonobo/rb-remote-bonobo.h:
5638         * remote/rb-remote-client-proxy.c:
5639         * remote/rb-remote-client-proxy.h:
5640         * remote/rb-remote-common.c:
5641         * remote/rb-remote-common.h:
5642         * remote/rb-remote-proxy.c:
5643         * remote/rb-remote-proxy.h:
5644         * rhythmdb/gsequence.c:
5645         * rhythmdb/gsequence.h:
5646         * rhythmdb/rb-refstring.c:
5647         * rhythmdb/rb-refstring.h:
5648         * rhythmdb/rhythmdb-gda.c:
5649         * rhythmdb/rhythmdb-gda.h:
5650         * rhythmdb/rhythmdb-private.h:
5651         * rhythmdb/rhythmdb-property-model.c:
5652         * rhythmdb/rhythmdb-property-model.h:
5653         * rhythmdb/rhythmdb-query-model.c:
5654         * rhythmdb/rhythmdb-query-model.h:
5655         * rhythmdb/rhythmdb-query-results.c:
5656         * rhythmdb/rhythmdb-query-results.h:
5657         * rhythmdb/rhythmdb-tree.c:
5658         * rhythmdb/rhythmdb-tree.h:
5659         * rhythmdb/rhythmdb.c:
5660         * rhythmdb/rhythmdb.h:
5661         * shell/main.c:
5662         * shell/rb-audioscrobbler.c:
5663         * shell/rb-audioscrobbler.h:
5664         * shell/rb-history.c:
5665         * shell/rb-history.h:
5666         * shell/rb-play-order-linear-loop.c:
5667         * shell/rb-play-order-linear-loop.h:
5668         * shell/rb-play-order-linear.c:
5669         * shell/rb-play-order-linear.h:
5670         * shell/rb-play-order-queue.c:
5671         * shell/rb-play-order-queue.h:
5672         * shell/rb-play-order-random-by-age-and-rating.c:
5673         * shell/rb-play-order-random-by-age-and-rating.h:
5674         * shell/rb-play-order-random-by-age.c:
5675         * shell/rb-play-order-random-by-age.h:
5676         * shell/rb-play-order-random-by-rating.c:
5677         * shell/rb-play-order-random-by-rating.h:
5678         * shell/rb-play-order-random-equal-weights.c:
5679         * shell/rb-play-order-random-equal-weights.h:
5680         * shell/rb-play-order-random.c:
5681         * shell/rb-play-order-random.h:
5682         * shell/rb-play-order-shuffle.c:
5683         * shell/rb-play-order-shuffle.h:
5684         * shell/rb-play-order.c:
5685         * shell/rb-play-order.h:
5686         * shell/rb-playlist-manager.c:
5687         * shell/rb-playlist-manager.h:
5688         * shell/rb-removable-media-manager.c:
5689         * shell/rb-removable-media-manager.h:
5690         * shell/rb-shell-clipboard.c:
5691         * shell/rb-shell-clipboard.h:
5692         * shell/rb-shell-player.c:
5693         * shell/rb-shell-player.h:
5694         * shell/rb-shell-preferences.c:
5695         * shell/rb-shell-preferences.h:
5696         * shell/rb-shell.c:
5697         * shell/rb-shell.h:
5698         * shell/rb-source-header.c:
5699         * shell/rb-source-header.h:
5700         * shell/rb-statusbar.c:
5701         * shell/rb-statusbar.h:
5702         * shell/rb-tray-icon.c:
5703         * shell/rb-tray-icon.h:
5704         * sources/rb-audiocd-source.c:
5705         * sources/rb-audiocd-source.h:
5706         * sources/rb-auto-playlist-source.c:
5707         * sources/rb-auto-playlist-source.h:
5708         * sources/rb-browser-source.c:
5709         * sources/rb-browser-source.h:
5710         * sources/rb-daap-source.c:
5711         * sources/rb-daap-source.h:
5712         * sources/rb-generic-player-source.c:
5713         * sources/rb-generic-player-source.h:
5714         * sources/rb-import-errors-source.c:
5715         * sources/rb-import-errors-source.h:
5716         * sources/rb-ipod-source.c:
5717         * sources/rb-ipod-source.h:
5718         * sources/rb-iradio-source.c:
5719         * sources/rb-iradio-source.h:
5720         * sources/rb-library-source.c:
5721         * sources/rb-library-source.h:
5722         * sources/rb-missing-files-source.c:
5723         * sources/rb-missing-files-source.h:
5724         * sources/rb-nokia770-source.c:
5725         * sources/rb-nokia770-source.h:
5726         * sources/rb-play-queue-source.c:
5727         * sources/rb-play-queue-source.h:
5728         * sources/rb-playlist-source-recorder.c:
5729         * sources/rb-playlist-source-recorder.h:
5730         * sources/rb-playlist-source.c:
5731         * sources/rb-playlist-source.h:
5732         * sources/rb-playlist-xml.h:
5733         * sources/rb-podcast-source.c:
5734         * sources/rb-podcast-source.h:
5735         * sources/rb-psp-source.c:
5736         * sources/rb-psp-source.h:
5737         * sources/rb-removable-media-source.c:
5738         * sources/rb-removable-media-source.h:
5739         * sources/rb-source.c:
5740         * sources/rb-source.h:
5741         * sources/rb-sourcelist-model.c:
5742         * sources/rb-sourcelist-model.h:
5743         * sources/rb-sourcelist.c:
5744         * sources/rb-sourcelist.h:
5745         * sources/rb-static-playlist-source.c:
5746         * sources/rb-static-playlist-source.h:
5747         * tests/test-cd.c:
5748         * tests/test-cmdline.c:
5749         * tests/test-rhythmdb-indexing.c:
5750         * tests/test-rhythmdb-query.c:
5751         * tests/test-rhythmdb-simple.c:
5752         * tests/test-rhythmdb-tree-deserialization.c:
5753         * tests/test-rhythmdb-tree-serialization.c:
5754         * tests/test-rhythmdb-view.c:
5755         * widgets/bacon-volume.c:
5756         * widgets/bacon-volume.h:
5757         * widgets/disclosure-widget.c:
5758         * widgets/disclosure-widget.h:
5759         * widgets/eel-gconf-extensions.c:
5760         * widgets/eel-gconf-extensions.h:
5761         * widgets/eggtrayicon.c:
5762         * widgets/eggtrayicon.h:
5763         * widgets/libsexy/sexy-icon-entry.c:
5764         * widgets/libsexy/sexy-icon-entry.h:
5765         * widgets/rb-cell-renderer-pixbuf.c:
5766         * widgets/rb-cell-renderer-pixbuf.h:
5767         * widgets/rb-cell-renderer-rating.c:
5768         * widgets/rb-cell-renderer-rating.h:
5769         * widgets/rb-dialog.c:
5770         * widgets/rb-dialog.h:
5771         * widgets/rb-druid.c:
5772         * widgets/rb-druid.h:
5773         * widgets/rb-entry-view.c:
5774         * widgets/rb-entry-view.h:
5775         * widgets/rb-header.c:
5776         * widgets/rb-header.h:
5777         * widgets/rb-library-browser.c:
5778         * widgets/rb-library-browser.h:
5779         * widgets/rb-property-view.c:
5780         * widgets/rb-property-view.h:
5781         * widgets/rb-query-creator-private.h:
5782         * widgets/rb-query-creator-properties.c:
5783         * widgets/rb-query-creator.c:
5784         * widgets/rb-query-creator.h:
5785         * widgets/rb-rating-helper.c:
5786         * widgets/rb-rating-helper.h:
5787         * widgets/rb-rating.c:
5788         * widgets/rb-rating.h:
5789         * widgets/rb-search-entry.c:
5790         * widgets/rb-search-entry.h:
5791         * widgets/rb-song-display-box.c:
5792         * widgets/rb-song-display-box.h:
5793         * widgets/rb-song-info.c:
5794         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
5796 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
5798         patch by: Gareth Murphy, James Livingston
5800         * bindings/python/rb.defs:
5801         * configure.ac:
5802         * plugins/Makefile.am:
5803         * plugins/artdisplay/Makefile.am:
5804         * plugins/artdisplay/artdisplay.py:
5805         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
5806         * plugins/rb-python-module.c: (rb_python_module_init_python):
5807         * shell/rb-shell.c: (construct_widgets),
5808         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
5809         (rb_shell_add_widget), (rb_shell_remove_widget),
5810         (rb_shell_ui_location_get_type):
5811         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
5813 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5815         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5816         Fix build failure caused by the combination of the previous two
5817         commits.
5819 2006-04-20  James Livingston  <doclivingston@gmail.com>
5821         patch by: Christophe Fergeau  <teuf@gnome.org> to make
5822         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
5823         table to the entry types, which will allow us to get rid of some of
5824         the "if entry type == WHATEVER" code everywhere. From bug 
5826         * bindings/python/rb.defs:
5827         * bindings/python/rb.override:
5828         * bindings/python/rhythmdb.defs:
5829         * bindings/python/rhythmdb.override:
5830         * daapsharing/rb-daap-connection.c:
5831         (rb_daap_connection_class_init), (rb_daap_connection_init),
5832         (rb_daap_connection_set_property),
5833         (rb_daap_connection_get_property):
5834         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
5835         * podcast/rb-podcast-manager.c:
5836         (rb_podcast_manager_entry_downloaded),
5837         (rb_podcast_manager_subscribe_feed),
5838         (rb_podcast_manager_db_entry_added_cb),
5839         (rb_podcast_manager_db_entry_deleted_cb),
5840         (rb_podcast_manager_insert_feed):
5841         * rhythmdb/rhythmdb-private.h:
5842         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5843         (conjunctive_query):
5844         * rhythmdb/rhythmdb.c: (sync_entry_changed),
5845         (process_added_entries_cb), (rhythmdb_entry_allocate),
5846         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
5847         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
5848         (rhythmdb_process_metadata_load),
5849         (rhythmdb_process_file_created_or_modified), (action_thread_main),
5850         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
5851         (write_encoded_gvalue), (read_encoded_property),
5852         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
5853         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
5854         (rhythmdb_entry_iradio_get_type),
5855         (rhythmdb_entry_podcast_post_get_type),
5856         (rhythmdb_entry_podcast_feed_get_type),
5857         (rhythmdb_entry_import_error_get_type),
5858         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
5859         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
5860         (rhythmdb_entry_type_get_type):
5861         * rhythmdb/rhythmdb.h:
5862         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5863         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
5864         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
5865         (rb_shell_player_entry_activated_cb), (info_available_cb):
5866         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
5867         (rb_shell_register_entry_type_for_source),
5868         (rb_shell_playing_from_queue_cb),
5869         (rb_shell_playing_entry_changed_cb),
5870         (rb_shell_player_stream_song_changed_cb),
5871         (rb_shell_jump_to_entry_with_source),
5872         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
5873         (handle_playlist_entry_cb), (rb_shell_load_uri):
5874         * shell/rb-shell.h:
5875         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
5876         * sources/rb-browser-source.c: (rb_browser_source_class_init),
5877         (rb_browser_source_init), (rb_browser_source_set_property),
5878         (rb_browser_source_get_property):
5879         * sources/rb-ipod-source.c: (impl_paste):
5880         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
5881         (rb_iradio_source_init), (rb_iradio_source_set_property),
5882         (rb_iradio_source_get_property):
5883         * sources/rb-library-source.c: (impl_paste):
5884         * sources/rb-missing-files-source.c:
5885         (rb_missing_files_source_class_init),
5886         (rb_missing_files_source_init),
5887         (rb_missing_files_source_set_property),
5888         (rb_missing_files_source_get_property):
5889         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
5890         (rb_playlist_source_init), (rb_playlist_source_set_property),
5891         (rb_playlist_source_get_property):
5892         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5893         (rb_podcast_source_init), (rb_podcast_source_set_property),
5894         (rb_podcast_source_get_property):
5895         * sources/rb-static-playlist-source.c:
5896         (rb_static_playlist_source_add_location_internal):
5898 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5900         * rhythmdb/rhythmdb.c: (rhythmdb_init),
5901         (rhythmdb_add_import_error_entry),
5902         (entry_volume_mounted_or_unmounted),
5903         (rhythmdb_volume_unmounted_cb):
5904         When a volume is unmounted, delete import errors for files stored on
5905         it.  When a volume is mounted, stat all tracks stored on it, rather
5906         than assuming they're present.  Fixes #339023.
5908 2006-04-20  James Livingston  <doclivingston@gmail.com>
5910         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
5911         browser visibility for non-gconf-using sources (like playlists). Part
5912         of bug 118862.
5914         * shell/rb-source-header.c: (sourcestate_free),
5915         (rb_source_header_init), (rb_source_header_finalize),
5916         (rb_source_header_source_weak_destroy_cb): switch from storing the
5917         search string to storing a "source state" structure
5919         (rb_source_header_set_source_internal),  (rb_source_state_sync),
5920         (rb_source_header_search_cb), (rb_source_header_clear_search),
5921         (rb_source_header_disclosure_toggled_cb): as well as storing the
5922         string, stop the visibility of the source's browser.
5924 2006-04-20  James Livingston  <doclivingston@gmail.com>
5926         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
5927         library entries back into the library. Fixes bug 339065.
5929 2006-04-20  James Livingston  <doclivingston@gmail.com>
5931         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
5932         only exists in glib 2.10.
5934 2006-04-20  James Livingston  <doclivingston@gmail.com>
5936         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
5937         Solaris. From bug 335318.
5939         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
5940         * shell/rb-audioscrobbler.c:
5941         * sources/rb-psp-source.c:
5943 2006-04-20  James Livingston  <doclivingston@gmail.com>
5945         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
5946         issues for some people.
5948         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
5949         accidental s/suffix/prefix/
5951         * sources/rb-auto-playlist-source.c:
5952         (rb_auto_playlist_source_set_query): fix the invered logic preventing
5953         you from sorting playlists which aren't limited by time.
5955 2006-04-19  James Livingston  <doclivingston@gmail.com>
5957         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
5958         duration or bitrate back to the file, since they are properties of the
5959         audio data, not tags we can set.
5961 2006-04-19  James Livingston  <doclivingston@gmail.com>
5963         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
5964         of libtool, to fix builds which are using a different version. Fixes
5965         bug 338996.
5967         * shell/Makefile.am:
5969 2006-04-19  James Livingston  <doclivingston@gmail.com>
5971         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
5972         to sync data to a file which is uneditable.
5974 2006-04-19  James Livingston  <doclivingston@gmail.com>
5976         patch by: Gavin Stewart  <gavin@brokentrain.net>
5978         * data/glade/playlist-save.glade:
5979         * data/glade/Makefile.am:
5980         * po/POTFILES.in: add the playlist saving dialog.
5982         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
5983         (export_set_extension_cb), (filter_get_export_filter_label),
5984         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
5985         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
5986         formats (PLS and M3U at the moment). Fixes bug 316295.
5988 2006-04-19  James Livingston  <doclivingston@gmail.com>
5990         * shell/rb-playlist-manager.c:
5991         (rb_playlist_manager_set_source_internal): don't let you edit remove
5992         auto playlists.
5994         * sources/rb-auto-playlist-source.c:
5995         (rb_auto_playlist_source_set_query): correctly handle time-limited
5996         playlists.
5998 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6000         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
6002         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
6003         Don't crash if the queue file contains no newlines.
6004         Fixes #338924.
6006 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6008         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
6009         condition
6011 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6013         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
6014         case. Moreover, they may not exist yet, so take that into account when
6015         generating the iPod filename.
6017 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
6019         * sources/rb-ipod-source.c: added support for drag and drop from the
6020         library to the iPod (only enabled if --enable-track-transfer was
6021         passed to configure)
6023 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
6025         * configure.ac:
6026         * lib/rb-marshal.list:
6027         * lib/rb-util.c: 
6028         * lib/rb-util.h:
6029         * plugins/Makefile.am:
6030         * plugins/ipod/Makefile.am:
6031         * plugins/ipod/ipod.rb-plugin.desktop.in:
6032         * plugins/ipod/rb-ipod-plugin.c: 
6033         * plugins/rb-plugin.h:
6034         * shell/Makefile.am:
6035         * shell/rb-removable-media-manager.c:
6036         * shell/rb-removable-media-manager.h:
6037         * shell/rb-shell.c: 
6038         * sources/Makefile.am:
6039         * sources/rb-ipod-source.c: 
6040         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
6041         various iPod related files should be moved to plugins/ipod/ now...
6043 2006-04-17  James Livingston  <doclivingston@gmail.com>
6045         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
6046         and "vic".
6048         * help/C/figures/rb-iradio-main.png:
6049         * help/C/figures/rb-notification-area-menu.png:
6050         * help/C/figures/rb-notification-window.png:
6051         * help/C/figures/rb-notification-zone.png:
6052         * help/C/figures/rb-podcast-main.png:
6053         * help/C/figures/rb-statusbar.png:
6054         * help/C/figures/rb-volume-changer.png:
6055         * help/C/figures/rb-window-small.png:
6056         * help/C/figures/rb-window.png:
6057         * help/C/rhythmbox.xml:
6059 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6061         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
6062         more obviously.
6064         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6065         (make_undecodable_error), (rb_metadata_gst_error_cb),
6066         (rb_metadata_gst_new_decoded_pad_cb),
6067         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
6068         Ignore really small files (<4kB) for which typefinding fails.
6069         Always link decoded pads from decodebin to fakesink.
6070         Shut the pipeline down by posting an error on the bus when decodebin
6071         emits unknown-type signals.  Fixes bug #338062.
6073 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6075         * shell/rb-shell.c: (rb_shell_load_uri):
6076         Fix glaring mistakes in previous commit: actually pass arguments to
6077         rb_debug, and specify the right entry type when adding a new iradio
6078         station so we don't try to add local playlist files to the library.
6080 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6082         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
6083         before trying to add them, as iradio streams often fail rb_uri_exists().
6085         * shell/rb-shell-player.c: (notify_playing_idle),
6086         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
6087         (open_location_thread), (rb_shell_player_open_location),
6088         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
6089         (eos_cb):  When playing an iradio stream using a playlist, keep a list
6090         of all the stream URLs, and try them in turn.  If we get through the
6091         whole playlist too quickly, error out.  Various other fixes that make
6092         iradio work a lot better.
6094         * shell/rb-shell.c: (add_to_library_response_cb),
6095         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6096         (handle_playlist_entry_cb), (rb_shell_load_uri):
6097         Add playlists containing streams as iradio stations.  If the playlist
6098         is local, add each stream URL, but if the playlist is remote, just add
6099         the playlist URL.
6100         
6101         * sources/rb-iradio-source.c: (new_station_location_added):
6102         Add new station URLs as-is, rather than parsing the playlist and
6103         adding the streams.
6104         
6105         * rhythmdb/rhythmdb-query-model.c:
6106         (rhythmdb_query_model_entry_changed_cb),
6107         (rhythmdb_query_model_emit_reorder),
6108         (rhythmdb_query_model_do_reorder):
6109         Emit row-changed notifications when an entry changes but is not
6110         reordered.
6112         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
6113         Display the playback error icon when the entry has an error and
6114         there's nothing else to display.
6115         
6116         Fixes bug #320336 and some of #324402.
6117         
6118 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6120         * sources/rb-ipod-source.c: use a GHashTable for the
6121         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
6122         time, this fixes compilation breakage for people not having libgpod
6123         CVS HEAD
6125 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
6127         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6129         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
6130         (rb_podcast_manager_insert_feed):
6131         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
6132         fixes bug 321945
6134 2006-04-16  James Livingston  <doclivingston@gmail.com>
6136         * sources/rb-library-source.c:
6137         (rb_library_source_library_location_cb): return FALSE like we are
6138         supposed to, not void.
6140         patch by: FreeBSD GNOME Project
6141         * configure.ac: fix some bash-isms.
6143         patch by: Pawel Worach  <pawel.worach@gmail.com>
6144         * metadata/rb-metadata-dbus-client.c:
6145         * rhythmdb/rhythmdb-query-model.c:
6146         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
6149 2006-04-16  James Livingston  <doclivingston@gmail.com>
6151         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
6152         for transcoding to RBEncoderGst.
6154         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
6155         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
6156         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
6157         (add_decoding_pipeline), (encoder_match_mime),
6158         (get_profile_from_mime_type), (extract_track), (transcode_track),
6159         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
6161 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6163         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
6164         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
6165         load_ipod_db_idle_cb to a new separate function
6167 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6169         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
6170         source
6172 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6174         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
6175         variables
6177 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6179         * data/ui/Makefile.am:
6180         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
6181         menu
6182         * lib/rb-util.c: check if the widget we got from the UI manager isn't
6183         NULL before using it as a popup menu
6184         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
6185         'eject' an iPod
6187 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6189         * sources/rb-ipod-source.c: when hal tells us a partition is on an
6190         iPod, check if it contains an iPod database before using it (in case
6191         the iPod was repartitionned somehow). Should fix bug #325034
6193 2006-04-16  Steve Frécinaux  <steve@istique.net>
6195         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
6197         * data/Makefile.am: install application icon into the default theme.
6199         * data/rhythmbox.desktop.in: don't specify icon file extension.
6200         
6201         * shell/main.c: (main): set default window icon from theme.
6202         
6203         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
6204         code concerning window icon, and fix leak by unreferencing the about
6205         logo pixbuf once it's not used anymore.
6207 2006-04-16  James Livingston  <doclivingston@gmail.com>
6209         * configure.ac: bump version to 0.9.4
6210         * NEWS: update NEWS and 0.9.4 insert translations
6212 2006-04-16  James Livingston  <doclivingston@gmail.com>
6214         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
6215         namespace automatically.
6217 2006-04-16  James Livingston  <doclivingston@gmail.com>
6219         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
6221         * doc/reference/Makefile.am:
6222         * doc/reference/rhythmbox.types: make distcheck work again
6224         * doc/reference/tmpl/eggnotificationbubble.sgml:
6225         * doc/reference/tmpl/eggtrayicon.sgml:
6226         * doc/reference/tmpl/rb-debug.sgml:
6227         * doc/reference/tmpl/rb-entry-view.sgml:
6228         * doc/reference/tmpl/rb-enums.sgml:
6229         * doc/reference/tmpl/rb-metadata.sgml:
6230         * doc/reference/tmpl/rb-new-station-dialog.sgml:
6231         * doc/reference/tmpl/rb-playlist-manager.sgml:
6232         * doc/reference/tmpl/rb-refstring.sgml:
6233         * doc/reference/tmpl/rb-shell-player.sgml:
6234         * doc/reference/tmpl/rb-shell-preferences.sgml:
6235         * doc/reference/tmpl/rb-shell.sgml:
6236         * doc/reference/tmpl/rb-song-info.sgml:
6237         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
6238         * doc/reference/tmpl/rb-statusbar.sgml:
6239         * doc/reference/tmpl/rhythmbox-unused.sgml:
6240         * doc/reference/tmpl/rhythmdb-query-model.sgml:
6241         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
6243 2006-04-16  James Livingston  <doclivingston@gmail.com>
6245         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
6247         * po/LINGUAS: don't split the variable across two lines, as it breaks
6248         the build. Fixes bug 338625.
6250 2006-04-15  James Livingston  <doclivingston@gmail.com>
6252         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
6253         add a "sourcelist-model" gobject property.
6255 2006-04-14  William Jon McCann  <mccann@jhu.edu>
6257         * .cvsignore:
6258         * backends/.cvsignore:
6259         * backends/gstreamer/.cvsignore:
6260         * bindings/.cvsignore:
6261         * bindings/python/.cvsignore:
6262         * help/es/.cvsignore:
6263         * metadata/.cvsignore:
6264         * plugins/.cvsignore:
6265         * plugins/audioscrobbler/.cvsignore:
6266         * plugins/lirc/.cvsignore:
6267         * plugins/pythonconsole/.cvsignore:
6268         * plugins/sample-python/.cvsignore:
6269         * plugins/sample/.cvsignore:
6270         * shell/.cvsignore:
6271         * widgets/libsexy/.cvsignore:
6272         Make CVS ignore files.
6274 2006-04-14  James Livingston  <doclivingston@gmail.com>
6276         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
6277         the track-loading thread hold a reference on the source, so it doesn't
6278         explode if the cd is removed before it is done. Fixes bug 337237.
6280 2006-04-14  James Livingston  <doclivingston@gmail.com>
6282         * bindings/python/override_common.c:
6283         (_helper_unwrap_pointer_pylist):
6284         * bindings/python/override_common.h:
6285         * bindings/python/rb.override:
6286         * bindings/python/rhythmdb.override: Bind some more functions and
6287         virtual functions.
6289         * shell/rb-shell.c: (rb_shell_select_source):
6290         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
6291         * sources/rb-audiocd-source.c:
6292         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
6293         * sources/rb-browser-source.c: (impl_get_search_actions):
6294         * sources/rb-iradio-source.c: (impl_get_ui_actions):
6295         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
6296         * sources/rb-playlist-source.c: (impl_get_ui_actions):
6297         * sources/rb-podcast-source.c: (impl_get_ui_actions),
6298         (impl_get_search_actions):
6299         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
6300         the impl_get_ui_actions and impl_get_search_actions functions return
6301         lists that contain copies of the strings, instead of constant ones.
6302         Needed to bindings
6304 2006-04-14  James Livingston  <doclivingston@gmail.com>
6306         * bindings/python/rhythmdb.defs:
6307         * bindings/python/rhythmdb.override: fix the method argument format
6308         specifiers.
6310 2006-04-14  James Livingston  <doclivingston@gmail.com>
6312         * bindings/python/rhythmdb.defs:
6313         * bindings/python/rhythmdb.override:
6314         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
6315         (entry_to_rb_metadata), (record_entry_change),
6316         (rhythmdb_entry_set_visibility):
6317         * rhythmdb/rhythmdb.h:
6318         * shell/rb-shell.c: (rb_shell_get_song_properties): change
6319         rhythmdb_entry_get to take the db as the first parameter. Fixes the
6320         python bindings of it. The rhythmdb_entry_get_* ones are left the same
6321         since they are used in too many places, and not in the Python
6322         bindings.
6324 2006-04-13  William Jon McCann  <mccann@jhu.edu>
6326         * lib/rb-debug.c: (_rb_profile_log):
6327         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
6328         * rhythmdb/rhythmdb.c: (rhythmdb_load):
6329         * shell/main.c: (main):
6330         * shell/rb-shell.c: (rb_shell_constructor),
6331         (rb_shell_set_visibility), (rb_shell_sync_window_state),
6332         (rb_shell_present):
6333         Fix profile output indentation.  Add more profiling points.
6334         Fixes part of #338114
6336 2006-04-13  James Livingston  <doclivingston@gmail.com>
6338         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
6339         library source being deleted, by setting the active source to NULL.
6340         From bug 338116.
6342 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6344         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
6345         Update the last-seen string when hiddenness changes.
6347 2006-04-12  James Livingston  <doclivingston@gmail.com>
6349         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
6350         which caused the first-seen time to be reset when a metadata load was
6351         done. Fixes bug 336874.
6353         * shell/rb-shell.h: remove old function declaration.
6355         * bindings/python/rhythmdb.defs:
6356         * bindings/python/rhythmdb.override: Fix some python binding stuff.
6358 2006-04-11  James Livingston  <doclivingston@gmail.com>
6360         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
6361         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
6362         interaction. Fixes bug 337999.
6364 2006-04-11  James Livingston  <doclivingston@gmail.com>
6366         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
6367         track transfer. Fixes bug 338056.
6369         * shell/Makefile.am:
6371 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6373         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
6375 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6377         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
6378         (_rb_profile_log):
6379         * lib/rb-debug.h:
6380         * shell/rb-shell.c: (construct_db), (construct_widgets),
6381         (construct_sources), (construct_load_ui), (rb_shell_constructor):
6382         Add profiling.  Fixes #337387
6384 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6386         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
6387         * widgets/rb-header.c:
6388         Use italics for artist and album. Fixes #336748
6390 2006-04-10  James Livingston  <doclivingston@gmail.com>
6392         * Makefile.am:
6393         * backends/gstreamer/Makefile.am:
6394         * configure.ac:
6395         * data/glade/library-prefs.glade:
6396         * shell/Makefile.am:
6397         * shell/rb-removable-media-manager.c:
6398         * shell/rb-removable-media-manager.h:
6399         * sources/Makefile.am:
6400         * sources/rb-audiocd-source.c:
6401         * sources/rb-library-source.c: (rb_library_source_class_init),
6402         (rb_library_source_finalize), (impl_get_config_widget),
6403         (rb_library_source_preferences_sync), (impl_can_paste): add a
6404         --enable-track-transfer configure option, abd make cd ripping disabled
6405         by default.
6407         * shell/rb-source-header.c:
6408         * sources/rb-source.c: (rb_source_class_init),
6409         (rb_source_delete_thyself), (default_get_entry_view):
6410         * lib/rb-glade-helpers.c:
6411         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
6412         some compiler warnings, and also bug 337427.
6414 2006-04-10  James Livingston  <doclivingston@gmail.com>
6416         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
6417         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
6418         if the gconf key is missing. Fixes bug 337742.
6420 2006-04-10  James Livingston  <doclivingston@gmail.com>
6422         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6423         to fix build problems I caused with a commit yesterday. Fixed bug
6424         337806.
6426         * daapsharing/rb-daap-mdns-browser-howl.c:
6427         (rb_daap_mdns_browser_class_init):
6428         * podcast/Makefile.am:
6429         * rhythmdb/Makefile.am:
6430         * widgets/eggtrayicon.h:
6432 2006-04-09  Steve Frécinaux  <steve@istique.net>
6434         * configure.ac:
6435         * po/LINGUAS:
6436         
6437         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
6438         translators' life easier.
6440 2006-04-09  James Livingston  <doclivingston@gmail.com>
6442         * bindings/python/rb.defs:
6443         * bindings/python/rb.override: add bindings for most RBSource virtual
6444         functions.
6446         * sources/rb-source.h:
6447         * sources/rb-source.c: (rb_source_class_init): make
6448         impl_get_browser_key return a non-consht string, since Python can't
6449         really give us constant strings.
6451         * shell/rb-source-header.c: (rb_source_header_finalize),
6452         (rb_source_header_set_source_internal):
6453         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
6454         * sources/rb-iradio-source.c: (impl_get_browser_key):
6455         * sources/rb-library-source.c: (impl_get_browser_key):
6456         * sources/rb-playlist-source.c:
6457         * sources/rb-browser-source.c: (rb_browser_source_constructor),
6458         (rb_browser_source_state_prefs_sync):
6459         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
6460         above change.
6462         * plugins/sample-python/sample-python.py: show how to add a new
6463         source.
6465 2006-04-09  James Livingston  <doclivingston@gmail.com>
6467         * daapsharing/Makefile.am:
6468         * daapsharing/rb-daap-connection.c:
6469         (rb_daap_connection_class_init):
6470         * daapsharing/rb-daap-marshal.list:
6471         * daapsharing/rb-daap-mdns-browser-avahi.c:
6472         (rb_daap_mdns_browser_class_init):
6473         * lib/rb-marshal.list:
6474         * player/Makefile.am:
6475         * player/rb-recorder-gst.c: (rb_recorder_class_init):
6476         * player/rb-recorder-marshal.list:
6477         * podcast/Makefile.am:
6478         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
6479         * podcast/rb-podcast-marshal.list:
6480         * rhythmdb/Makefile.am:
6481         * rhythmdb/rhythmdb-marshal.list:
6482         * rhythmdb/rhythmdb-query-model.c:
6483         (rhythmdb_query_model_class_init):
6484         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
6485         into one file, as there is no point having several of them.
6487 2006-04-09  James Livingston  <doclivingston@gmail.com>
6489         * lib/Makefile.am:
6490         * lib/rb-enums.h:
6491         * widgets/Makefile.am:
6492         * widgets/eggnotificationbubble.c:
6493         * widgets/eggnotificationbubble.h:
6494         * widgets/rb-song-info.c: remove lib/rb-enums.h and
6495         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
6497         * rhythmdb/rhythmdb-property-model.h:
6498         * rhythmdb/rhythmdb-query-model.h:
6499         * rhythmdb/rhythmdb.h:
6500         * shell/rb-playlist-manager.h:
6501         * widgets/rb-cell-renderer-pixbuf.h:
6502         * widgets/rb-cell-renderer-rating.h:
6503         * widgets/rb-rating.h: fix the prototypes of various class-closures.
6505 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6507         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
6508         so we can build without a system-wide installed copy.
6510 2006-04-09  James Livingston  <doclivingston@gmail.com>
6512         * data/glade/general-prefs.glade:
6513         * data/rhythmbox.schemas:
6514         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
6515         (rb_combo_box_hyphen_separator_func):
6516         * lib/rb-glade-helpers.h:
6517         * lib/rb-preferences.h:
6518         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6519         (rb_shell_preferences_sync),
6520         (rb_shell_preferences_toolbar_style_cb),
6521         (rb_shell_preferences_browser_views_activated_cb):
6522         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
6523         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
6524         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
6526 2006-04-09  James Livingston  <doclivingston@gmail.com>
6528         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
6529         data that MusicBrainz returns to us. Last part of bug 334167.
6531 2006-04-09  James Livingston  <doclivingston@gmail.com>
6533         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
6534         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
6536 2006-04-09  James Livingston  <doclivingston@gmail.com>
6538         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
6539         the entry view properly when the rows are reordered. Fixes bug 337019.
6541 2006-04-09  James Livingston  <doclivingston@gmail.com>
6543         * configure.ac:
6544         * widgets/Makefile.am:
6545         * widgets/libsexy/Makefile.am:
6546         * widgets/libsexy/sexy-icon-entry.c:
6547         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
6548         libsexy, and allow building against it or a system-wide installed
6549         copy.
6552         * widgets/rb-search-entry.c: (rb_search_entry_init),
6553         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
6554         search box. Fixes bug 128109.
6556 2006-04-09  James Livingston  <doclivingston@gmail.com>
6558         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6560         * widgets/rb-entry-view.c: (rb_entry_view_init),
6561         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
6562         and Pause icons rather than the volume ones in the Now Playing column.
6563         Closes bug 336482.
6565 2006-04-08  James Livingston  <doclivingston@gmail.com>
6567         * bindings/python/override_common.h:
6568         * bindings/python/rb.override:
6569         * bindings/python/rhythmdb.override: bind some more functions 
6571 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6573         * metadata/rb-metadata-dbus-service.c: (_send_error):
6574         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
6575         are sent properly and we don't get 'method doesn't exist' messages
6576         from dbus instead.
6578 2006-04-08  James Livingston  <doclivingston@gmail.com>
6580         * bindings/python/override_common.h:
6581         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
6582         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
6583         more utility functions for C<->Python conversions
6585         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
6586         (rb_entry_view_state_get_type):
6587         * widgets/rb-entry-view.h: make the colume type and entry view state
6588         GTypes
6590         * bindings/python/Makefile.am:
6591         * bindings/python/rb.defs:
6592         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
6593         RBSource.
6595 2006-04-08  James Livingston  <doclivingston@gmail.com>
6597         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
6598         initialiser for a GError
6600         * sources/rb-source.c: (rb_source_eof_type_get_type):
6601         * sources/rb-source.h: add a GType for RBSourceEOFType
6603         * bindings/python/Makefile.am:
6604         * bindings/python/rb.defs:
6605         * bindings/python/rb.override: bind RBSource and RBSourceList
6607 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6609         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6610         (rb_shell_player_get_property),
6611         (rb_shell_player_get_active_source),
6612         (rb_shell_player_set_playing_source_internal):
6613         * shell/rb-shell-player.h:
6614         Change 'playing-from-queue' from being a signal to being a property.
6616         * shell/rb-shell.c: (rb_shell_constructor),
6617         (rb_shell_playing_from_queue_cb),
6618         (rb_shell_view_queue_as_sidebar_changed_cb),
6619         (rb_shell_jump_to_entry_with_source):
6620         When the queue side pane is used, make 'jump to current' jump to the
6621         entry in the registered source for its type, rather than in the queue,
6622         and show it as playing in that source.
6623         
6624         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
6625         * sources/rb-sourcelist.h:
6626         Remove the 'preempted source' stuff, since it wasn't doing anything
6627         anyway.
6629 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6631         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
6632         (download_progress_cb): Canonicalise downloaded file location before
6633         setting the mountpoint property of the corresponding entry.
6634         Fixes #337287 and a couple of memory leaks.
6636 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6638         * metadata/rb-metadata-dbus-service.c: (test_can_save),
6639         (test_load), (main): Call g_set_prgname, report errors more
6640         usefully in test mode.
6641         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
6642         (rb_metadata_load): Don't ignore the have-type signal for non-audio
6643         files.  Run the event loop when the state change fails so we get the
6644         error messages from the bus.  Fixes #336921.
6646 2006-04-05  William Jon McCann  <mccann@jhu.edu>
6648         * data/art/Makefile.am: Install media-eject.
6650         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
6651         return value of rb_file.
6653         Fixes #337209
6655 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6657         Patch by: William Jon McCann  <mccann@jhu.edu>
6659         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
6660         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
6661         Fix GError leak.
6663 2006-04-04  William Jon McCann  <mccann@jhu.edu>
6665         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
6666         Don't try to add a date when we don't have one.  Fixes #336741.
6668         Also fix variable declaration in middle of block.
6670 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6672         * shell/rb-shell-player.c: (rb_shell_player_playpause):
6673         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
6675 2006-04-02  James Livingston  <doclivingston@gmail.com>
6677         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
6678         inverted logic causing imports to fail.
6680 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6682         * shell/main.c: (main): Fix dbusless build.
6684 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
6686         * player/rb-recorder-gst.c: fix packing of the C struct holding a
6687         wav header for non-gcc compilers (not tested much, was only written
6688         according to docs)
6690 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6692         * shell/main.c: (main): Check if we got a dbus connection before
6693         trying to create a proxy for the shell object.  Fixes #336634.
6695 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6697         * doc/reference/Makefile.am:
6698         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
6699         * shell/rb-source-header.c:
6700         * sources/rb-generic-player-source.c:
6701         (default_transform_playlist_uri):
6702         Fix various build issues.  Patch approximately 50% by Alex Lancaster
6703         <alexl@users.sourceforge.net>
6705 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6707         * configure.ac: Detect LIRC.
6708         
6709         * plugins/Makefile.am:
6710         * plugins/lirc/Makefile.am:
6711         * plugins/lirc/lirc.rb-plugin.desktop.in:
6712         * plugins/lirc/rb-lirc-plugin.c:
6713         LIRC plugin.
6715         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
6716         Remove obsolete files.
6718 2006-04-02  James Livingston  <doclivingston@gmail.com>
6720         * sources/rb-generic-player-source.c:
6721         (default_transform_playlist_uri): consider playlist paths as relative
6722         to the volume root by default, since that is what most players use.
6724 2006-04-02  James Livingston  <doclivingston@gmail.com>
6726         * lib/rb-util.c: (rb_mime_get_friendly_name):
6727         * lib/rb-util.h: add helper function to get the "friendly" name for a
6728         mime-type
6730         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6731         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
6732         the user better error messages about undecodable streams, using the
6733         "friendly" name if possible. Fixes bug 128109.
6735 2006-04-02  James Livingston  <doclivingston@gmail.com>
6737         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
6738         (start_pipeline): fix building with gstreamer 0.8
6740 2006-04-02  James Livingston  <doclivingston@gmail.com>
6742         * sources/rb-podcast-source.c: (impl_delete),
6743         (rb_podcast_source_cmd_delete_feed),
6744         (rb_podcast_source_cmd_update_feed): copy the list before traversing
6745         it, since it may change during traversal. Fixes bug 336204.
6747 2006-04-01  James Livingston  <doclivingston@gmail.com>
6749         * data/art/media-eject.png: add the media-eject icon from Banshee
6750         (BSD-licensed), for use when the user's icon theme doesn't have one.
6752         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
6753         bug 334897.
6755 2006-04-01  James Livingston  <doclivingston@gmail.com>
6757         * shell/rb-shell-player.h:
6758         * shell/rb-shell-player.c: (rb_shell_player_play),
6759         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
6760         new rb_shell_player_{play,pause} functions, so everyone doesn't have
6761         to do rb_shell_player_playing followed by rb_shell_player_playpause.
6763         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
6764         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
6765         * shell/rb-shell.h: add rb_shell_get_ui_manager.
6767         * bindings/python/rb.defs: bind the above to Python, and remove some
6768         useless stuff from the bindings.
6770 2006-04-01  James Livingston  <doclivingston@gmail.com>
6772         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
6773         number tag.
6775         * shell/rb-shell.c:
6776         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
6778         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
6779         to true.
6781         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
6782         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
6783         method assigning, so it's understandable
6785         * sources/rb-library-source.c: (rb_library_source_class_init),
6786         (impl_paste): rather than hard-coding the types to ignore, use
6787         rb_source_can_copy.
6789 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6791         * sources/rb-library-source.c:
6792         (rb_library_source_preferences_sync):
6793         Don't crash if no audio profile is selected and the gconf schemas are 
6794         not installed.
6796 2006-03-31  James Livingston  <doclivingston@gmail.com>
6798         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
6799         "*" which caused compilation to fail
6801 2006-03-31  James Livingston  <doclivingston@gmail.com>
6803         * configure.ac:
6804         * Makefile.am:
6805         * backends/Makefile.am:
6806         * backends/gstreamer/Makefile.am:
6807         * backends/gstreamer/rb-encoder-gst.c:
6808         * backends/gstreamer/rb-encoder-gst.h:
6809         * backends/rb-encoder.c:
6810         * backends/rb-encoder.h: add a interface for transcoding, and a
6811         GStreamer implementation of it (based on Sound-Juicer's code).
6813         * shell/Makefile.am:
6814         * shell/rb-removable-media-manager.c:
6815         (rb_removable_media_manager_class_init),
6816         (rb_removable_media_manager_init),
6817         (rb_removable_media_manager_dispose),
6818         (rb_removable_media_manager_finalize),
6819         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
6820         (progress_cb), (completed_cb), (do_transfer),
6821         (rb_removable_media_manager_queue_transfer), (copy_entry),
6822         (rb_removable_media_manager_cmd_copy_tracks):
6823         * shell/rb-removable-media-manager.h: use the encoder interface to
6824         perform transfers of entries to other locations
6826         * shell/rb-shell-player.c: (open_location_thread):
6827         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
6828         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
6829         (rb_shell_quit):
6830         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
6831         progress in the status bar.
6833         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6834         (rb_shell_preferences_sync),
6835         (rb_shell_preferences_browser_views_activated_cb):
6836         * data/glade/general-prefs.glade: move the browser views setting from
6837         the library tab to the general one.
6839         * data/glade/library-prefs.glade: add settings for the layout of the
6840         user's library, and their preferred encoding format (e.g. for CD
6841         ripping).
6843         * lib/rb-preferences.h:
6844         * data/rhythmbox.schemas: add keys for the above options (and a few
6845         other minor ones)
6847         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
6848         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
6849         entry, that isn't inserted into the database.
6851         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
6852         (rb_audiocd_create_track_entry):
6853         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
6854         cds, and set the mime-type of audio cd tracks correctly.
6856         * sources/rb-library-source.c: (rb_library_source_class_init),
6857         (rb_library_source_finalize),
6858         (rb_library_source_edit_profile_clicked_cb),
6859         (impl_get_config_widget), (rb_library_source_preferences_sync),
6860         (impl_receive_drag), (rb_library_source_path_changed_cb),
6861         (rb_library_source_filename_changed_cb),
6862         (rb_library_source_format_changed_cb), (sanitize_path),
6863         (filepath_parse_pattern), (layout_example_label_update),
6864         (rb_library_source_layout_path_changed),
6865         (rb_library_source_layout_filename_changed), (build_filename),
6866         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
6867         entries to the library. Large chunks of code for determining the
6868         destination file name stolen from Sound-Juicer.
6870         * sources/rb-sourcelist-model.c: (path_is_droppable):
6871         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
6872         * sources/rb-static-playlist-source.c:
6873         (rb_static_playlist_source_class_init):
6874         * sources/rb-removable-media-source.c:
6875         (rb_removable_media_source_class_init):
6876         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
6877         (rb_source_can_paste):
6878         * sources/rb-source.h: add a new _can_paste method, and use it (rather
6879         than _can_copy) to determine whether we can paste into the source.
6882 2006-03-31  Steve Frécinaux  <steve@istique.net>
6884         * plugins/rb-python-module.c: allow import of python modules with a '.'
6885         (gedit's bug 336403). Patch by Johan Dahlin.
6887 2006-03-31  James Livingston  <doclivingston@gmail.com>
6889         * sources/rb-library-source.c: 
6890         * sources/rb-library-source.h:
6891         * sources/rb-browser-source.c:
6892         * sources/rb-browser-source.h: Split RBLibrarySource into two.
6893         RBBrowserSource now contains all the stuff for having a source which
6894         views a particular entry type (including browsers and searching).
6895         RBLibrarySource derives from this, and includes the library-specific
6896         stuff, like importing and library watching. Fixes some issues where
6897         library-derived sources were doing things that should be
6898         library-specific. Fixes bug 335185.
6900         * data/ui/rhythmbox-ui.xml:
6901         * sources/Makefile.am: modifications for the above
6903         * sources/rb-daap-source.c: (rb_daap_source_class_init),
6904         (rb_daap_source_get_paned_key):
6905         * sources/rb-daap-source.h:
6906         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
6907         * sources/rb-removable-media-source.c:
6908         (rb_removable_media_source_class_init):
6909         * sources/rb-removable-media-source.h: derive from RBBrowserSource
6910         instead of RBLibrarySource.
6912 2006-03-31  James Livingston  <doclivingston@gmail.com>
6914         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
6915         I buggered up when changing from GnomeVFSFileSize.
6917 2006-03-30  James Livingston  <doclivingston@gmail.com>
6919         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
6920         for "-Wno-error".
6922         * bindings/python/rb.override:
6923         * bindings/python/Makefile.am: make the RB python bindings depend on
6924         the RhythmDB ones, and use "-Wno-error" since the machine-generated
6925         code sometimes emits warnings.
6927         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6928         (rb_shell_player_error_get_type):
6929         * shell/rb-shell-player.h:
6930         * bindings/python/rb.defs: add bindings for RBShellPlayer
6932         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6933         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
6934         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
6935         * rhythmdb/rhythmdb.h:
6936         * shell/rb-shell.c: (rb_shell_get_song_properties):
6937         * widgets/rb-entry-view.c: (propid_from_name):
6938         * widgets/rb-property-view.c: (rb_property_view_class_init):
6939         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
6940         than just plain GPtrArray, and add bindings for it.
6942         * bindings/python/rhythmdb.override: wrap some functions that use
6943         GValues
6945 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6947         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
6948         Only watch directories from which entries of type SONG have been
6949         added.
6951 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6953         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
6954         No need to restore the selection after rebuilding the child model,
6955         since that can't have changed the selection.
6957 2006-03-29  James Livingston  <doclivingston@gmail.com>
6959         * bindings/python/override_common.c:
6960         * bindings/python/override_common.h: add some for missing files to
6961         cvs.
6963 2006-03-29  James Livingston  <doclivingston@gmail.com>
6965         * configure.ac:
6966         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
6967         copied from gedit's autofoo and we don't need it
6969         * bindings/python/rhythmdb.defs:
6970         * bindings/python/rhythmdb.override: add missing files to cvs
6972 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6974         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
6975         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
6976         before running any of the debug/test modes.
6977         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
6978         Make plugin loading work when running uninstalled from the shell/
6979         directory.
6981 2006-03-29  James Livingston  <doclivingston@gmail.com>
6983         * rhythmdb/rhythmdb-property-model.c:
6984         (rhythmdb_property_model_sync),
6985         (rhythmdb_property_model_column_get_type):
6986         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
6988         * rhythmdb/rhythmdb-private.h:
6989         * rhythmdb/rhythmdb-query-model.c:
6990         (rhythmdb_query_model_class_init):
6991         * rhythmdb/rhythmdb-query-model.h:
6992         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
6993         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
6994         (rhythmdb_entry_get_type):
6995         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
6997         * widgets/rb-query-creator-properties.c:
6998         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
6999         was missing.
7001         * bindings/python/Makefile.am:
7002         * bindings/python/rb.defs:
7003         * bindings/python/rb.override:
7004         * plugins/rb-python-module.c: (rb_python_module_init_python): add
7005         Python bindings for RhythmDB.
7007 2006-03-29  James Livingston  <doclivingston@gmail.com>
7009         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
7010         sharing when using --no-registration
7012 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7014         * rhythmdb/rhythmdb-query-model.c:
7015         (rhythmdb_query_model_reapply_query):
7016         Don't remove entries while iterating, as it breaks the sequence
7017         nodes.  Instead, collect a list of removed entries and process it
7018         after iterating the sequence.  Fixes #334642.
7020 2006-03-29  James Livingston  <doclivingston@gmail.com>
7022         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7023         (row_activated_cb), (plugin_manager_toggle_all):
7024         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
7025         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
7026         (button_press_cb), (source_name_edited_cb):
7027         * widgets/rb-property-view.c: (rb_property_view_set_property),
7028         (rb_property_view_post_row_deleted_cb),
7029         (rb_property_view_row_activated_cb),
7030         (rb_property_view_selection_changed_cb),
7031         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
7032         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
7034 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7036         * rhythmdb/rhythmdb-query-model.c:
7037         (rhythmdb_query_model_drag_data_received):
7038         Increment the reference count for entries added by drag and drop.
7039         Fixes #336045.
7041 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7043         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
7044         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
7045         Ignore invalid UTF-8 strings.  Fixes most of #334167.
7047 2006-03-27  James Livingston  <doclivingston@gmail.com>
7049         * shell/rb-shell.c: (rb_shell_constructor),
7050         (rb_shell_sync_window_state): fix a maximise-realise race that would
7051         cause some widgets to be resized after we had explicity set theri
7052         size. Hopefully fixes bug 331927.
7054 2006-03-27  James Livingston  <doclivingston@gmail.com>
7056         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7057         (row_activated_cb), (plugin_manager_set_active),
7058         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
7059         configure button sensitivity when a plugin is enabled/disabled.
7061 2006-03-27  James Livingston  <doclivingston@gmail.com>
7063         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
7064         stop warnings, only the vbos is used anyway
7066         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
7067         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
7068         collection every now an then.
7070         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
7071         if we are finalising because the python object couldn't be created.
7073         * plugins/rb-python-module.c: (rb_python_module_new_object): return
7074         NULL if the python-side object couldn't be created. Stops crashes when
7075         the object is later used when it doesn't exist in Python.
7077         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
7078         (rb_python_shutdown): do better garbage collection when shutting down.
7079         Fixes the problem where Python was holding a reference to the shell,
7080         causing RB not to exit.
7082 2006-03-27  James Livingston  <doclivingston@gmail.com>
7084         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
7085         336131.
7087 2006-03-27  James Livingston  <doclivingston@gmail.com>
7089         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
7090         From bug 334829.
7092 2006-03-26  James Livingston  <doclivingston@gmail.com>
7094         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
7095         library location list to NULL after we free it. Fixes bug 336047.
7097 2006-03-26  James Livingston  <doclivingston@gmail.com>
7099         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7101         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
7102         supplies. Fixes bug 335947.
7104 2006-03-25  James Livingston  <doclivingston@gmail.com>
7106         * data/glade/audioscrobbler-prefs.glade:
7107         * shell/rb-audioscrobbler.c:
7108         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
7109         "submit songs" checkbox, and make it not disable username/password
7110         entry. This will be needed when we support other last.fm stuff
7111         (profile access, radio, etc).
7113 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
7115         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
7116         Volume should not display stock_volume-0 for volume > 0. Fixes bug
7117         335777.
7119 2006-03-24  James Livingston  <doclivingston@gmail.com>
7121         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7122         (rb_shell_player_sync_play_order),
7123         (rb_shell_player_play_order_update_cb),
7124         (actually_set_playing_source): update the next/previous availablility
7125         in places where it was missing. Fixes bug 335490.
7127 2006-03-24  James Livingston  <doclivingston@gmail.com>
7129         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
7130         can't find the widget
7132         * lib/rb-util.c: (rb_uri_list_parse):
7133         * lib/rb-util.h: add function for parsing a URI list into strings.
7135         * metadata/Makefile.am: make the metdata helper build when linking
7136         with --as-needed
7138         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
7139         g_mkdir_with_parents instead of coding our own.
7141         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
7142         <itunes:author> over <generator>, instead of using whichever comes
7143         last.
7145         * rhythmdb/rhythmdb-private.h:
7146         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
7147         field, as we don't ever check it (to detect corruption). Saves a bit
7148         of memory.
7150 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7152         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
7153         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
7154         Escape '&' and '=' in the paths we get back from
7155         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
7157 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7159         * shell/rb-shell.c: (rb_shell_constructor):
7160         Issue startup notification after creating the main window, so
7161         notification is issued whether the window is visible or not.
7162         Fixes #335086.
7164 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7166         * sources/rb-auto-playlist-source.c: (impl_search),
7167         (rb_auto_playlist_source_query_complete_cb),
7168         (rb_auto_playlist_source_do_query):
7169         * sources/rb-library-source.c: (impl_search),
7170         (rb_library_source_query_complete_cb),
7171         (rb_library_source_do_query):
7172         Defer subset searches (where text is appended to an existing search)
7173         until the original query is complete.
7175 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
7177         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
7179         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7180         (rb_refstring_get_sort_key): fixes for strict-aliasing
7182 2006-03-21  James Livingston  <jrl@ids.org.au>
7184         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
7185         importing a single file. Fixes bug 335307.
7187 2006-03-21  James Livingston  <jrl@ids.org.au>
7189         * shell/Makefile.am: remove the reference to backends/ that I
7190         accidently included.
7192 2006-03-21  James Livingston  <jrl@ids.org.au>
7194         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
7195         with Forte (on Solaris). Closes bug 335318.
7197         * configure.ac:
7198         * lib/Makefile.am:
7199         * player/rb-recorder-gst.c:
7200         * podcast/rb-podcast-parse.c:
7201         * remote/bonobo/Makefile.am:
7202         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
7203         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
7204         (rhythmdb_query_model_add_entry),
7205         (rhythmdb_query_model_add_results):
7206         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
7207         * rhythmdb/rhythmdb.h:
7208         * shell/Makefile.am:
7209         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
7210         (update_speed_combobox):
7211         * sources/rb-sourcelist-model.c:
7213 2006-03-21  James Livingston  <jrl@ids.org.au>
7215         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7217         * player/Makefile.am:
7218         * shell/Makefile.am: work correctly with a separate build root.
7220 2006-03-21  James Livingston  <jrl@ids.org.au>
7222         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
7223         get handed NULL.
7225 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7227         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
7228         Only create ignore entries when importing into the library.  
7229         Ignore entries for files in removable media sources don't help.
7231 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7233         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
7234         * shell/rb-source-header.h:
7235         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
7236         * widgets/rb-search-entry.h:
7237         Add functions to make the search box grab focus.
7239         * shell/rb-shell.c: (rb_shell_cmd_view_all):
7240         Focus the search box after handling the 'view all' action.
7242 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7244         * rhythmdb/rhythmdb.h:
7245         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7246         (rhythmdb_execute_multi_stat_info_cb),
7247         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
7248         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
7249         (action_thread_main):
7250         Collect all the get_file_info requests on startup into one gnome-vfs
7251         job to reduce overhead and avoid contention for the rhythmdb lock.
7252         Add a new method to call when all initial query models are set up.
7253         
7254         * shell/rb-shell.c: (idle_handle_load_complete):
7255         Call rhythmdb startup complete function when we've loaded all the
7256         playlists.  Fixes #334106.
7258 2006-03-20  James Livingston  <jrl@ids.org.au>
7260         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
7261         (rb_entry_view_selection_changed_cb),
7262         (rb_entry_view_have_complete_selection): make has_complete_selection
7263         not slow. Fixes a performance issue I added a week or so ago.
7265 2006-03-20  James Livingston  <jrl@ids.org.au>
7267         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
7268         before passing to strcmp. From bug 334559.
7270 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7272         * configure.ac:
7273         * lib/Makefile.am:
7274         * lib/rb-proxy-config.c:
7275         * lib/rb-proxy-config.h:
7276         Add a new object to watch the HTTP proxy configuration and emit
7277         signals when it changes.
7279         * shell/rb-audioscrobbler.c:
7280         * shell/rb-audioscrobbler.h:
7281         Use rb-proxy-config to watch HTTP proxy configuration.
7283         * shell/rb-shell.c:
7284         Construct rb-proxy-config object on startup, and remove all
7285         audioscrobbler references.
7287         * shell/Makefile.am:
7288         * plugins/audioscrobbler/Makefile.am:
7289         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
7290         Move all audioscrobbler code into the plugin.  We should move
7291         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
7292         point.  Don't use a private data structure in the plugin, since the
7293         class definition isn't in a header file.  Fixes #335091.
7295 2006-03-20  James Livingston  <jrl@ids.org.au>
7297         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
7298         don't enable Next if the source has an EOS type other than
7299         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
7301 2006-03-20  James Livingston  <jrl@ids.org.au>
7303         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
7304         (rb_song_info_forward_clicked_cb): deal with there being no
7305         next/previous entry.
7307         (rb_song_info_query_model_inserted_cb),
7308         (rb_song_info_query_model_deleted_cb),
7309         (rb_song_info_query_model_reordered_cb),
7310         (rb_song_info_query_model_changed_cb): monitor the query for changes,
7311         to update the button status. Fixes bug 333293.
7313 2006-03-20  James Livingston  <jrl@ids.org.au>
7315         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
7316         caused by my last commit
7318 2006-03-20  James Livingston  <jrl@ids.org.au>
7320         * bindings/python/Makefile.am:
7321         * bindings/python/rb.defs:
7322         * bindings/python/rb.override: add python bindings of RBRemoteProxy
7324         * shell/rb-shell.c: (rb_shell_constructor),
7325         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
7326         tray-icon detection slightly
7328 2006-03-19  Steve Frécinaux  <steve@istique.net>
7330         * data/ui/rhythmbox-ui.xml:
7331         * shell/rb-shell.c:
7333         Add an empty Tool Menu (hidden by default) containing placeholders for
7334         plugins.
7336         * configure.ac:
7337         * plugins/Makefile.am:
7338         * plugins/pythonconsole/Makefile.am:
7339         * plugins/pythonconsole/pythonconsole.py:
7340         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
7341         
7342         Python Console plugin
7344 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7346         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
7347         Extra step to encode '&' and '=' to match what gnome-vfs does
7348         internally.
7349         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
7350         (rhythmdb_tree_save):
7351         Increment rhythmdb xml version to 1.2, and force another uri
7352         re-canonicalisation when loading v1.1 databases.
7353         Fixes bug #333998.
7355 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7357         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
7358         (avahi_client_init), (browse_cb):
7359         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
7360         (avahi_client_init):
7361         Fix compilation with Avahi 0.5.x (bug #334551).
7363 2006-03-19  James Livingston  <jrl@ids.org.au>
7365         Add Increase/Decrease Volume menu items and keybindings. From bug
7366         123383.
7368         * data/ui/rhythmbox-ui.xml:
7369         * shell/rb-shell-player.c: (rb_shell_player_constructor),
7370         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
7371         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
7373 2006-03-19  James Livingston  <jrl@ids.org.au>
7375         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
7377         * shell/Makefile.am: fix the link order, so that we compile with
7378         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
7380 2006-03-19  James Livingston  <jrl@ids.org.au>
7382         patch by: Adam Petaccia  <adam@tpetaccia.com>
7384         * data/ui/rhythmbox-ui.xml: move preferences below "configure
7385         plugins". Fixes bug 335037.
7387 2006-03-18  James Livingston  <jrl@ids.org.au>
7389         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7390         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
7391         332992.
7393         * widgets/rb-header.c: don't make artist/album info in the header the
7394         small size, since it's hard to read.
7396 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7398         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
7399         (rhythmdb_finalize): Don't leak the hash tables.
7400         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
7401         (rhythmdb_commit_internal): Make sure to process the deletions.
7402         (rhythmdb_entry_delete): Use a hash.
7404         * podcast/rb-podcast-manager.c: Random analness about char*
7405         (rb_podcast_manager_remove_feed): Add debugging.
7406         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
7407         the result of gnome_vfs_unlink.  Don't leak a uri.
7409         Fixes #334786
7411 2006-03-18  James Livingston  <jrl@ids.org.au>
7413         * NEWS: update NEWS file
7415 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7417         * rhythmdb/rhythmdb-property-model.c:
7418         (rhythmdb_property_model_prop_changed_cb):
7419         Remove entries from the hash table after processing visible->hidden
7420         changes.
7422 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7424         * sources/rb-daap-source.c (connection_connected_cb) 
7425         (connection_disconnected_cb): Add debug.
7426         (rb_daap_source_get_headers): Check for NULL connection.
7428         * daapsharing/rb-daap-src.c (rb_daap_src_open):
7429         Check return value of rb_daap_source_get_headers.
7431         Fixes #332089
7433 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7435         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7436         Restore the selection after rebuilding the child model, so the
7437         selection is shown correctly after using the 'browse this
7438         album/artist/genre' menu items.
7440 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7442         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
7443         Clear the selection before changing the active model.
7444         Fixes crash reported in bug 334549.
7446 2006-03-15  James Livingston  <jrl@ids.org.au>
7448         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
7449         (rb_tray_icon_sync_action):
7450         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
7451         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
7452         for non-libnotify notification bubbles. Fixes bug 331721.
7454 2006-03-15  James Livingston  <jrl@ids.org.au>
7456         Add search-bar options to playlists. Fixes bug 334407.
7458         * sources/rb-auto-playlist-source.c:
7459         (rb_auto_playlist_source_class_init),
7460         (rb_auto_playlist_source_constructor),
7461         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
7462         (search_action_to_prop), (search_action_changed):
7463         * sources/rb-static-playlist-source.c:
7464         (rb_static_playlist_source_class_init),
7465         (rb_static_playlist_source_constructor),
7466         (construct_query_from_selection), (impl_get_search_actions),
7467         (search_action_to_prop), (search_action_changed):
7469 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7471         * shell/rb-source-header.c (rb_source_header_set_source_internal):
7472         Remove broken attempt at making the search bar buttons not
7473         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
7475 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7477         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
7478         Chain up to parent's dispose instead of finalize.  Fixes #334479.
7480 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7482         * widgets/rb-header.c (rb_header_sync): Escape album and
7483         artist before adding to markup.
7485 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7487         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
7488         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
7489         (rb_header_set_property), (rb_header_get_property),
7490         (rb_header_sync):
7491         Remove the GnomeUrl song links until we can do it properly.
7492         Fixes #334453.
7494 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7496         * shell/rb-source-header.c: (rb_source_header_clear_search):
7497         Remove the stored search text from the hash table, so it doesn't
7498         reappear after switching to another source and back.
7500         * sources/rb-auto-playlist-source.c: (impl_search):
7501         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
7502         * sources/rb-static-playlist-source.c: (impl_search):
7503         Make sure all sources treat impl_search(NULL) and impl_search("") the
7504         same.  Fixes #334525.
7506 2006-03-14  James Livingston  <jrl@ids.org.au>
7508         Store which thread created new entries, and make rhythmdb_commit only
7509         insert the entries for the thread that calls it. This stops one thread
7510         calling rhythmdb_commit inserting entries that are half-way through
7511         construction by another thread (as happens with audio cds). From bug
7512         330226.
7514         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7515         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
7516         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
7517         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
7518         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
7519         (rhythmdb_process_metadata_load),
7520         (rhythmdb_process_queued_entry_set_event),
7521         (rhythmdb_prop_get_type):
7523 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7525         * rhythmdb/rhythmdb-query-model.c:
7526         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
7527         (rhythmdb_query_model_finalize):
7528         Move object unrefs from _finalize into _dispose.
7529         
7530         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
7531         Remove extra g_object_ref that was causing query model leaks.
7532         
7533         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
7534         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
7535         (genre_selection_reset_cb), (rb_iradio_source_do_query):
7536         Remove the cached 'all' query, since it doesn't really help and it
7537         makes the code more complicated.  Attach the genre property view to
7538         the query model build from the search text, so only genres for
7539         stations matching the search terms are displayed.  Preserve the genre
7540         selection across searches.
7542         * widgets/rb-library-browser.c: 
7543         (rb_library_browser_class_init), (rb_library_browser_get_property):
7544         Add properties for the input and output models for the browser, and
7545         remove the 'changed' signal as we can just use notify::output-model.
7546         (ignore_selection_changes),
7547         (selection_restore_data_destroy), (query_complete_cb),
7548         (restore_selection): Helper functions for preserving selections across
7549         query model rebuilds.
7550         (rebuild_output_model):  New function for creating a query model to
7551         use as the display model for a source using the browser.
7552         (rebuild_child_model): Add a call to rebuild_output_model, add missing
7553         g_object_unrefs, reuse the parent's query model when there's no
7554         selection, and use ignore_selection_changes and restore_selection.
7555         (rb_library_browser_set_selection): rebuild_child_model emits the
7556         changed signal, so no need to do it here.
7557         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
7558         ignore_selection_changes and restore_selection. 
7559         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
7560         flag to rb_library_browser_set_model indicating whether the query is
7561         asynchronous.
7563         * sources/rb-static-playlist-source.c:
7564         (rb_static_playlist_source_class_init),
7565         (rb_static_playlist_source_dispose):
7566         (rb_static_playlist_source_constructor):  Add an extra reference on
7567         the base model, so it doesn't vanish when we set a new display model
7568         based on a search or browser selection.
7569         (impl_search): Ensure the search_text field in the source is NULL if
7570         the search box is empty.
7571         (construct_query_from_selection),
7572         (rb_static_playlist_source_do_query): Use the query model constructed
7573         from the search as the input model for the browser.
7574         (rb_static_playlist_source_browser_changed_cb): Use the browser's
7575         output model as the query model for the source.
7577         * sources/rb-auto-playlist-source.c:
7578         (rb_auto_playlist_source_finalize): Free more stuff.
7579         (rb_auto_playlist_source_constructor),
7580         (rb_auto_playlist_source_browser_changed_cb):
7581         Update for rb-library-browser changes, use the browser's output query
7582         model as the query model for the source.
7583         (impl_reset_filters), (impl_search), 
7584         (rb_auto_playlist_source_do_query),
7585         (rb_auto_playlist_source_set_query):
7586         Use the query model constructed from the search text as the input to
7587         the library browser, and when adding text to an existing search, apply
7588         the new query to the existing query model.
7589         
7590         * sources/rb-library-source.c: (rb_library_source_dispose):
7591         (rb_library_source_finalize): Chain dispose up to the parent class.
7592         (rb_library_source_constructor): Update for rb-library-browser
7593         changes. 
7594         (impl_search): Ensure search_text is NULL if the search box is empty,
7595         and use the subset flag to _do_query if text has been appended to an
7596         existing search.
7597         (search_action_changed), (impl_reset_filters):
7598         (rb_library_source_browser_changed_cb),
7599         (rb_library_source_do_query): Use the browser's output model as the
7600         query model for the source.
7602         Rework library and playlist sources to use a single query chain,
7603         and to limit the entries shown in property views based on the search
7604         terms.  Fixes bug #322787.
7606 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7608         * configure.ac:  Enable metadata helper by default, and fix a typo.
7610 2006-03-13  James Livingston  <jrl@ids.org.au>
7612         Make RBRefStrings lazily create the folded and sort-key strings when
7613         they are first used. This will same some memory by not creating ones
7614         that are never used, and delaying some of the others to when the user
7615         resorts or performs a similar action. Fixes bug 332992.
7617         * rhythmdb/rb-refstring.c: (rb_refstring_free),
7618         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
7619         (rb_refstring_get), (rb_refstring_get_folded),
7620         (rb_refstring_get_sort_key), (rb_refstring_hash),
7621         (rb_refstring_equal):
7622         * rhythmdb/rb-refstring.h:
7623         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
7625 2006-03-12  William Jon McCann  <mccann@jhu.edu>
7627         * data/ui/rhythmbox-ui.xml:
7628         * lib/rb-stock-icons.c: (rb_stock_icons_init):
7629         * lib/rb-stock-icons.h:
7630         * shell/rb-shell-player.c:
7631         * shell/rb-shell.c: (rb_shell_constructor):
7632         * shell/rb-source-header.c: (force_no_shadow),
7633         (ui_manager_add_widget_cb), (rb_source_header_constructor),
7634         (rb_source_header_class_init), (rb_source_header_init),
7635         (merge_source_ui_cb), (toolbar_set_homogeneous),
7636         (rb_source_header_set_source_internal),
7637         (rb_source_header_set_property), (rb_source_header_get_property),
7638         (rb_source_header_set_source), (rb_source_header_new),
7639         (rb_source_header_filter_changed_cb):
7640         * shell/rb-source-header.h:
7641         * sources/rb-library-source.c: (rb_library_source_class_init),
7642         (rb_library_source_init), (search_action_to_prop),
7643         (search_action_changed), (rb_library_source_constructor),
7644         (impl_search), (impl_reset_filters), (impl_get_search_actions),
7645         (construct_query_from_selection):
7646         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
7647         (rb_podcast_source_init), (search_action_to_prop),
7648         (search_action_changed), (rb_podcast_source_constructor),
7649         (construct_query_from_selection), (impl_get_ui_actions),
7650         (impl_get_search_actions):
7651         * sources/rb-source.c: (rb_source_class_init),
7652         (rb_source_get_ui_actions), (default_get_search_actions),
7653         (rb_source_get_search_actions):
7654         * sources/rb-source.h:
7656         Add a search bar.  Fixes #328618
7658 2006-03-12  James Livingston  <jrl@ids.org.au>
7660         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
7661         * shell/main.c: (main): make --no-update not stat files checking for
7662         changes, instead of doing nothing. Fixes bug 125177.
7664 2006-03-12  James Livingston  <jrl@ids.org.au>
7666         * podcast/rb-podcast-manager.c:
7667         (rb_podcast_manager_thread_parse_feed):
7668         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
7669         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
7670         having an invalid mime-type. Fixed bug 329813.
7672 2006-03-12  James Livingston  <jrl@ids.org.au>
7674         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
7675         Finally lets us close bug 309609.
7677         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
7678         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
7679         0.10
7681         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
7682         inverted logic of the editable check.
7684 2006-03-12  James Livingston  <jrl@ids.org.au>
7686         Make API doc generation work again. Fixes bug 334276.
7688         * doc/reference/Makefile.am:
7689         * doc/reference/tmpl/rb-debug.sgml:
7690         * doc/reference/tmpl/rb-druid.sgml:
7691         * doc/reference/tmpl/rb-entry-view.sgml:
7692         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
7693         * doc/reference/tmpl/rb-metadata.sgml:
7694         * doc/reference/tmpl/rb-shell.sgml:
7695         * doc/reference/tmpl/rhythmbox-unused.sgml:
7696         * doc/reference/tmpl/rhythmdb.sgml:
7698 2006-03-12  James Livingston  <jrl@ids.org.au>
7700         * shell/rb-shell-clipboard.c:
7701         (rb_shell_clipboard_set_source_internal),
7702         (rb_shell_clipboard_sync): don't try to use the source's entry view if
7703         it doesn't have one. Fixes bug 331673.
7705         * sources/rb-source.c: (rb_source_class_init): provide a default
7706         have_url implementation that returns FALSE.
7708 2006-03-12  James Livingston  <jrl@ids.org.au>
7710         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
7711         doing a distclean. Fixes bug 334221.
7714         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
7716         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
7718 2006-03-11  James Livingston  <jrl@ids.org.au>
7720         * shell/rb-shell.c: (rb_shell_window_state_cb),
7721         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
7722         update the window width/height when iconified. Stops the window
7723         changing size when it is restored from the tray, fixing bug 333824. 
7725 2006-03-11  James Livingston  <jrl@ids.org.au>
7727         Try to get cvs to actually add the necessary files for plugin support
7729 2006-03-11  James Livingston  <jrl@ids.org.au>
7731         Add a plugin framework, with basic support for Python plugins (based
7732         on gedit's). Closes bug 330523.
7734         * Makefile.am:
7735         * shell/Makefile.am:
7736         * configure.ac: necessary autofoo.
7738         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
7740         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
7741         * lib/rb-file-helpers.h:
7743         * data/glade/plugins/glade:
7744         * lib/rb-preferences.h:
7745         * plugins/*:
7746         * bindings/*: plugin framework
7748         * plugins/sample/*:
7749         * plugins/sample-python/*: sample plugins
7751         * plugins/audioscrobbler/*:
7752         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
7753         (rb_audioscrobbler_set_property),
7754         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
7755         submission into a plugin. shell/audioscrobbler.* should really be
7756         moved, but that sucks with cvs.
7758         * shell/rb-shell.h:
7759         * shell/rb-shell.c: (rb_shell_constructor),
7760         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
7761         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
7762         (rb_shell_quit): start and stop plugin framework.
7764 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7766         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
7767         (rhythmdb_entry_delete):
7768         Emit entry-deleted signals when rhythmdb_commit is called, rather than
7769         immediately, so we can't get change notifications afterwards.  
7770         Fixes #331732.
7771         (rhythmdb_process_metadata_load): Add a commit after removing an
7772         entry so we can recreate it with a different type without getting
7773         confused.
7775 2006-03-11  James Livingston  <jrl@ids.org.au>
7777         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
7778         use the drive name for audio CDs, use "Unknown CD".
7780 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7782         patch by:  James Henstridge  <james@jamesh.id.au>
7784         * sources/rb-removable-media-source.c:
7785         (rb_removable_media_source_constructor):
7786         Get the device name from the GnomeVFSDrive if possible,
7787         since this is usually a more descriptive name.  Fixes #333080.
7789 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7791         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7793         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
7794         Don't automatically download episodes when configured for manual
7795         updating.  Fixes #331564.
7797 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7799         * rhythmdb/rhythmdb-property-model.c:
7800         (rhythmdb_property_model_iter_from_string):
7801         Return an iterator for the 'all' property when name == NULL,
7802         and don't write to *iter if iter == NULL.
7804 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7806         * shell/rb-shell-player.c: (rb_shell_player_do_next):
7807         When switching to the play queue, still call _go_next on the normal
7808         play order, so self-emptying auto playlists ("play count = 0" etc.)
7809         don't restart once the queue is empty.
7811         * shell/rb-tray-icon.c:
7812         Change shortcut for 'show notifications' to 'o' so it doesn't clash
7813         with 'next'.
7815 2006-03-05  James Livingston  <jrl@ids.org.au>
7817         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
7818         don't submit tracks which could not be played. Fixed bug 333013.
7820         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
7821         tracks which could not be played.
7823 2006-03-05  James Livingston  <jrl@ids.org.au>
7825         Sync musicbrainz lookup code from Sound-Juicer cvs.
7827         * metadata/sj-metadata-musicbrainz.c:
7828         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
7829         (get_offline_track_listing), (artist_and_title_from_title),
7830         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
7831         (mb_list_albums), (mb_get_submit_url):
7832         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
7833         * metadata/sj-metadata.h:
7834         * metadata/sj-structures.c: (track_details_free),
7835         (album_details_free):
7836         * metadata/sj-structures.h:
7838 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7840         * lib/rb-debug.h:
7841         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
7842         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
7843         (rb_profiler_reset), (rb_profiler_free):
7844         Filter debug output by matching the file and function names against a
7845         match string.
7847         * shell/main.c: (main):
7848         Add -D command line option to specify the debug match string.
7850         * shell/rb-removable-media-manager.c:
7851         (rb_removable_media_manager_mount_volume):
7852         Fix some typos in debug output.
7854 2006-03-03  James Livingston  <jrl@ids.org.au>
7856         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
7857         * shell/rb-shell.c: (rb_shell_load_uri):
7858         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
7859         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
7860         use the new "recurse" property from totem-plparser, if present. Stop
7861         RB hanging for new users who don't have a 'net connection. From bug
7862         331508.
7864 2006-03-02  Bastien Nocera  <hadess@hadess.net>
7866         * shell/rb-removable-media-manager.c:
7867         (rb_removable_media_manager_mount_volume):
7868         * sources/Makefile.am:
7869         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
7870         Fix missing files on make dist (conditional files), only build the
7871         N770 support if there's HAL support, as we have no other ways of
7872         detecting it
7874 2006-03-03  James Livingston  <jrl@ids.org.au>
7876         * shell/rb-shell-clipboard.c:
7877         (rb_shell_clipboard_set_source_internal): really fix it this time.
7878         hopefully.
7880 2006-03-03  James Livingston  <jrl@ids.org.au>
7882         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
7883         with the idle function not being removed.
7885 2006-03-02  James Livingston  <jrl@ids.org.au>
7887         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
7888         * widgets/rb-entry-view.h: add function for determining whether all
7889         entries are selected.
7891         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
7892         (rb_shell_clipboard_set_source_internal),
7893         (rb_shell_clipboard_finalize),
7894         (rb_shell_clipboard_idle_poll_deletions),
7895         (rb_shell_clipboard_entryview_changed_cb),
7896         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
7897         removals, to update things.
7899         (rb_shell_clipboard_sync): update the Select All and Select None
7900         sensitivity, based on what is selected. Fixed bug 172220.
7902 2006-03-02  James Livingston  <jrl@ids.org.au>
7904         * widgets/rb-library-browser.c: (rebuild_child_model): save and
7905         restore the selections of later models. This means that selecting the
7906         artist for the selected album does not reset the album selection.
7908 2006-03-02  James Livingston  <jrl@ids.org.au>
7910         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
7911         Stops it emitting critical warnings.
7913 2006-03-02  James Livingston  <jrl@ids.org.au>
7915         * lib/rb-file-helpers.c: (rb_uri_append_uri):
7916         * lib/rb-file-helpers.h: Add uri concatenation function for when the
7917         second fragment is already escaped.
7919         * sources/rb-generic-player-source.c:
7920         (rb_generic_player_source_class_init),
7921         (rb_generic_player_source_constructor), (impl_show_popup),
7922         (rb_generic_player_source_load_playlists),
7923         (rb_generic_player_source_transform_playlist_uri),
7924         (handle_playlist_entry_cb), (visit_playlist_dirs),
7925         (default_load_playlists), (default_transform_playlist_uri):
7926         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
7927         the device. Allow subclasses to override the playlist loading, and
7928         (playlist uri)->(actual uri) mapping. A lot of devices which have
7929         playlists won't work right now, but people will see them and hopefully
7930         file bugs.
7932         * sources/rb-psp-source.c: (rb_psp_source_class_init),
7933         (rb_psp_source_create_playlists): Adapt the PSP for the above change
7934         
7935         * sources/Makefile.am:
7936         + sources/rb-nokia770-source.{c,h}:
7937         * shell/rb-removable-media-manager.c:
7938         (rb_removable_media_manager_mount_volume): Add support for reading
7939         playlists of Nokia 770s.
7941 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7943         * data/glade/podcast-properties.glade:
7944         * podcast/rb-podcast-properties-dialog.c:
7945         (rb_podcast_properties_dialog_init),
7946         (rb_podcast_properties_dialog_update),
7947         (rb_podcast_properties_dialog_update_location),
7948         (rb_podcast_properties_dialog_update_download_location):
7949         Add 'download location' field showing the path to the downloaded copy.
7950         Fixes #330696.
7952 2006-03-01  Bastien Nocera  <hadess@hadess.net>
7954         * configure.ac: simplify HAVE_HAL define
7956 2006-03-01  Bastien Nocera  <hadess@hadess.net>
7958         * configure.ac:
7959         * lib/rb-file-helpers.c: (rb_uri_append_path):
7960         * lib/rb-file-helpers.h:
7961         * shell/rb-removable-media-manager.c:
7962         (rb_removable_media_manager_mount_volume):
7963         * sources/Makefile.am:
7964         * sources/rb-ipod-source.c:
7965         * sources/rb-psp-source.*:
7966         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
7967         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
7969 2006-03-02  James Livingston  <jrl@ids.org.au>
7971         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7972         (rb_shell_player_play), (rb_shell_player_jump_to_current),
7973         (swap_playing_source), (rb_shell_player_playpause),
7974         (rb_shell_player_sync_buttons), (actually_set_playing_source),
7975         (rb_shell_player_set_playing_source_internal): check for the entry
7976         view being NULL before trying to use it. Lets us support sources which
7977         don't have an entry view. From bug 331673.
7979 2006-03-01  Bastien Nocera  <hadess@hadess.net>
7981         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
7982         use gnome_vfs_read_entire_file with a URI, not a local filename
7984 2006-03-01  James Livingston  <jrl@ids.org.au>
7986         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
7987         first-seen and last-seen when merging duplicate entries.
7989 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7991         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
7992         * widgets/rb-property-view.h:  New function, allowing custom 
7993         interactive search functions for property views.
7994         
7995         * sources/rb-podcast-source.c: 
7996         (feed_select_change_cb): Only do a new query when the selection
7997         actually changes.
7998         (rb_podcast_source_constructor),
7999         (rb_podcast_source_feed_title_search_func):
8000         Interactive search function for podcast feed titles.  Fixes #327451.
8002 2006-03-01  James Livingston  <jrl@ids.org.au>
8004         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
8005         the uri in the callback, since it causes symbols to not be escaped.
8006         Fixes bug 332976.
8008         * data/ui/rhythmbox-ui.xml:
8009         * sources/rb-import-errors-source.c:
8010         (rb_import_errors_source_class_init),
8011         (rb_import_errors_source_constructor), (impl_get_status),
8012         (impl_move_to_trash),
8013         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
8014         import errors source
8015         
8016         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
8017         (rb_entry_view_append_column): unescape the URI for display.
8019 2006-03-01  James Livingston  <jrl@ids.org.au>
8021         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
8022         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
8023         function fails.
8025 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
8027         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
8028         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
8029         * sources/rb-play-queue-source.c:
8030         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
8031         (rb_play_queue_source_update_count):  Use "Play Queue" instead
8032         of "Queued Songs".
8034         Fixes #331637.
8036 2006-03-01  James Livingston  <jrl@ids.org.au>
8038         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
8039         Fixes bug 332913.
8041 2006-03-01  James Livingston  <jrl@ids.org.au>
8043         * daapsharing/rb-daap-mdns-browser-howl.c:
8044         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
8045         * daapsharing/rb-daap-mdns-publisher-avahi.c:
8046         (rb_daap_mdns_publisher_class_init),
8047         (rb_daap_mdns_publisher_finalize):
8048         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
8049         * player/rb-recorder-gst.c: (rb_recorder_class_init),
8050         (rb_recorder_finalize):
8051         * rhythmdb/rhythmdb-query-model.c:
8052         (rhythmdb_query_model_constructor):
8053         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
8054         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
8055         * sources/rb-playlist-source-recorder.c:
8056         (rb_playlist_source_recorder_style_set),
8057         (rb_playlist_source_recorder_class_init),
8058         (rb_playlist_source_recorder_finalize):
8059         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
8060         other classes in the same way, so they don't break when derived from.
8062 2006-03-01  James Livingston  <jrl@ids.org.au>
8064         * sources/rb-generic-player-source.c:
8065         (rb_generic_player_source_constructor): don't get the parent class in
8066         a dumb way, and it breaks when the class is derived from.
8068 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
8070         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
8072 2006-03-01  James Livingston  <jrl@ids.org.au>
8074         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
8075         not work in glib 2.8 systems.
8077 2006-03-01  James Livingston  <jrl@ids.org.au>
8079         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
8080         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
8081         say it is crap.
8083         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
8084         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
8085         podcasts on ion-local places
8087         * rhythmdb/gsequence.c: (g_sequence_node_new),
8088         (g_sequence_node_free): use gslice if we are building against glib
8089         2.10.
8091         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
8092         local files too, so it doesn't block.
8094 2006-02-28  James Livingston  <jrl@ids.org.au>
8096         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
8097         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
8098         stats the file. Stops the UI blocking while stats are done.
8100 2006-02-28  James Livingston  <jrl@ids.org.au>
8102         * sources/rb-static-playlist-source.c:
8103         (rb_static_playlist_source_class_init),
8104         (rb_static_playlist_source_constructor), (impl_reset_filters),
8105         (impl_get_property_views), (impl_browser_toggled),
8106         (rb_static_playlist_source_do_query),
8107         (rb_static_playlist_source_browser_changed_cb): add browsers to static
8108         playlists. From bug 118862.
8110         * sources/rb-play-queue-source.c:
8111         (rb_play_queue_source_class_init): disable them for the play queue.
8113 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
8115         * data/glade/library-prefs.glade:  Add a mnemonic.
8116         * sources/rb-library-source.c:
8117         (rb_library_source_location_button_clicked_cb):  Use title
8118         capitalization for window title.
8120 2006-02-28  James Livingston  <jrl@ids.org.au>
8122         * sources/rb-auto-playlist-source.c:
8123         (construct_query_from_selection): don't create a subquery for only one
8124         criteria, as it's a silly effifiency degredation.
8126 2006-02-28  James Livingston  <jrl@ids.org.au>
8128         * rhythmdb/rhythmdb.h:
8129         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8130         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
8131         saved to disk
8133         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
8134         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
8135         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
8136         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
8137         IGNORE (e.g. known video stream) create an entry of the Ignore type.
8138         This will make importing files quicker as we don't need to try files
8139         that we know are not going to be interesting - especially useful when
8140         using the library watching facility.
8142         Fixes bug 323179.
8144 2006-02-28  James Livingston  <jrl@ids.org.au>
8146         * shell/rb-shell.c: (rb_shell_constructor),
8147         (rb_shell_set_visibility): fix browser and source-list pane
8148         positioning, that I broke with the "remember visibility" patch.
8150 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8152         * metadata/rb-metadata-dbus-service.c: (main):
8153         Change argument handling so you can use --debug with the --load and
8154         --can-save test modes.
8155         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
8156         Use a separate GMainContext, not the default one.  Probably fixes
8157         #332344.
8159 2006-02-27  James Livingston  <jrl@ids.org.au>
8161         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
8162         first starting up. Fixes bug 330342.
8164 2006-02-27  James Livingston  <jrl@ids.org.au>
8166         * sources/rb-sourcelist-model.c:
8167         (rb_sourcelist_model_set_dnd_targets):
8168         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
8169         COPY action for draging sources and tracks, not MOVE as well. Stops
8170         Nautilus moving file away, and fixes bug 332488.
8172 2006-02-27  James Livingston  <jrl@ids.org.au>
8174         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
8176         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
8177         and Last Played metadata off iPods. Closes bug 324648.
8179 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8181         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
8182         Disable audioscrobbler when run with the --no-registration flag, since
8183         last.fm doesn't allow multiple concurrent clients per user.
8185 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8187         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
8188         Rename renamable sources when F2 is pressed when the sourcelist has
8189         focus.  Fixes #330700.
8191 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8193         * shell/rb-playlist-manager.c: (cleanup_edit_data),
8194         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
8195         (rb_playlist_manager_cmd_edit_automatic_playlist):
8196         Fix various crashes when deleting auto playlists previously edited
8197         by disconnecting signal handlers when the query editor is closed or
8198         the playlist is deleted.
8200 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8202         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
8203         removed load failure dialog, and actually use the friendly file type
8204         name in error messages.
8206 2006-02-24  James Livingston  <jrl@ids.org.au>
8208         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
8210         * sources/rb-library-source.c:
8211         (rb_library_source_location_button_clicked_cb),
8212         (rb_library_source_preferences_sync),
8213         (rb_library_source_library_location_cb): convert the library URI to
8214         for display, and back again. Fixes bug 332356.
8216 2006-02-23  James Livingston  <jrl@ids.org.au>
8218         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
8219         (rhythmdb_process_metadata_load), (monitor_subdirectory),
8220         (rhythmdb_sync_library_location): don't monitor files at all if
8221         watching is turned off. From bug 323096.
8223 2006-02-23  James Livingston  <jrl@ids.org.au>
8225         * data/rhythmbox.schemas:
8226         * lib/rb-preferences.h:
8227         * shell/rb-shell.c: (rb_shell_constructor),
8228         (rb_shell_set_visibility): remember main window visibility between
8229         sessions. Fixes bug 127320.
8231 2006-02-23  James Livingston  <jrl@ids.org.au>
8233         * data/glade/library-prefs.glade:
8234         * sources/rb-library-source.c: (impl_get_config_widget),
8235         (rb_library_source_location_button_clicked_cb),
8236         (rb_library_source_preferences_sync),
8237         (rb_library_source_library_location_cb),
8238         (rb_library_source_watch_toggled_cb): change the library-location
8239         widgets from the file-chooser drop menu to a text entry and Browse
8240         button. This is needed to prevent the location from chaning if the
8241         directory cannot be found. Fixes bug 328414.
8243 2006-02-23  James Livingston  <jrl@ids.org.au>
8245         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
8246         item. Fixes bug 329042.
8248 2006-02-23  James Livingston  <jrl@ids.org.au>
8250         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8252         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
8253         comma in some podcast feeds. Fixes bug 332194.
8255 2006-02-23  James Livingston  <jrl@ids.org.au>
8257         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
8258         lower priority.
8260         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
8261         the internal audio cd URIs from "cdda://device:track" to
8262         "cdda://track#device" as it makes processing much easier.
8264         * shell/rb-shell-player.c: (rb_shell_player_open_location):
8265         * player/rb-player-gst.c: don't have the shell close the player
8266         between songs, as doing that should be backend-specific. Make the
8267         gstreamer backend close before starting a new track, unless the old
8268         and new ones are both tracks on the same audio cd. Just seek in that
8269         case.
8271 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8273         * doc/reference/rhythmbox.types: Fix doc build a bit more.
8275 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8277         * configure.ac: Enable more warnings in my stupid setup too.
8278         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
8279         #332210.
8281 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8283         * sources/rb-missing-files-source.h,
8284         * sources/rb-missing-files-source.c,
8285         * sources/rb-import-errors-source.h,
8286         * sources/rb-import-errors-source.c:
8287         Add library meta-sources, showing missing files and import errors.
8288         Fixes #167763, #142322.
8290         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
8291         * sources/rb-sourcelist-model.h:
8292         * sources/rb-sourcelist.c: (rb_sourcelist_append),
8293         (match_source_to_iter), (rb_sourcelist_source_to_iter),
8294         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
8295         (visibility_notify_cb):
8296         Store source visibility in the sourcelist model, so we can determine
8297         child source counts correctly and get the sourcelist expander column
8298         right.
8299         
8300         * widgets/rb-entry-view.h:
8301         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8302         (rb_entry_view_append_column), (set_column_visibility):
8303         Allow the creator of the entry view to specify which columns are
8304         always visible.
8306         * sources/rb-source.h:
8307         * sources/rb-source.c: (_autohide_update_visibility),
8308         (_rb_autohide_source_row_deleted_cb),
8309         (_rb_autohide_source_row_inserted_cb),
8310         (_rb_source_hide_when_empty):
8311         Allow sources to automatically hide themselves when empty.
8312         
8313         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
8314         * sources/rb-library-source.c: (rb_library_source_constructor):
8315         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8316         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8317         Explicitly specify which columns are always visible.
8318         
8319         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
8320         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
8321         Remove load error signal handling and load failure dialog.
8322         Create missing files and import errors sources for the library.
8324         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
8325         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
8326         Create DB entries for import errors rather than emitting the 'load
8327         error' signal; mark loaded entries visible.
8328         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
8329         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
8330         (rhythmdb_prop_get_type): Store string form of last seen time for
8331         hidden entries, since it's used in the missing files source.
8332         (rhythmdb_entry_import_error_get_type): 
8333         Add entry type for import errors.
8334         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
8335         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
8336         (rhythmdb_entry_move_to_trash_set_error),
8337         (rhythmdb_entry_move_to_trash):  
8338         Correct spelling, add missing rhythmdb_commit.
8339         * rhythmdb/rhythmdb.h:  
8340         Add import error entry type and last seen string property.
8341         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
8342         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8343         (save_entry):  Ignore string form of 'last seen' property.
8345         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
8346         Don't try to play hidden entries or import error entries.
8348         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
8349         * sources/Makefile.am: Add meta-source files
8350         * widgets/Makefile.am: Remove load failure dialog files
8352 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8354         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8355         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
8356         few bits and pieces.
8358 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8360         * metadata/test-metadata.c: (load_metadata_cb):
8361         Fix compile warning for ignoring return value from getcwd, #332064.
8363 2006-02-21  James Livingston  <jrl@ids.org.au>
8365         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
8366         (edit_auto_playlist_deleted_cb),
8367         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
8368         playlist editor non-modal. Fixes bug 320030.
8370 2006-02-21  James Livingston  <jrl@ids.org.au>
8372         * shell/rb-shell.c: (rb_shell_constructor):
8373         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
8374         (rb_header_set_show_artist_album):
8375         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
8376         (rb_song_display_box_sync): make the queue sidebar and song display
8377         not get affected by gtk_widget_show_all. Fixes bug 332001.
8379 2006-02-21  James Livingston  <jrl@ids.org.au>
8381         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
8383         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
8384         feeds which use timezone names instead of offsets. Doesn't actually
8385         parse the timezone name since they are not standardised. Fixes bug
8386         331691.
8388 2006-02-21  James Livingston  <jrl@ids.org.au>
8390         * help/C/figures/rb-notification-area.png:
8391         * help/C/figures/rb-sidebar.png:
8392         * help/C/quick-reference.xml: remove obsolete files from CVS.
8394         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
8395         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
8396         (rhythmdb_query_free), (rhythmdb_query_serialize),
8397         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
8398         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
8400         * widgets/rb-query-creator-properties.c: add prefix and suffix
8401         (escapedStringCriteriaGetWidgetData): use better escaping, so it
8402         doesn't escape the ':' separator in uris.
8404 2006-02-21  James Livingston  <jrl@ids.org.au>
8406         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
8407         on startup.
8409 2006-02-21  James Livingston  <jrl@ids.org.au>
8411         * NEWS: update with recent changes
8413 2006-02-21  James Livingston  <jrl@ids.org.au>
8415         * shell/rb-shell.c: (rb_shell_constructor),
8416         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
8417         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
8418         (rb_druid_browse_clicked_cb), (do_response):
8419         * widgets/rb-druid.h: Make running the druid not block RBShell
8420         starting up. This is required so that bonobo registration doesn't time
8421         out. Fixed bug 318766.
8423 2006-02-21  James Livingston  <jrl@ids.org.au>
8425         * rhythmdb/rhythmdb-property-model.c:
8426         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
8427         hash table after using it, not before. Fixed bug 331922.
8429 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8431         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
8432         (rb_shell_view_queue_as_sidebar_changed_cb):
8433         When playing from the queue, only attempt to highlight the queue
8434         source in the source list if it's actually visible there.  Otherwise,
8435         leave the preempted source highlighted.  Mostly fixes #330819.
8437 2006-02-20  James Livingston  <jrl@ids.org.au>
8439         * rhythmdb/rhythmdb-property-model.c:
8440         (rhythmdb_property_model_row_inserted_cb),
8441         (rhythmdb_property_model_prop_changed_cb),
8442         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
8443         store the roperty value in the entry-mapping table, so that receiving
8444         the remove signal from a query model before we get notified of a
8445         change doesn't cause a crash. Fixes bug 331770.
8447 2006-02-20  James Livingston  <jrl@ids.org.au>
8449         * data/ui/rhythmbox-ui.xml:
8450         * sources/rb-play-queue-source.c:
8451         (rb_play_queue_source_class_init),
8452         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
8453         playlist things in the queue popup source. From 330490.
8455         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
8456         previous commit
8458 2006-02-20  James Livingston  <jrl@ids.org.au>
8460         * widgets/rb-song-info.c: (rb_song_info_response_cb),
8461         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
8462         attempt to sync data for non-editable entries when using
8463         next/previous. Don't write our Year if it wasn't changed. Fixes bug
8464         331762.
8466 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
8468         * .cvsignore:
8469         * Makefile.am:
8470         * autogen.sh:
8471         * configure.ac:
8472         * help/.cvsignore:
8473         * help/Makefile.am: ported to gnome-doc-utils
8474         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
8475         * help/ChangeLog: added, for translators
8476         * help/C/rhytmbox-C.omf: removed, no longer used
8477         Know issue: figures are installed, but some are not showed; manual
8478         description added, but not showed in Yelp while browsing. I'll
8479         investigate, maybe are needed some little changes to
8480         help/C/rhythmbox.xml.
8482 2006-02-20  James Livingston  <jrl@ids.org.au>
8484         * data/ui/rhythmbox-ui.xml:
8485         * help/C/figures/rb-adv.png:
8486         * help/C/figures/rb-asst-finish.png:
8487         * help/C/figures/rb-asst-library.png:
8488         * help/C/figures/rb-asst-start.png:
8489         * help/C/figures/rb-basic.png:
8490         * help/C/figures/rb-browser.png:
8491         * help/C/figures/rb-context-menu.png:
8492         * help/C/figures/rb-empty.png:
8493         * help/C/figures/rb-full-play.png:
8494         * help/C/figures/rb-group-auto.png:
8495         * help/C/figures/rb-group-create.png:
8496         * help/C/figures/rb-group.png:
8497         * help/C/figures/rb-imported.png:
8498         * help/C/figures/rb-iradio-add.png:
8499         * help/C/figures/rb-iradio.png:
8500         * help/C/figures/rb-nextprev.png:
8501         * help/C/figures/rb-nobrowse-play.png:
8502         * help/C/figures/rb-notification-area-menu.png:
8503         * help/C/figures/rb-player.png:
8504         * help/C/figures/rb-prefs-general.png:
8505         * help/C/figures/rb-prefs-ipod.png:
8506         * help/C/figures/rb-prefs-library.png:
8507         * help/C/figures/rb-prefs.png:
8508         * help/C/figures/rb-repeat.png:
8509         * help/C/figures/rb-search.png:
8510         * help/C/figures/rb-shuffle.png:
8511         * help/C/figures/rb-stats.png:
8512         * help/C/figures/rb-toolbar-editor.png:
8513         * help/C/figures/rb-volume-mute.png:
8514         * help/C/figures/rhythmbox-group.png:
8515         * help/C/figures/rhythmbox-tray-icon.png:
8516         * help/C/user-guide.xml: remove old stuff from cvs
8518 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8520         * metadata/rb-metadata-dbus-client.c: 
8521         * metadata/rb-metadata-dbus-service.c:
8522         * metadata/rb-metadata-dbus.c:
8523         * metadata/rb-metadata-dbus.h:
8524         New files, adding an external service for reading and writing
8525         metadata, and an implementation of the RBMetaData interface that uses
8526         dbus to communicate with it.
8527         
8528         * metadata/rb-metadata.h,
8529         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
8530         (rb_metadata_get_field_name): Put metadata details in a static array
8531         instead of using a hash table, and add a field for language code (not
8532         used for anything)
8533         * metadata/rb-metadata-gst.c: Updates for changes in
8534         rb-metadata-common.c, fix signal handler closure leak for the typefind
8535         element's have-type signal, and add XML to the list of types we ignore.
8536         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
8537         Update for changes to rb_metadata_get_field_type
8538         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
8539         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
8540         here and there.
8541         
8542         * configure.ac: Add --enable-metadata-helper option (not enabled by
8543         default) to use the external metadata service
8544         * metadata/Makefile.am: Add new files
8545         * metadata/test-metadata.c:  Test program for the metadata service
8547         Fixes #329597. 
8549 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8551         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
8552         * sources/rb-podcast-source.c: (impl_get_ui_actions),
8553         (rb_podcast_source_cmd_new_podcast):
8554         Move 'new podcast' action to the podcast source, and add it to the
8555         toolbar.  Fixes #331562.
8557 2006-02-19  James Livingston  <jrl@ids.org.au>
8559         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
8560         menus, and away from move-to-trash. Fixes bug 331013.
8562 2006-02-19  James Livingston  <jrl@ids.org.au>
8564         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
8565         when deleting last entry. Fixes bug 331712.
8567 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8569         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8570         (rb_entry_view_button_press_cb):
8571         * widgets/rb-entry-view.h: Emit show-popup when right clicked
8572         anywhere, and include a flag indicating whether the click was over an
8573         entry or not.
8574         
8575         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
8576         (rb_playlist_source_songs_show_popup_cb):
8577         * sources/rb-playlist-source.h:
8578         Add the 'over entry' flag to the class show popup method, and in the
8579         default handler, ignore right clicks when not over an entry.
8580         
8581         * sources/rb-iradio-source.c:
8582         (rb_iradio_source_songs_show_popup_cb):
8583         * sources/rb-library-source.c:
8584         (rb_library_source_songs_show_popup_cb):
8585         * sources/rb-podcast-source.c:
8586         (rb_podcast_source_songs_show_popup_cb):
8587         Show the source list popup menu when right clicked while not over an
8588         entry.
8590         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
8591         For the queue sidebar, always display the popup so the 'clear queue'
8592         action is available regardless of where you click.  For the queue
8593         source, only display the popup when right clicked over an entry.
8594         Fixes #331392.
8596 2006-02-19  James Livingston  <jrl@ids.org.au>
8598         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
8599         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
8600         entry view, when we're not even using it
8602         * rhythmdb/rhythmdb-property-model.c:
8603         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
8604         function, rather than a copy of the code.
8606         * shell/rb-playlist-manager.c:
8607         (rb_playlist_manager_playlist_row_inserted_cb),
8608         (rb_playlist_manager_set_source_internal),
8609         (rb_playlist_manager_playlist_entries_changed): use the query-model
8610         directly, rather than the source's entry view.
8612         * shell/rb-source-header.c: don't use the entry view, just select the
8613         source widget.
8615 2006-02-18  James Livingston  <jrl@ids.org.au>
8617         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8619         * help/C/figures/rb-iradio-main.png:
8620         * help/C/figures/rb-notification-area-menu.png:
8621         * help/C/figures/rb-notification-window.png:
8622         * help/C/figures/rb-notification-zone.png:
8623         * help/C/figures/rb-podcast-main.png:
8624         * help/C/figures/rb-statusbar.png:
8625         * help/C/figures/rb-toolbar-prevplaynext.png:
8626         * help/C/figures/rb-toolbar-repeat.png:
8627         * help/C/figures/rb-toolbar-shuffle.png:
8628         * help/C/figures/rb-toolbar.png:
8629         * help/C/figures/rb-volume-changer.png:
8630         * help/C/figures/rb-window-small.png:
8631         * help/C/figures/rb-window.png:
8632         * help/C/rhythmbox.xml: Update user guide with some of the changes
8633         that have occurred after 0.8.8. From bug 314001.
8635 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8637         * rhythmdb/rhythmdb-query-results.h,
8638           rhythmdb/rhythmdb-query-results.c:
8639         New interface for objects that accept query results from RhythmDB.
8641         * rhythmdb/rhythmdb-query-model.c:
8642         (rhythmdb_query_model_query_results_init),
8643         (rhythmdb_query_model_set_query),
8644         (rhythmdb_query_model_add_results),
8645         (rhythmdb_query_model_query_complete):
8646         * rhythmdb/rhythmdb-query-model.h:
8647         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
8649         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
8650         (rhythmdb_tree_do_full_query):
8651         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
8652         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
8653         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
8654         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
8655         * rhythmdb/rhythmdb.h:
8656         Pass query results through the RhythmDBQueryResults interface, rather
8657         than directly to a RhythmDBQueryModel.
8659         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
8660         (rb_podcast_manager_db_entry_deleted_cb):
8661         * sources/rb-auto-playlist-source.c:
8662         (rb_auto_playlist_source_do_query),
8663         (rb_auto_playlist_source_set_query):
8664         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
8665         * sources/rb-library-source.c: (rb_library_source_constructor),
8666         (rb_library_source_do_query):
8667         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8668         (rb_podcast_source_do_query):
8669         * rhythmdb/rhythmdb-property-model.c:
8670         (rhythmdb_property_model_drag_data_get):
8671         Cast the query model to RhythmDBQueryResults when passing to one of
8672         the RhythmDB query methods.
8674         * rhythmdb/Makefile.am: Add new files.
8676 2006-02-18  James Livingston  <jrl@ids.org.au>
8678         * data/ui/rhythmbox-ui.xml:
8679         * shell/rb-playlist-manager.c:
8680         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
8681         "queue playlist" item to source context menu. Fixes bug 330490.
8683 2006-02-18  James Livingston  <jrl@ids.org.au>
8685         * data/glade/general-prefs.glade:
8686         * shell/rb-shell-preferences.c:
8687         (rb_shell_preferences_column_check_changed_cb),
8688         (rb_shell_preferences_sync):
8689         * sources/rb-library-source.c: (rb_library_source_constructor):
8690         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8691         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
8692         (rb_entry_view_append_column): Add a "quality" colume which indicates
8693         the bitrate of media. Part of bug 167659.
8695 2006-02-18  James Livingston  <jrl@ids.org.au>
8697         * shell/rb-play-order.c: (do_next_idle_cb),
8698         (default_playing_entry_removed): move to next track when playing entry
8699         is deleted. Fixes bug 131150.
8701         * shell/rb-shell-player.h: remove ancient stuff
8703 2006-02-17  William Jon McCann  <mccann@jhu.edu>
8705         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
8706         (rb_shell_clipboard_set_property): 
8707         * shell/rb-shell.c (rb_shell_sync_party_mode):
8708         Trigger a resync of the clipboard properties when changing party mode.
8710 2006-02-17  William Jon McCann  <mccann@jhu.edu>
8712         * sources/rb-static-playlist-source.c: Fix includes.
8714         * sources/rb-source.c (rb_source_can_rename) 
8715         (rb_source_can_delete, rb_source_can_move_to_trash):
8716         Return FALSE if in party mode.
8718         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
8719         Replace fullscreen with party mode.
8720         (rb_shell_window_delete_cb): Don't quit if in party mode.
8721         (rb_shell_view_party_mode_changed_cb): Setup party mode.
8722         (window_state_event_cb): Try to deiconify shell when iconified
8723         in party mode.
8724         (rb_shell_sync_party_mode): Sync party mode properties.
8725         Currently, that means [de]sensitizing close, quit, and small-display,
8726         going into fullscreen mode with window stuck and kept above, and
8727         toggling queue-only for the shell player.
8728         (rb_shell_sync_smalldisplay): Sensitive party mode.
8729         (rb_shell_get_party_mode): Get party mode setting.
8731         * shell/rb-shell-player.c (rb_shell_player_class_init) 
8732         (rb_shell_player_set_property, rb_shell_player_get_property):
8733         Add queue-only property.
8734         (rb_shell_player_entry_activated_cb): If in party mode
8735         only queue the entry on activation.
8737         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
8738         Break out from set_properties.  Desensitize some actions when
8739         in party mode.
8740         (rb_playlist_manager_set_property): Break out set_source_internal.
8742         * data/rhythmbox.schemas: Remove fullscreen mode.
8744         * data/ui/rhythmbox-ui.xml: Replace fullscreen
8745         action with party mode.
8747         Partial fix for #323933
8749 2006-02-17  James Livingston  <jrl@ids.org.au>
8751         * configure.ac:
8752         * shell/rb-removable-media-manager.c:
8753         (get_nautilus_burn_drive_for_path),
8754         (rb_removable_media_manager_playing_uri_changed_cb): only use
8755         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
8756         over the list when it doesn't.
8758 2006-02-17  James Livingston  <jrl@ids.org.au>
8760         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
8761         (rb_iradio_source_first_time_changed): Only do the import on the
8762         first change from FALSE to TRUE.
8764         * sources/rb-library-source.c:
8765         (rb_library_source_preferences_sync),
8766         (rb_library_source_library_location_cb): set the first-run done flag
8767         if the user presses close and then sets their watches library
8768         location. Fixes bug 325997.
8770 2006-02-17  James Livingston  <jrl@ids.org.au>
8772         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
8773         removable media manager gobject properties
8775         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
8776         (split_drive_from_cdda_uri),
8777         (rb_removable_media_manager_playing_uri_changed_cb),
8778         (rb_removable_media_manager_load_media): stop polling a cd drive
8779         when we are playing from it. Part of bug 330716.
8781 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8783         * rhythmdb/rhythmdb-query-model.c:
8784         (rhythmdb_query_model_set_property),
8785         (rhythmdb_query_model_finalize),
8786         (rhythmdb_query_model_base_entry_removed):
8787         Propagate entry removal from base models out to attached property
8788         models.  Fixes the rest of #331165.
8790 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8792         * rhythmdb/rhythmdb-property-model.c:
8793         (rhythmdb_property_model_row_inserted_cb),
8794         (rhythmdb_property_model_prop_changed_cb),
8795         (rhythmdb_property_model_insert):
8796         Don't store NULL as a hash table value if we want to use
8797         g_hash_table_lookup to check if a key exists, and get the checks for
8798         how and whether to handle entry changes the right way around.
8799         Fixes #331211 and half of #331165.
8801 2006-02-16  James Livingston  <jrl@ids.org.au>
8803         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
8804         the audio cd's TOC in a separate thread, so it doesn't block the UI.
8805         Fixes bug 329942.
8807 2006-02-16  James Livingston  <jrl@ids.org.au>
8809         * widgets/rb-library-browser.c: (reset_view_cb): make View All
8810         actually reset the browsers.
8812 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8814         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
8815         Escape the strings we pass into libnotify so we don't get blank
8816         notifications when the song name contains '&' etc.  Fixes #330784.
8818 2006-02-16  James Livingston  <jrl@ids.org.au>
8820         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
8821         enable "View All" when there is only a search box and no browser.
8822         Fixes bug 331395.
8824 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8826         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
8827         popup menu, which I forgot to commit with the patch for bug #330014.
8829 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8831         * shell/rb-shell-player.c: (open_location_thread):
8832         Sync button and entry view state once we've started the player, so the
8833         entry view gets into the playing state for iradio.
8835 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8837         * shell/rb-shell-player.c: (open_location_thread):
8838         Take GDK lock before doing anything UI-related.
8840 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8842         * shell/rb-shell.c: Move 'new iradio station' action to
8843         iradio source.
8845         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
8846         (rb_iradio_source_init), (rb_iradio_source_finalize),
8847         (rb_iradio_source_constructor):
8848         Remove some unused stuff.
8850         (guess_uri_scheme), (rb_iradio_source_add_station),
8851         (rb_iradio_source_add_from_playlist),
8852         (impl_get_ui_actions), (new_station_location_added),
8853         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
8854         action, include it in the toolbar, and make sure the URI we add has a
8855         scheme.  Fixes #327059, more or less.
8857 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8859         * sources/rb-play-queue-source.c:
8860         (rb_play_queue_source_class_init),
8861         (rb_play_queue_source_constructor),
8862         (rb_play_queue_source_update_count),
8863         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
8864         Add a toolbar button to clear the play queue, and make it sensitive
8865         only when there are entries in the queue.  Fixes #330014.
8867         * sources/rb-source.c: (_rb_source_register_action_group):
8868         * sources/rb-source.h:  Add helper function to register an
8869         action group for a source.
8871         * sources/rb-library-source.c: (rb_library_source_constructor):
8872         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8873         (register_action_group):  Use _rb_source_register_action_group.
8875 2006-02-15  James Livingston  <jrl@ids.org.au>
8877         * widgets/rb-song-info.c: (rb_song_info_add_completion),
8878         (rb_song_info_constructor), (rb_song_info_set_property): make
8879         tag-editing completion work for albums too.
8881 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8883         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
8884         Check the 'limit' checkbox for time-limited playlists.
8886 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
8888         * widgets/rb-song-info.c: Prove text-completion when editing title,
8889         artist or album
8891 2006-02-14  James Livingston  <jrl@ids.org.au>
8893         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
8894         tray icon popup menu. Fixes bug 331026.
8896 2006-02-14  James Livingston  <jrl@ids.org.au>
8898         * data/iradio-initial.pls: update the Virgin Radio stations to use the
8899         Ogg Vorbis streams, instead of the MP3 ones.
8901 2006-02-14  James Livingston  <jrl@ids.org.au>
8903         * rhythmdb/rhythmdb-property-model.c:
8904         (rhythmdb_property_model_class_init),
8905         (rhythmdb_property_model_drag_data_get):
8906         * rhythmdb/rhythmdb-query-model.c:
8907         (rhythmdb_query_model_title_sort_func):
8908         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
8909         LOCATION as the key. Fixes bug 330601.
8911 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8913         * sources/rb-playlist-source.c: (playlist_iter_func):
8914         Make it compile with older versions of totem-plparser too.      
8916 2006-02-13  James Livingston  <jrl@ids.org.au>
8918         * rhythmdb/rhythmdb.h:
8919         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
8920         structure private, since things should use the accessor functions
8921         rather than manipulating it directly - Only RhythmDB and the
8922         implementation classes should access it directly. Part of the RhythmDB
8923         cleanup of bug 330226.
8925         * iradio/rb-station-properties-dialog.c:
8926         (rb_station_properties_dialog_update_title),
8927         (rb_station_properties_dialog_update_title_entry),
8928         (rb_station_properties_dialog_update_genre),
8929         (rb_station_properties_dialog_update_location),
8930         (rb_station_properties_dialog_update_play_count),
8931         (rb_station_properties_dialog_update_bitrate),
8932         (rb_station_properties_dialog_update_last_played),
8933         (rb_station_properties_dialog_update_rating),
8934         (rb_station_properties_dialog_update_playback_error),
8935         (rb_station_properties_dialog_sync_entries):
8936         * podcast/rb-feed-podcast-properties-dialog.c:
8937         (rb_feed_podcast_properties_dialog_update_title),
8938         (rb_feed_podcast_properties_dialog_update_title_label),
8939         (rb_feed_podcast_properties_dialog_update_author),
8940         (rb_feed_podcast_properties_dialog_update_location),
8941         (rb_feed_podcast_properties_dialog_update_copyright),
8942         (rb_feed_podcast_properties_dialog_update_language),
8943         (rb_feed_podcast_properties_dialog_update_summary):
8944         * podcast/rb-podcast-manager.c:
8945         (rb_podcast_manager_entry_downloaded),
8946         (rb_podcast_manager_db_entry_added_cb),
8947         (download_progress_update_cb),
8948         (rb_podcast_manager_db_entry_deleted_cb):
8949         * podcast/rb-podcast-properties-dialog.c:
8950         (rb_podcast_properties_dialog_update_title),
8951         (rb_podcast_properties_dialog_update_title_label),
8952         (rb_podcast_properties_dialog_update_feed),
8953         (rb_podcast_properties_dialog_update_location),
8954         (rb_podcast_properties_dialog_update_play_count),
8955         (rb_podcast_properties_dialog_update_bitrate),
8956         (rb_podcast_properties_dialog_update_last_played),
8957         (rb_podcast_properties_dialog_update_rating),
8958         (rb_podcast_properties_dialog_update_date),
8959         (rb_podcast_properties_dialog_update_description):
8960         * rhythmdb/rhythmdb-query-model.c:
8961         (rhythmdb_query_model_entry_changed_cb),
8962         (rhythmdb_query_model_remove_from_main_list),
8963         (rhythmdb_query_model_update_limited_entries),
8964         (rhythmdb_query_model_drag_data_get),
8965         (rhythmdb_query_model_album_sort_func):
8966         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8967         (save_entry):
8968         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
8969         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
8970         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
8971         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
8972         (rhythmdb_entry_get_double):
8973         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
8974         * shell/rb-play-order-random-by-age-and-rating.c:
8975         (rb_random_by_age_and_rating_get_entry_weight):
8976         * shell/rb-play-order-random-by-age.c:
8977         (rb_random_by_age_get_entry_weight):
8978         * shell/rb-play-order-random-by-rating.c:
8979         (rb_random_by_rating_get_entry_weight):
8980         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
8981         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
8982         (rb_shell_player_set_playing_entry),
8983         (rb_shell_player_sync_replaygain),
8984         (rb_shell_player_sync_with_source),
8985         (rb_shell_player_get_playing_song_duration), (info_available_cb):
8986         * sources/rb-playlist-source.c: (playlist_iter_func),
8987         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
8988         (rb_playlist_source_entry_added_cb):
8989         * sources/rb-podcast-source.c:
8990         (rb_podcast_source_post_status_cell_data_func):
8991         * sources/rb-source.c: (rb_source_update_play_statistics):
8992         * sources/rb-sourcelist-model.c:
8993         (rb_sourcelist_model_drag_data_get):
8994         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
8995         (rb_static_playlist_source_add_entry),
8996         (rb_static_playlist_source_remove_entry):
8997         * widgets/rb-entry-view.c: (type_ahead_search_func),
8998         (rb_entry_view_playing_cell_data_func),
8999         (rb_entry_view_rating_cell_data_func),
9000         (rb_entry_view_pixbuf_clicked_cb):
9001         * widgets/rb-header.c: (rb_header_get_duration):
9002         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
9003         (rb_song_info_populate_dialog),
9004         (rb_song_info_update_playback_error),
9005         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
9006         (rb_song_info_update_location), (rb_song_info_update_play_count),
9007         (rb_song_info_update_last_played), (rb_song_info_update_rating),
9008         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
9009         (rb_song_info_sync_entry_single): fix the huge number of times that
9010         the internals got accessed directly.
9012 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9014         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
9015         trash' are grouped together.
9016         * shell/main.c: (main): Pass no-registration flag in to RBShell
9017         constructor, rather than mysteriously always passing TRUE.
9018         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
9019         Set dirty flag when entries are removed from the model, so the play
9020         queue is marked dirty appropriately.
9021         * AUTHORS: update my email address
9023 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9025         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9027         * widgets/rb-druid.c: (path_dialog_response_cb):
9028         If the URI is local, don't display the 'file://' prefix.  
9029         Fixes #330919.
9031 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9033         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9034         Attach the notification to the tray icon widget, so libnotify
9035         positions it less badly.  Fixes #330876.
9037 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9039         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
9040         Reverse the selection list before returning it, so we get it in the
9041         right order.  Fixes #330283 and some other weirdness.
9043 2006-02-11  James Livingston  <jrl@ids.org.au>
9045         * shell/rb-shell.c: (rb_shell_constructor),
9046         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
9047         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9048         make small-mode and fullscreen mutually exclusive, since they don't
9049         work together
9051         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
9052         Mode.
9054 2006-02-10  James Livingston  <jrl@ids.org.au>
9056         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
9057         since it can cause it to be slower than real-time. Should fix bug
9058         322270.
9060 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9062         * rhythmdb/rhythmdb-query-model.c:
9063         (rhythmdb_query_model_set_property):
9064         Think just a little bit harder about that last commit.
9066 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9068         * rhythmdb/rhythmdb-query-model.c:
9069         (rhythmdb_query_model_set_property):
9070         Get the check for hidden entries the right way around.
9071         Fixes #330527, #330514.
9073         (rhythmdb_query_model_set_sort_order):
9074         Ignore no-op sort order changes, so we don't get critical
9075         messages when selecting 'all' in auto playlist browsers.
9077 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9079         Patch by: Christophe Fergeau  <teuf@gnome.org>
9081         * sources/rb-removable-media-source.c:
9082         (rb_removable_media_source_init),
9083         (rb_removable_media_source_constructor):
9084         Move icon setup code to the constructor, as the volume property
9085         haven't been set yet when _init is called.
9087 2006-02-09  William Jon McCann  <mccann@jhu.edu>
9089         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
9090         Make the source pixbuf a dynamic property.
9092         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
9093         (rb_source_set_pixbuf, rb_source_set_property) 
9094         (rb_source_get_property): Add icon property.
9096         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
9097         (rb_auto_playlist_source_init):
9098         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
9099         (rb_static_playlist_source_init):
9100         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
9101         (rb_removable_media_source_init): 
9102         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
9103         (rb_podcast_source_init): 
9104         * sources/rb-library-source.c (rb_library_source_class_init) 
9105         (rb_library_source_set_property, rb_library_source_get_property): 
9106         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
9107         (rb_iradio_source_init): Remove impl_get_pixbuf and
9108         set icon property on source base class.
9110         * sources/rb-daap-source.c (rb_daap_get_icon): Get
9111         a different icon for when the share is password protected
9112         and locked.
9113         (rb_daap_source_new): Set icon property.
9114         (composite_icons): Composite an emblem on a pixbuf.
9115         (create_pixbufs): Load global pixbufs.
9116         (destroy_pixbufs): unref global pixbufs.
9117         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
9118         (connection_auth_cb, connection_connected_cb) 
9119         (connection_disconnected_cb): Update icon when connection
9120         status changes.
9121         (rb_daap_source_activate): Connect signals.
9123         * daapsharing/rb-daap-share.c (name_collision_cb): Run
9124         dialog with parent.
9126         * daapsharing/rb-daap-marshal.list: Add new signal.
9128         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
9129         (rb_daap_collision_dialog_new_run): Set parent of dialog.
9131         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
9132         Add authenticate, connected, and disconnected signals.
9133         (connection_get_password): emit authenticate signal instead
9134         of running dialog directly.
9135         (connection_connected, connection_disconnected): Emit signals.
9136         (handle_login): Emit connected signal.
9137         (handle_logout): Emit disconnected signal.
9138         (rb_daap_connection_do_something): Fix leak.
9140         Fixes #330291
9142 2006-02-09  James Livingston  <jrl@ids.org.au>
9144         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
9145         entries from the base model if we don't have show-hidden set. Fixes
9146         bug 330514.
9148 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9150         * daapsharing/rb-daap-share.c (message_get_session_id):
9151         Ugh. Use strtoul instead of atoi.
9152         (session_id_validate): Add debug statements.
9154 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9156         * daapsharing/rb-daap-connection.c (http_response_handler):
9157         Report the actual uri from the message in debug statements.
9159 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9161         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
9162         Add context argument.
9163         (message_get_session_id): New function to parse session id from
9164         the message.
9165         (message_get_revision_number): Break out function to parse
9166         revision number from the message.
9167         (session_id_validate): New function to validate given session id
9168         is valid for given context (ie. client address).
9169         (session_id_generate): Generate a random session id.
9170         (session_id_create): Create a unique session id and store it.
9171         (session_id_remove): Remove a session id from the store.
9172         (login_cb): Create a session id instead of using a constant one.
9173         (logout_cb): Validate session id.
9174         (update_cb): Use new message_get_revision_number function.
9175         (databases_cb): Validate session id.
9176         (server_cb): Add server context to argument list for callbacks.  It
9177         is needed to look up the remote host.
9178         (db_entry_changed_cb): Use braces.
9179         (soup_auth_callback): Remove FIXME.
9180         (rb_daap_share_server_start): Create session id store.
9181         (rb_daap_share_server_stop): Destroy session id store.
9183         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
9184         Don't base64-encode password here since it needs to be
9185         combined with the username first.
9187         * daapsharing/rb-daap-connection.c (build_message):
9188         Add username to Authorization token.
9189         (handle_login, handle_song_listing) 
9190         (rb_daap_connection_do_something): Session id
9191         must be an unsigned int.
9193         Fixes #329814
9195 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9197         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9198         Don't check if we've got a playing entry, ask the player object (duh).
9199         Might actually fix #329993.     
9201 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9203         * sources/rb-static-playlist-source.c:
9204         (rb_static_playlist_source_add_list_uri):
9205         Canonicalise URIs before trying to add them to the playlist, and 
9206         don't try to add files to the database for which there is 
9207         already an entry.
9209 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9211         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9212         Don't ask the entry view if we're playing, just check if we've got a
9213         playing entry.  Fixes #329993.
9215 2006-02-08  James Livingston  <jrl@ids.org.au>
9217         * rhythmdb/rhythmdb-query-model.c:
9218         (rhythmdb_query_model_set_property),
9219         (rhythmdb_query_model_finalize),
9220         (rhythmdb_query_model_base_complete): remove
9221         rhythmdb_query_model_base_entry_prop_changed, so that two signals
9222         don't get emitted for entry changes. Fixes bug 330301.
9224         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
9225         (rb_library_browser_init), (rb_library_browser_constructor),
9226         (rb_library_browser_new): do stuff in the constructor, not the init
9227         function, so that the db property gets set on RBPropertyViews
9228         correctly. Fixes a crash when dragging properties to a playlist.
9230 2006-02-07  William Jon McCann  <mccann@jhu.edu>
9232         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
9233         Actually stop soup server.  Fixes #329816.
9235 2006-02-07  James Livingston  <jrl@ids.org.au>
9237         * lib/rb-util.h:
9238         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
9239         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
9240         (collate_values_cb), (rb_collate_hash_table_keys),
9241         (rb_collate_hash_table_values): add functions to compare, copy and
9242         free string-lists. add functions to collate the keys or values of a
9243         hash table into a list.
9245         * rhythmdb/rhythmdb-property-model.c:
9246         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
9247         (_remove_entry_cb), (_add_entry_cb),
9248         (rhythmdb_property_model_set_property),
9249         (rhythmdb_property_model_get_property),
9250         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
9251         (rhythmdb_property_model_row_inserted_cb),
9252         (rhythmdb_property_model_prop_changed_cb),
9253         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
9254         that are hidden, storing those that we have counted in a hash-table.
9256         * shell/Makefile.am: fix build order issue
9258         * shell/rb-shell-player.c: (rb_shell_player_set_property):
9259         * sources/rb-source.h:
9260         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9261         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9262         * sources/rb-podcast-source.c: (feed_select_change_cb): add
9263         browser-toggled method, rename _get_exta_views to _get_property_views,
9264         since several things depend on returning only that.
9266         * sources/rb-source.c: (rb_source_class_init),
9267         (rb_source_browser_toggled), (default_get_property_views),
9268         (rb_source_get_property_views), (rb_source_row_deleted_cb),
9269         (rb_source_gather_hash_keys),
9270         (rb_source_gather_selected_properties): above changes, and move some
9271         utility functions up from RBLibraryView
9273         * widgets/rb-property-view.c:
9274         (rb_property_view_selection_changed_cb): fix leak.
9276         * rhythmdb/rhythmdb-query-model.c:
9277         (rhythmdb_query_model_set_property),
9278         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
9279         (rhythmdb_query_model_set_sort_order),
9280         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
9281         query model being resorted.
9283         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
9284         NULL query.
9286         * rhythmdb/rhythmdb.h:
9287         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
9288         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
9289         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
9290         two queries. Add a function to append "property={X,Y,Z,...}" to a
9291         query.
9293         * sources/rb-library-source.c: (rb_library_source_class_init),
9294         (rb_library_source_finalize), (rb_library_source_constructor),
9295         (rb_library_source_cmd_choose_genre),
9296         (rb_library_source_cmd_choose_artist),
9297         (rb_library_source_cmd_choose_album), (impl_search),
9298         (impl_get_property_views), (impl_reset_filters),
9299         (rb_library_source_preferences_sync),
9300         (rb_library_source_browser_views_activated_cb),
9301         (rb_library_source_state_prefs_sync),
9302         (construct_query_from_selection), (rb_library_source_do_query),
9303         (rb_library_source_browser_changed_cb):
9304         * widgets/Makefile.am:
9305         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
9306         browser" widgets, which contains several property views, based on the
9307         code from RBLibrarySource. Make RBLibrarySource use it.
9309         * sources/rb-auto-playlist-source.c:
9310         (rb_auto_playlist_source_class_init),
9311         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
9312         (rb_auto_playlist_source_constructor), (impl_reset_filters),
9313         (impl_get_property_views), (impl_browser_toggled),
9314         (construct_query_from_selection),
9315         (rb_auto_playlist_source_do_query),
9316         (rb_auto_playlist_source_set_query),
9317         (rb_auto_playlist_source_browser_changed_cb): Use the new
9318         library-browser widget to add browsers to automatic playlists.
9320 2006-02-07  James Livingston  <jrl@ids.org.au>
9322         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
9323         properly.
9324         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
9325         type of the source is taken into account. Fixes bug 329621.
9327 2006-02-07  James Livingston  <jrl@ids.org.au>
9329         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9330         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
9331         1.1, and perform URI canonicalistion when first upgrading. This should
9332         fix our remaining canonicalisation issues, such as bug 329988.
9334 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9336         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
9337         Track the playing entry when the entry view isn't in the playing
9338         state, so we don't have to get the state changes exactly right.
9339         Fixes #330135.
9341 2006-02-06  James Livingston  <jrl@ids.org.au>
9343         * shell/rb-shell-player.c: (open_location_thread),
9344         (rb_shell_player_open_location): fix several iradio issues: having to
9345         press play after double-clicking on a station, not working correctly
9346         without a http:// prefix, and ignoring totem-plparser results other
9347         than success or error (e.g. IGNORE).
9349 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
9351         Addition of dbus methods for dealing with static playlists and the
9352         play queue.  Fixes #329958.
9354         * shell/Makefile.am:
9355         * shell/rb-playlist-manager.h:
9356         * shell/rb-playlist-manager.xml:
9357         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
9358         (rb_playlist_manager_get_playlists),
9359         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
9360         (rb_playlist_manager_create_static_playlist),
9361         (rb_playlist_manager_delete_playlist),
9362         (rb_playlist_manager_add_to_playlist),
9363         (rb_playlist_manager_remove_from_playlist),
9364         (rb_playlist_manager_export_playlist):
9365         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
9366         to create, delete, list, modify, export, and import  static playlists.
9367         
9368         * shell/main.c: (main): Register playlist manager object with dbus.
9370         * shell/rb-shell.h:
9371         * shell/rb-shell.xml:
9372         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
9373         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
9374         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
9375         object, and implement the addToQueue and removeFromQueue methods.
9376         
9377         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
9378         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
9379         formats.
9381 2006-02-05  James Livingston  <jrl@ids.org.au>
9383         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
9384         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
9385         (save_entry): allow storage of booleans in the on-disk db, and
9386         save/load the HIDDEN property.
9388         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
9389         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
9390         to the state it was when RB shutdown. This makes RB appear to start
9391         faster, as tracks can appear before the stat is done. Remote files
9392         still start hidden. From bug 325215.
9394 2006-02-05  James Livingston  <jrl@ids.org.au>
9396         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
9397         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
9398         really cares about the difference from "entry-added", and it isn't
9399         emitted by the tree backend anyway.
9401         * rhythmdb/rhythmdb-query-model.c:
9402         (rhythmdb_query_model_constructor):
9403         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9404         remove the references to the entry-restored signal.
9406 2006-02-05  James Livingston  <jrl@ids.org.au>
9408         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
9409         issue.
9411 2006-02-05  James Livingston  <jrl@ids.org.au>
9413         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
9414         things are NULL before using g_object_unref. Fixes bug 327452.
9416         * player/rb-recorder-gst.c: (rb_recorder_construct):
9417         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
9418         rather than assertion.
9420         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
9421         emit a warning, rather than asserting if an unknown playlist type is
9422         encountered.
9424 2006-02-05  James Livingston  <jrl@ids.org.au>
9426         * widgets/Makefile.am:
9427         * widgets/rb-simple-view.c:
9428         * widgets/rb-simple-view.h: Move the two features that this class
9429         provides into RBPropertyView, and remove this class. Closes bug
9430         327500.
9432         * podcast/rb-feed-podcast-properties-dialog.c:
9433         * podcast/rb-feed-podcast-properties-dialog.h:
9434         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9435         (rb_podcast_source_feeds_show_popup_cb):
9436         * sources/rb-podcast-source.h:
9437         * widgets/rb-property-view.c: (rb_property_view_class_init),
9438         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
9439         (rb_property_view_append_column_custom),
9440         (rb_property_view_button_press_cb):
9441         * widgets/rb-property-view.h: Updated for the above change.
9443 2006-02-04  James Livingston  <jrl@ids.org.au>
9445         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
9446         too close to Move to Trash and people aren't likely to use it often.
9448 2006-02-04  James Livingston  <jrl@ids.org.au>
9450         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
9452 2006-02-04  James Livingston  <jrl@ids.org.au>
9454         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
9455         passed a path instead of a URI.
9457         * sources/rb-generic-player-source.c: (default_get_mount_path):
9458         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
9459         the path. This fixes bug 329723.
9461 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
9463         * daapsharing/rb-daap-structure.c:
9464         (rb_daap_content_code_string_as_int32):
9465         Use network byte order.
9467 2006-02-03  William Jon McCann  <mccann@jhu.edu>
9469         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
9470         Use a hash for source lookup.
9471         (mdns_service_added, mdns_service_removed): Handle
9472         service-added and service-removed signals from RBDaapMdnsBrowser.
9473         (remove_source): GDestroyNotify function for when sources
9474         are removed from the hash.
9475         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
9476         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
9477         (rb_daap_sources_shutdown): Update.
9478         (source_host_find): GHRFunc for finding a source by ip.
9479         (rb_daap_source_find_for_uri): Use the hash source lookup.
9481         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
9482         Namespace keys.
9483         (password_check_button_toggled_cb): Handle password enabled.
9484         (share_name_entry_focus_out_event_cb): Namespace keys.
9485         Handle changes more robustly.
9486         (share_password_entry_focus_out_event_cb): Handle password entry.
9487         (add_daap_preferences): Connect to password signals.
9489         * lib/rb-preferences.h: Add DAAP keys.
9491         * data/glade/daap-prefs.glade: Add password UI.
9493         * data/rhythmbox.schemas: Add password keys.
9495         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
9496         assert with warning.
9498         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
9499         gconf keys to lib/rb-preferences.h.  Namespace
9500         the gconf keys.
9501         (create_share): Add password support.
9502         (enable_sharing_changed_cb): Namespaced keys.
9503         (require_password_changed_cb): Handle key change.
9504         (share_name_changed_cb): Namespaced keys.
9505         (share_password_changed_cb): Handle key change.
9506         (rb_daap_sharing_init): Namespaced keys.
9507         (rb_daap_sharing_shutdown): Ditto.
9509         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
9510         Add password property.
9511         (rb_daap_share_set_name): Break out prop set function.
9512         (published_cb): New RBDaapMdnsPublisher signal handler.
9513         (name_collision_cb): Ditto.
9514         (rb_daap_share_init): Create publisher object and
9515         connect to signals.
9516         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
9517         (rb_daap_share_set_property): Break out prop set functions.
9518         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
9519         Unref publisher.
9520         (rb_daap_share_new): Add password argument.  Start
9521         publishing and DAAP server.
9522         (message_set_from_rb_daap_structure): Change print to debug.
9523         (server_info_cb): Set auth method to publish.
9524         (logout_cb): Handle DAAP client logout.
9525         (update_cb): Remove C++ comments.
9526         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
9527         (server_cb): Add debug.
9528         (soup_auth_callback): Handle auth requests.
9529         (rb_daap_share_server_start): Split up functions for starting
9530         server and publishing.  Add auth handling to server.
9531         (rb_daap_share_server_stop): Split stop server and publish.
9532         No C++ comments.
9533         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
9534         Start and stop publishing.
9535         (rb_daap_share_restart): Restart server and publishing.
9536         (rb_daap_share_maybe_restart): Conditionally restart.
9538         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
9539         (rb_daap_collision_dialog_new_run): Don't use
9540         separators in dialogs.
9542         * daapsharing/rb-daap-connection.h: Add private
9543         data to class structure.
9545         * daapsharing/rb-daap-connection.c: Move
9546         some includes to top of file.  Make private
9547         data struct name consistent with others.
9548         (rb_daap_connection_class_init): Rename
9549         private.
9550         (rb_daap_connection_init): Get and store the pointer
9551         to the private data once instead of in every
9552         function.  Create a username value "Rhythmbox_VERSION".
9553         (connection_get_password): Don't get private.
9554         (build_message): Ditto.
9555         (http_response_handler): Don't init variables in
9556         declaration.  Add debug.  Spacing.
9557         (http_get, entry_set_string_prop, handle_server_info) 
9558         (handle_login, handle_update, handle_database_info) 
9559         (handle_song_listing, handle_playlists, handle_playlist_entries) 
9560         (rb_daap_connection_constructor, rb_daap_connection_logout) 
9561         (rb_daap_connection_state_done): Don't get private.
9562         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
9563         spacing.  Correctly base64 encode the Authentication token.
9564         Add username to auth token.
9565         (rb_daap_connection_get_playlists): Don't get private.
9566         (rb_daap_connection_dispose): Ditto.  Free username.
9567         (rb_daap_connection_set_property) 
9568         (rb_daap_connection_get_property): Don't get private.
9570         * daapsharing/Makefile.am: Conditionally
9571         compile MDNS backends.  Add marshall stuff.
9573         * daapsharing/.cvsignore: Update.
9575         * configure.ac: Add conditional to see which
9576         MDNS backend we should use.
9578         * daapsharing/rb-daap-mdns.[ch]: Removed files.
9580         * daapsharing/rb-daap-marshal.list:
9581         * daapsharing/rb-daap-mdns-browser-avahi.c:
9582         * daapsharing/rb-daap-mdns-browser-howl.c:
9583         * daapsharing/rb-daap-mdns-browser.h:
9584         * daapsharing/rb-daap-mdns-publisher-avahi.c:
9585         * daapsharing/rb-daap-mdns-publisher-howl.c:
9586         * daapsharing/rb-daap-mdns-publisher.h:
9587         Split rb-daap-mdns.c into two classes.  One for
9588         publishing and one for browsing.  Split out
9589         the avahi and howl backends into different files.
9591         Fixes #322966
9592         
9593 2006-02-04  James Livingston  <jrl@ids.org.au>
9595         patch by: Jan Schmidt <thaytan@mad.scientist.com>
9597         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
9598         crash if metadata reader gives us NULL for strings.
9600 2006-02-03  James Livingston  <jrl@ids.org.au>
9602         * shell/rb-shell-player.c: (open_location_thread),
9603         (rb_shell_player_open_location):
9604         retrieve iradio playlists files in a thread, so that with GStreamer
9605         0.10 the UI doesn't block while connecting to stations. The streamer
9606         connection is synchronous with 0.8, so that will still block (a bit).
9607         Fixed bug 128106.
9609         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
9610         because _open_entry does that automatically when it is ready to.
9612 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9614         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9615         (rb_podcast_source_post_status_cell_data_func):
9616         Leave the podcast status column blank for episodes that have not been
9617         downloaded.
9619 2006-02-03  James Livingston  <jrl@ids.org.au>
9621         Add support for source-specific toolbar items, and make the Burn
9622         Playlist item only available for playlists. Also add Update All
9623         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
9625         * data/ui/rhythmbox-ui.xml:
9626         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
9627         (impl_get_ui_actions): make the Burn CD toolbar item only for
9628         playlists
9630         * lib/rb-stock-icons.c: (rb_stock_icons_init):
9631         * lib/rb-stock-icons.h: load the Eject icon as stock.
9633         * shell/rb-removable-media-manager.c: use the eject icon for the eject
9634         action
9636         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
9637         (rb_shell_select_source):
9638         * sources/rb-source.c: (rb_source_class_init),
9639         (rb_source_disconnect), (default_get_ui_actions),
9640         (rb_source_get_ui_actions):
9641         * sources/rb-source.h: add support for source-specific toolbar items
9643         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
9644         Eject and Rip toolbar items
9646         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
9647         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
9648         item.
9650 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9652         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
9653         * shell/main.c: (main):
9654         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
9655         Replace all g_critical calls with g_warning, since none of them are
9656         the sort of thing the process should die over.  Fixes #329398.
9658 2006-02-03  James Livingston  <jrl@ids.org.au>
9660         * configure.ac: mention gst-plugins-base in the error message for not
9661         finding GStreamer 0.10, since not having that will cause it to fail.
9663 2006-02-03  James Livingston  <jrl@ids.org.au>
9665         * configure.ac: fix typo that means you get the wrong error message if
9666         you explicity request a particular playback engine, and it can't be
9667         found.
9669 2006-02-03  James Livingston  <jrl@ids.org.au>
9671         * data/glade/library-prefs.glade: allow the watched library location
9672         to be a non-local place.
9674 ============ Version 0.9.3
9677 2006-02-02  James Livingston  <jrl@ids.org.au>
9679         * NEWS: update NEWS
9680         * configure.ac: bump version to 0.9.3
9682         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
9683         <caillon@redhat.com>, fixed bug 329517. 
9685 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
9687         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
9689         * widgets/rb-song-info.c: (rb_song_info_constructor):
9690         Make year and disc number fields non-editable if tag editing
9691         is disabled.  Fixes #329463.
9693 2006-02-01  James Livingston  <jrl@ids.org.au>
9695         * rhythmdb/rhythmdb-property-model.c:
9696         (rhythmdb_property_model_row_inserted_cb),
9697         (rhythmdb_property_model_prop_changed_cb),
9698         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
9699         correctly. Fixes bug 327061.
9701         * rhythmdb/rhythmdb-query-model.c:
9702         (rhythmdb_query_model_entry_changed_cb): emit change notification of
9703         the HIDDEN property when an entry is removed for being hidden.
9705         * rhythmdb/rhythmdb-query-model.h:
9706         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9707         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
9708         models's "connected" property. Whatever it was needed for seems to
9709         have gone.
9711 2006-02-01  James Livingston  <jrl@ids.org.au>
9713         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
9715         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
9716         (rb_shell_player_playing_changed_cb): block the signal to prevent
9717         re-entrancy. Fixes bug 329329 and fixes the first click of the play
9718         button pausing.
9720 2006-02-01  James Livingston  <jrl@ids.org.au>
9722         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
9723         /should/ now work, if the neccessary plugins get ported.
9725 2006-01-30  James Livingston  <jrl@ids.org.au>
9727         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
9728         string properties to "Unknown" is the string is empty. Kind of fixes
9729         bug 327495.
9731         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
9732         gettext calls once, rather than once per time the function is used.
9733         This stops us making tens of thousands of gettext calls on startup,
9734         which reduces the cpu-time of startup by 10-20%
9736 2006-01-29  James Livingston  <jrl@ids.org.au>
9738         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
9739         (rhythmdb_add_uri):
9740         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
9741         for files containing known video streams.
9744 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9746         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
9747         required.
9749 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9751         * INSTALL.quick: More random updates
9753         * rhythmdb/rhythmdb-query-model.c:
9754         (rhythmdb_query_model_class_init),
9755         (rhythmdb_query_model_set_property),
9756         (rhythmdb_query_model_get_property),
9757         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
9758         Remove user sort data handling, take a property ID and a reverse
9759         flag instead.
9760         (rhythmdb_query_model_insert_into_main_list),
9761         (rhythmdb_query_model_insert_into_limited_list),
9762         (rhythmdb_query_model_do_reorder),
9763         (_reverse_sorting_func):
9764         Handle reverse sorting by calling _reverse_sorting_func, which
9765         calls the real sort function and reverses the result.
9766         (rhythmdb_query_model_set_sort_order):
9767         Allow this to be called to set the initial sort order for limited
9768         queries, and handle reverse sorting when reordering.
9769         (rhythmdb_query_model_location_sort_func),
9770         (rhythmdb_query_model_album_sort_func),
9771         (rhythmdb_query_model_artist_sort_func),
9772         (rhythmdb_query_model_genre_sort_func),
9773         (rhythmdb_query_model_track_sort_func),
9774         (rhythmdb_query_model_double_ceiling_sort_func),
9775         (rhythmdb_query_model_ulong_sort_func),
9776         (rhythmdb_query_model_date_sort_func),
9777         (rhythmdb_query_model_string_sort_func):
9778         Sort functions moved from rb-entry-view.c.
9779         * rhythmdb/rhythmdb-query-model.h:
9780         Add the sort functions, and update the changed functions.
9781         
9782         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
9783         Just call _resort_model when the query model is set, since it
9784         does all the same things.
9785         (rb_entry_view_append_column):
9786         Rework bits so the rating column doesn't have to be so much of a
9787         special case.
9788         (rb_entry_view_append_column_custom):
9789         Take a property ID to sort on, rather than arbitrary custom data.
9790         (rb_entry_view_resort_model):
9791         Query model does all the reverse sort handling now.
9792         * widgets/rb-entry-view.h: Update _append_column_custom.
9794         * sources/rb-play-queue-source.c:
9795         (rb_play_queue_source_constructor):
9796         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9797         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9798         (rb_podcast_source_post_date_cell_sort_func),
9799         (rb_podcast_source_post_status_cell_sort_func),
9800         (rb_podcast_source_post_feed_cell_sort_func):
9801         Updates required by all the other changes.
9803         * rhythmdb/rhythmdb-property-model.c:
9804         (rhythmdb_property_model_drag_data_get):
9805         Sort the query results on the selected property,
9806         so they arrive in the expected order.  All the other changes were made
9807         to make this possible.  Fixes bug #327494.
9809 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9810         
9811         * shell/rb-shell-clipboard.c:
9812         Use GTK_STOCK_REMOVE icon for the remove action in
9813         the play queue too.
9815 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9817         * sources/rb-play-queue-source.c:
9818         (rb_play_queue_source_constructor),
9819         (rb_play_queue_source_update_count):
9820         Don't make the 'queued songs' column clickable,
9821         and add the queued song count to the column title.
9823 2006-01-29  James Livingston  <jrl@ids.org.au>
9825         * configure.ac: remove "experimental" marking from DAAP, and enable by
9826         default if the dependencies are found.
9828 2006-01-29  James Livingston  <jrl@ids.org.au>
9830         * NEWS: update NEWS
9832 2006-01-29  James Livingston  <jrl@ids.org.au>
9834         patch by: William Jon McCann  <mccann@jhu.edu>
9836         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9837         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
9838         property used for the feed list. Fixes problem with feeds with no
9839         episodes not showing up.
9841 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9842         
9843         * shell/rb-play-order-random-by-age-and-rating.c:
9844         (rb_random_by_age_and_rating_get_entry_weight):
9845         Fix compile errors, bug #328978.
9847 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
9849         * INSTALL.quick, README: Random updates
9850         * README.lirc: Add notes on controlling Rhythmbox with LIRC
9852 2006-01-28  James Livingston  <jrl@ids.org.au>
9854         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
9855         default rating back to 0 (from 2.5, which was needed for autorating).
9857         * shell/rb-play-order-random-by-age-and-rating.c:
9858         (rb_random_by_age_and_rating_get_entry_weight):
9859         * shell/rb-play-order-random-by-rating.c:
9860         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
9861         2.5 for the purposes of weighting entries.
9863 2006-01-28  James Livingston  <jrl@ids.org.au>
9865         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
9866         translator comments, to make it clearer what the "friendly time"
9867         formatting strings mean.
9869 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
9871         * daapsharing/rb-daap-connection.c: (http_response_handler):
9872         Fix the sense of the overflow check so it'll accept valid input.
9874 2006-01-27  James Livingston  <jrl@ids.org.au>
9876         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
9878         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
9879         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
9881 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
9883         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
9884         
9885         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
9886         Don't include the artist field in the window title if it's blank.
9887         Fixes #325973.
9889 2006-01-26  William Jon McCann  <mccann@jhu.edu>
9891         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
9892         Use stock delete icon for move to trash and stock remove
9893         for remove menu item.
9895 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
9897         * shell/rb-shell.c: (rb_shell_constructor),
9898         (idle_handle_load_complete):  Don't start the playlist save
9899         timeout until we've loaded the playlists, otherwise we'll
9900         write an empty playlist file if startup takes too long.
9902 2006-01-25  William Jon McCann  <mccann@jhu.edu>
9904         * shell/rb-shell.c: Make view toolbar toggle use
9905         shift+ctrl+t.  Fixes #327585.
9907 2006-01-25  James Livingston  <jrl@ids.org.au>
9909         patch by: Christope Fergeau  <teuf@gnome.org>
9911         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
9912         (http_response_handler): fix a potential buffer overflow issue.
9914 2006-01-25  James Livingston  <jrl@ids.org.au>
9916         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
9917         Year column wide enough to display "Unknown"
9919 2006-01-25  James Livingston  <jrl@ids.org.au>
9921         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9922         (rb_podcast_source_post_status_cell_data_func): make the episode
9923         status wording better. Part of bug 321607.
9925 2006-01-25  James Livingston  <jrl@ids.org.au>
9927         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
9928         others with a separator.
9930         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
9931         stock Delete icon.
9933 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
9935         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
9937 2006-01-23  James Livingston  <jrl@ids.org.au>
9939         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
9940         0.3.2. Fixed bug 328158.
9942 2006-01-23  James Livingston  <jrl@ids.org.au>
9944         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
9945         (gulong_gst_date_transform), (rb_metadata_class_init):
9946         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
9948 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
9950         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
9951         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
9952         (record_entry_change): Protect added_entries and changed_entries with
9953         a mutex, so it doesn't crash on startup on SMT/SMP machines.
9955 2006-01-23  James Livingston  <jrl@ids.org.au>
9957         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
9958         the browser for audio CDs.
9960 2006-01-22  James Livingston  <jrl@ids.org.au>
9962         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
9963         NEVER_FAIL as it causes the daemon-not-running error to never be
9964         reported, resulting in bug 319438 re-occurring.
9966 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
9968         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
9969         Just call the podcast manager's update method.  Unbreaks the 'update
9970         all feeds' command.
9972 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
9974         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
9976 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
9978         * configure.ac: Don't disable DAAP with gstreamer 0.10
9980         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
9981         (rb_daap_src_class_init), (rb_daap_src_init),
9982         (rb_daap_src_finalize), (rb_daap_src_set_property),
9983         (rb_daap_src_get_property), (rb_daap_src_write),
9984         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
9985         (_split_uri), (rb_daap_src_open):
9986         * daapsharing/rb-daap-src.h:
9987         Mostly fix seeking, handle chunked transfer encoding, and port to
9988         gstreamer 0.10.
9989         
9990         * player/rb-player-gst.c:
9991         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
9992         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
9994         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
9995         being fixed.
9997 2006-01-21  James Livingston  <jrl@ids.org.au>
9999         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
10000         for Year metadata in DAAP sources. Fixes bug 327700.
10002         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10004 2006-01-20  William Jon McCann  <mccann@jhu.edu>
10006         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
10007         enum values instead of magic numbers.
10009         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
10010         Add number of songs that match each property title into
10011         the cell.  Also show the number of properties that match
10012         in the All entry.
10013         (rb_property_view_constructor): Use enum values instead of
10014         magic numbers.
10016         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
10017         Query podcast posts instead of feeds for browser.  Use
10018         post SUBTITLE which is the location for the property view.
10019         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
10020         (construct_query_from_selection) 
10021         (rb_podcast_source_cmd_delete_feed) 
10022         (rb_podcast_source_cmd_properties_feed) 
10023         (rb_podcast_source_cmd_update_feed): Use variable to make
10024         it clear what the selection data represents.
10025         (rb_podcast_source_feed_title_cell_data_func): Add number
10026         of posts that belong to each feed in the browser.
10028         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
10029         (rhythmdb_property_model_delete_prop): Decrement the refcount
10030         for the All entry.
10031         (rhythmdb_property_model_get_column_type): Use column enum
10032         values instead of magic numbers.  Add NUMBER column.
10033         (rhythmdb_property_model_get_value): Use enum.
10034         Add NUMBER column that represents the refcount for
10035         the title of that property.
10036         (rhythmdb_property_model_perform_sync): Don't fake up
10037         a title for All here.
10039         Fixes #327372.
10040         
10041 2006-01-21  James Livingston  <jrl@ids.org.au>
10043         Make Rhythmbox start faster by not blocking the UI while database
10044         initialisation and loading occurs. Closes bug 323348.
10046         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
10047         start 10 seconds later instead of immediately.
10048         
10049         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
10050         safe to call from any thread.
10052         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
10053         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
10054         so the UI doesn't block.
10056 2006-01-18  James Livingston  <jrl@ids.org.au>
10058         * sources/rb-static-playlist-source.c:
10059         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
10060         cause crashes. Oops. fixes bug 327477.
10062 2006-01-17  William Jon McCann  <mccann@jhu.edu>
10064         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
10065         Set GST element state to NULL before unreffing.
10066         Fixes #327422.
10068 2006-01-18  James Livingston  <jrl@ids.org.au>
10070         * sources/rb-static-playlist-source.c:
10071         (rb_static_playlist_source_do_query): don't filter on the SONG entry
10072         type, since the playlists can contain non-song entries. Fixes bug
10073         327448.
10075         * sources/rb-play-queue-source.c:
10076         (rb_play_queue_source_class_init): disable the search box for the
10077         queue.
10079 2006-01-18  James Livingston  <jrl@ids.org.au>
10081         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
10082         dragging of podcast episodes. Fixed bug 327450.
10084 2006-01-18  James Livingston  <jrl@ids.org.au>
10086         * rhythmdb/rhythmdb-query-model.c:
10087         (rhythmdb_query_model_drag_data_received): fix possible assertion when
10088         dragging to an emoty playlist.
10090 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
10092         * sources/rb-playlist-source-recorder.c:
10093         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
10095 2006-01-17  James Livingston  <jrl@ids.org.au>
10097         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10099         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
10100         different number of tracks than exist on the cd, since that happens
10101         with audio+data hybrid CDs. Part of bug 325046.
10103 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
10105         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10106         Remove useless call to gtk_tree_view_column_set_clickable().
10108         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
10109         Don't store sort data for columns if the sort function is NULL,
10110         so only sortable columns will be in the column sort data map.
10111         (rb_entry_view_set_columns_clickable): Only make columns we can sort
10112         on clickable.
10113         (rb_entry_view_constructor):  The 'playing icon' column is never
10114         clickable, so don't connect a signal handler for it.
10116         Fixes bug 326811.
10118 2006-01-17  James Livingston  <jrl@ids.org.au>
10120         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
10121         are 0.8 only. Fix element detection.
10123         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
10124         saving the new metadata failed
10126 2006-01-17  James Livingston  <jrl@ids.org.au>
10128         * shell/rb-shell-player.c: (do_next_idle),
10129         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
10130         (eos_cb): release audio device when a playlist finishes. Fixes bug
10131         323679.
10133 2006-01-17  James Livingston  <jrl@ids.org.au>
10135         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
10136         canonicalise the URIs when things are added via library watching.
10138 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10140         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10141         Off by one error in default speed index.
10143 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10145         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
10146         (update_speed_combobox, update_speed_combobox):
10147         Get a list of the actually supported write speeds from
10148         n-c-b >= 2.13.90.  Otherwise use fallback list.
10150 2006-01-17  James Livingston  <jrl@ids.org.au>
10152         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
10153         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
10154         don't get stuck on recursive symlinks. Fixed bug 125452.
10156 2006-01-17  James Livingston  <jrl@ids.org.au>
10158         Add support for mass-storage audio players. Players are detected via
10159         either the HAL "audio_player" capability, or a ".is_audio_player" file
10160         in the root of the volume. Closes bug 325602.
10162         * configure.ac: separate using HAL from ipod support.
10164         * lib/rb-file-helpers.c: (rb_uri_is_local):
10165         * lib/rb-file-helpers.h: add function to determine whether a URI is
10166         local.
10168         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10169         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
10170         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
10171         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
10172         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
10173         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
10174         directories can be scanned for files to add as  non-SONG entries.
10176         * shell/rb-removable-media-manager.c:
10177         (rb_removable_media_manager_mount_volume): add checking for
10178         mass-storage players.
10180         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
10181         * sources/rb-ipod-source.c: (rb_ipod_source_new),
10182         (hal_udi_is_ipod):
10183         * sources/rb-removable-media-source.c:
10184         (rb_removable_media_source_class_init),
10185         (rb_removable_media_source_constructor): move some things up to the
10186         RBRemovableMediaSource, rather than making subclasses do it.
10188         * sources/Makefile.am:
10189         * sources/rb-generic-player-source.c:
10190         * sources/rb-generic-player-source.h: add mass-storage player source.
10192 2006-01-16  James Livingston  <jrl@ids.org.au>
10194         patch by: William Jon McCann  <mccann@jhu.edu>
10196         * rhythmdb/rhythmdb-query-model.c:
10197         (rhythmdb_query_model_base_row_deleted): fix build issue from last
10198         commit.
10200 2006-01-16  James Livingston  <jrl@ids.org.au>
10202         Patch to add support for "chained queries" and putting hidden tracks
10203         in query models. Use chained queries to add search box support to
10204         normal playlists, and to make hidden entries not get lost. Fixes bug
10205         319278.
10207         * rhythmdb/rhythmdb-query-model.h:
10208         * rhythmdb/rhythmdb-query-model.c:
10209         (rhythmdb_query_model_class_init),
10210         (rhythmdb_query_model_set_property),
10211         (rhythmdb_query_model_get_property):
10212         (rhythmdb_query_model_finalize): add "show-hidden" and
10213         "base-model" properties.
10215         (rhythmdb_query_model_set_connected),
10216         (rhythmdb_query_model_has_pending_changes),     
10217         (rhythmdb_query_model_entry_added_cb),
10218         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
10219         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
10220         (rhythmdb_query_model_remove_entry),
10221         (rhythmdb_query_model_drag_data_received),
10222         (rhythmdb_query_model_base_row_inserted),
10223         (rhythmdb_query_model_base_row_deleted),
10224         (rhythmdb_query_model_base_non_entry_dropped),
10225         (rhythmdb_query_model_base_complete),
10226         (rhythmdb_query_model_base_entry_prop_changed),
10227         (rhythmdb_query_model_base_rows_reordered),
10228         (rhythmdb_query_model_row_drop_possible): handle base-model by
10229         chaining events and operations where necessary. Make hidden entries
10230         not get added only if "show-hidden" is false.
10232         (rhythmdb_query_model_child_index_to_base_index),
10233         (rhythmdb_query_model_base_index_to_child_index),
10234         (rhythmdb_query_model_get_entry_index): utility functions for handling
10235         base-model entries.
10237         (rhythmdb_query_model_reapply_query): apply the current query, and
10238         remove entries that don't match it.
10240         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
10241         empty queries.
10243         * sources/rb-source.c: (rb_source_set_property): move the unref later
10244         to fix problem if it is the last reference.
10246         * sources/rb-static-playlist-source.c:
10247         (rb_static_playlist_source_class_init),
10248         (rb_static_playlist_source_init),
10249         (rb_static_playlist_source_finalize),
10250         (rb_static_playlist_source_constructor), (impl_reset_filters),
10251         (impl_search), (rb_static_playlist_source_do_query),
10252         (impl_save_contents_to_xml),
10253         (rb_static_playlist_source_add_location_internal): use a chained query
10254         model to filter out hidden entries and implement the search box.
10256 2006-01-15  James Livingston  <jrl@ids.org.au>
10258         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
10259         the default playlist loading, which I broke earlier.
10261 2006-01-15  James Livingston  <jrl@ids.org.au>
10263         patch by: William Jon McCann  <mccann@jhu.edu>
10265         * sources/rb-playlist-source.c: (playlist_iter_func): use
10266         totem-plparser's new API version macros to check for API changes.
10267         Handle the recent API change.
10269 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10271         * sources/rb-library-source.c: (impl_get_config_widget):
10272         Ref the preferences object to match the unref in the
10273         finalizer.  Fixes some portion of #323505.
10275 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10277         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
10278         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
10279         Fix valgrind warnings about accessing uninitialised values.
10281 2006-01-14  William Jon McCann  <mccann@jhu.edu>
10283         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
10285 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10287         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
10288         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
10289         Stops the 'now playing' icon from being displayed after the play
10290         order finishes.
10292 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10294         * podcast/rb-podcast-manager.c:
10295         (rb_podcast_manager_db_entry_deleted_cb):
10296         Don't try to delete files we never downloaded, and cancel downloads
10297         for deleted episodes.  Fixes bug #326862.
10298         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
10299         Don't complain about NULL data items in the selection list.
10301 2006-01-14  James Livingston  <jrl@ids.org.au>
10303         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
10304         Make the name ofthe queue non editable. Fixes bug 326918.
10306 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10308         * sources/rb-playlist-source-recorder.c (burn_cd) 
10309         (ask_rewrite_disc): Don't use our locally copied functions
10310         if we have at least 2.13.
10312 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10314         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
10315         Correct the argument type for the process_error signal.
10316         May fix bug #323154.
10318 2006-01-13  James Livingston  <jrl@ids.org.au>
10320         save the queue to disk when exiting, and reload on startup. Fixed bug
10321         326677 .
10323         * shell/rb-playlist-manager.c:
10324         (rb_playlist_manager_load_playlists),
10325         (rb_playlist_manager_save_playlists_async): don't disable saving of
10326         the queue
10328         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
10329         add the queue source as a gobject property.
10331         * sources/rb-play-queue-source.c:
10332         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
10333         code to save the queue to xml
10335         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10336         load the queue from xml.
10337         * sources/rb-playlist-xml.h:
10339         * sources/rb-static-playlist-source.c:
10340         (rb_static_playlist_source_load_from_xml),
10341         (rb_static_playlist_source_new_from_xml):
10342         * sources/rb-static-playlist-source.h: split the playlist xml loading
10343         from the static playlist creation function, so the queue can use it.
10345 2006-01-13  James Livingston  <jrl@ids.org.au>
10347         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
10348         assertion that should be there. Fixes bug 325923.
10349         
10350         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
10351         return NULL if the entry already exists (e.g. as another type).
10352         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10353         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
10354         (rb_podcast_manager_insert_feed):
10355         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
10356         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
10357         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
10358         for the above function returning NULL.
10360 2006-01-12  James Livingston  <jrl@ids.org.au>
10362         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
10363         is enabled. Fixes bug 326673.
10364         
10365         * doc/reference/tmpl/eggtrayicon.sgml:
10366         * doc/reference/tmpl/rb-daap-src.sgml:
10367         * doc/reference/tmpl/rb-source.sgml:
10368         * doc/reference/tmpl/rb-statusbar.sgml:
10369         * doc/reference/tmpl/rb-tree-model-sort.sgml:
10370         * doc/reference/tmpl/rhythmbox-unused.sgml:
10371         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
10373 2006-01-11  James Livingston  <jrl@ids.org.au>
10375         * widgets/rb-song-info.c: (rb_song_info_constructor),
10376         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
10377         (rb_song_info_populate_dialog): fill in the fields if all tracks have
10378         the same value for properties. From bug 326054.
10380 2006-01-11  James Livingston  <jrl@ids.org.au>
10382         * sources/rb-source.h:
10383         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
10384         (rb_shell_player_set_playing_source_internal), (eos_cb):
10385         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
10386         every entry.
10388         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
10389         source use this. Closes bug 322077.
10391 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10393         * widgets/eggtrayicon.c (egg_tray_icon_notify):
10394         In order for set_icon_data_from_pixbuf() to be
10395         effective, one must not set an icon in _new().
10397 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10399         * widgets/eggtrayicon.c (egg_tray_icon_init) 
10400         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
10401         (egg_tray_icon_notify): Add support for libnotify 0.3.
10402         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
10403         * configure.ac: Determine the version of libnotify.
10404         Fixes #326333.
10406 2006-01-08  James Livingston  <jrl@ids.org.au>
10408         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
10409         trying to share a track with unknown length.
10411 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10413         * shell/rb-shell-player.c: (rb_shell_player_init):
10414         Sync volume on startup so it doesn't default to 0.
10416 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10418         * shell/rb-shell-player.c: (rb_shell_player_class_init),
10419         (rb_shell_player_get_property), (rb_shell_player_open_location),
10420         (info_available_cb):  Add the iradio streamed song title as a
10421         property, and emit a signal when it changes.
10423         * shell/rb-shell.c: (rb_shell_constructor),
10424         (rb_shell_player_elapsed_changed_cb),
10425         (rb_shell_player_stream_song_changed_cb):
10426         Issue a notification when the iradio song title changes.
10427         Fixes #326166.
10429 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10431         * shell/rb-shell-player.c: (rb_shell_player_init),
10432         (rb_shell_player_finalize), (rb_shell_player_set_property),
10433         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
10434         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
10435         (rb_shell_player_set_volume_relative),
10436         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
10437         (rb_shell_player_get_mute):
10438         * shell/rb-shell-player.h:
10439         * shell/rb-shell-player.xml:
10440         Store volume as a property on RBShellPlayer, rather than in gconf.
10441         Add some methods to control volume via dbus.
10443         * shell/rb-shell.c: (rb_shell_constructor),
10444         (rb_shell_volume_widget_changed_cb),
10445         (rb_shell_player_volume_changed_cb):
10446         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
10447         Update volume using player properties rather than gconf, and sync the
10448         volume with the volume control button when something else changes it.
10449         Fixes #323840.
10451 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10453         * shell/rb-tray-icon.c (tray_popup_position_menu):
10454         Make tray menu align with edge of panel.
10456         patch from Jaap A. Haitsma <jaap@haitsma.org>
10457         Fixes #319913
10459 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10460         * shell/rb-shell.c (sourcelist_drag_received_cb): 
10461         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
10462         (rb_playlist_manager_new_playlist_from_selection_data):
10463         Make a reasonable default name for playlists created from
10464         dropped data.  Fixes #326116.
10466 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10468         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10469         Use new gconf key.
10470         (burn_cd): Always eject CD after burning.  Too many drives
10471         get confused if we don't.  Save the speed used if the burn
10472         was completed successfully.
10474         * data/rhythmbox.schemas: Use our own speed instead of from
10475         n-c-b. The situation is that the default_speed for n-c-b is most
10476         likely the maximum write speed.  This is fine for n-c-b because it
10477         has burn-proof turned on.  We can't turn it on for audio CDs
10478         because the results are poor in quality.  So we'll just pick a
10479         default that should work for everyone (4).
10481 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10482         
10483         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
10484         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
10486 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10488         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
10489         in my previous commit.  Fixes #326037.
10491 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
10493         patch by: Jonathan Matthew
10495         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
10496         error on Fedora Rawhide.
10498 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10500         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
10501         Assume HTTP URLs ending with .xml or .rss are podcasts.
10502         (rb_shell_add_uri): Handle adding podcast feeds.
10504         * sources/rb-podcast-source.c: (rb_podcast_source_new):
10505         Register as the source for podcast feeds.
10507 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10509         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
10510         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
10511         (rb_shell_preferences_append_view_page):
10512         * shell/rb-shell-preferences.h:
10513         Fix typo in function name.  Fixes #325992.
10515 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10517         * shell/rb-audioscrobbler.c:
10518         Add '+' to the list of characters to URI-encode, so it doesn't get
10519         interpreted as a space.
10521 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10523         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
10524         (rb_daap_connection_do_something):  Don't crash if the DAAP server
10525         goes away while we're still trying to log in.
10527 2006-01-06  James Livingston  <jrl@ids.org.au>
10529         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
10531 2006-01-06  James Livingston  <jrl@ids.org.au>
10533         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
10534         support for Year to automatic playlists. Closes bug 321341.
10536         * rhythmdb/rhythmdb-query-model.c:
10537         (rhythmdb_query_model_set_property):
10538         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
10539         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
10540         (rhythmdb_query_free), (rhythmdb_query_serialize),
10541         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
10542         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
10543         * rhythmdb/rhythmdb.h: Support special
10544         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
10545         year in date.
10547         * widgets/rb-query-creator-properties.c:
10548         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
10549         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
10551 2006-01-06  James Livingston  <jrl@ids.org.au>
10553         * configure.ac: make the playback backend selection work correctly
10555         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
10556         (rb_daap_src_class_init), (rb_daap_src_dispose),
10557         (rb_daap_src_change_state), (rb_daap_src_initialize):
10558         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
10559         doesn't work for this class. Fixes bug 325934
10561 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10563         * configure.ac: Fix check for libnotify.
10565 2006-01-05  William Jon McCann  <mccann@jhu.edu>
10567         * sources/rb-playlist-source.c (xml_get_and_trim_names):
10568         Get name element for current lang and remove all name nodes
10569         from the XML tree.
10570         (get_playlist_name_from_xml): Try to get name element or
10571         fall back to name attribute.
10572         (rb_playlist_source_new_from_xml): Get name before turning over
10573         to sub-types for parsing so that we can remove name elements
10574         from the tree if necessary.
10576         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
10577         Load default playlists file if per user playlists are not found.
10579         * data/playlists.xml.in: 
10580         * data/Makefile.am: 
10581         * data/.cvsignore: Add default set of playlists.
10582         Fixes #323004
10584 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10586         * shell/main.c: (main): Don't use the dbus interface to show the
10587         window if we're also going to use the bonobo interface.
10589 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10591         * shell/rb-history.c: (rb_history_set_playing):
10592         Allow setting the playing song to NULL.
10593         (rb_history_append), (rb_history_delete_link):
10594         Don't randomly change position when entries are added and removed,
10595         it confuses play orders.
10596         
10597         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
10598         Random orders always have a next entry if the model is not empty.
10599         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
10600         Go back to the start of the history if we're past its end.
10602         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
10603         (rb_shuffle_play_order_go_next): Go back to the start of the history
10604         if we're past its end.
10605         (rb_shuffle_sync_history_with_query_model): Go back to the start of
10606         the history if the current entry is removed.
10608         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
10609         (rb_play_order_entry_deleted_cb): Only update have next/previous for
10610         the play order when the query has finished. This wasted about 10% CPU
10611         while the query was running.
10613         Fixes #324641: assertion failures when the query model was changed
10614         such that the playing song was no longer present.
10616 2006-01-05  James Livingston  <jrl@ids.org.au>
10618         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
10619         (rb_daap_src_dispose), (rb_daap_src_change_state):
10620         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
10621         (rhythmdb_gda_finalize):
10622         * widgets/rb-cell-renderer-pixbuf.c:
10623         * widgets/rb-cell-renderer-rating.c:
10624         (rb_cell_renderer_rating_class_init),
10625         (rb_cell_renderer_rating_finalize):
10626         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
10627         * widgets/rb-load-failure-dialog.c:
10628         (rb_load_failure_dialog_class_init),
10629         (rb_load_failure_dialog_finalize):
10630         * widgets/rb-rating.c: (rb_rating_class_init),
10631         (rb_rating_finalize):
10632         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
10633         (rb_search_entry_finalize): use G_DEFINE_TYPE
10635         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
10637 2006-01-05  James Livingston  <jrl@ids.org.au>
10639         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
10641         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
10642         the tarball.
10644         * shell/rb-history.c: (rb_history_class_init),
10645         (rb_history_finalize):
10646         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
10647         (rb_playlist_manager_finalize):
10648         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
10649         (rb_remote_init): use G_DEFINE_TYPE.
10651 2006-01-05  James Livingston  <jrl@ids.org.au>
10653         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
10654         changes
10656 2006-01-04  William Jon McCann  <mccann@jhu.edu>
10658         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
10659         Disable burn action when source is not a playlist.
10660         Fixes #323578.
10662 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
10664         Optionally use libnotify to display song change and other
10665         notifications, and provide an option to disable notifications.
10666         Fixes #320355 and innumerable informal complaints.
10668         * widgets/eggtrayicon.c: (egg_tray_icon_init),
10669         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
10670         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
10671         (egg_tray_icon_notify):
10672         * widgets/eggtrayicon.h:
10673         * configure.ac:
10674         * shell/Makefile.am:
10675         Optionally use libnotify instead of eggnotificationbubble.
10677         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
10678         (rb_tray_icon_constructor), 
10679         (rb_tray_icon_show_notifications_changed_cb),
10680         (rb_tray_icon_hide_notify_cb)
10681         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
10682         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
10683         EggNotificationBubble pointer to eggtrayicon.
10685         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
10686         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
10687         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
10689 2006-01-04  William Jon McCann  <mccann@jhu.edu>
10691         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
10692         Request a minimum size for the progress bar so that
10693         the window doesn't shrink too small.
10695 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10697         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
10698         (add_db_entry), (db_entry_deleted_cb):
10699         Don't track the number of songs currently present, track the next ID
10700         to assign.  Fixes potential ID conflict problems.
10701         
10702         (db_entry_changed_cb), (rb_daap_share_start_publish),
10703         (rb_daap_share_stop_publish):
10704         Watch for db entry changes, and when songs become non-hidden after
10705         a successful stat, add them to the mapping tables.   Fixes #325178,
10706         making the DAAP server usable again.
10708 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10709         
10710         * shell/rb-statusbar.c: (rb_statusbar_class_init),
10711         (rb_statusbar_construct), (rb_statusbar_init),
10712         (rb_statusbar_finalize), (rb_statusbar_set_property),
10713         (rb_statusbar_get_property), (rb_statusbar_new),
10714         (rb_statusbar_sync_with_source):
10715         * shell/rb-statusbar.h:
10716         Remove visibility management code, stop watching for play order
10717         changes (status bar doesn't show play order any more), remove unused
10718         'player' property, and some other minor cleanup.
10719         
10720         * shell/rb-shell.c: (rb_shell_constructor),
10721         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
10722         (rb_shell_sync_statusbar_visibility):
10723         Manage status bar visibility here rather than in the status bar
10724         itself, so we can take small mode into account.  Fixes #323589.
10726 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10728         * widgets/eggnotificationbubble.c: (draw_bubble):
10729         Move the bubble off the visible screen while setting up bevels.  
10730         Fixes #316810.
10732 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10734         * shell/rb-shell-player.c: (rb_shell_player_init),
10735         (rb_shell_player_finalize): 
10736         Remove unused structure members.
10737         
10738         (do_next_idle), (rb_shell_player_error):
10739         Only queue one call to do_next_idle, so we don't skip tracks if we get
10740         two errors for the same song.  Fixes #325216.
10742 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10744         * data/glade/podcast-feed-properties.glade,
10745          podcast/rb-feed-podcast-properties-dialog.c:
10746         (rb_feed_podcast_properties_dialog_init),
10747         (rb_feed_podcast_properties_dialog_update):
10748         Add 'last episode' field to the podcast feed properties dialog.
10750         * podcast/rb-feed-podcast-properties-dialog.c:
10751         (rb_feed_podcast_properties_dialog_update_last_update),
10752         (rb_feed_podcast_properties_dialog_update_last_episode),
10753          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10754         Use last-seen property for the time at which we last updated the feed,
10755         and post-time for the time the last episode was published.
10757         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
10758         Handle upgrades from 0.9.2; if no post-time was found for a podcast
10759         feed, use last-seen (which in 0.9.2 was the last post time).
10761         Fixes #323894.
10763 2006-01-01  James Livingston  <jrl@ids.org.au>
10765         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
10767         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
10768         year from the ipod database.
10770 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10772         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
10773         Only set the pipeline back to NULL state for really uninteresting
10774         files.  This was causing deadlocks with various video files.
10775         Fixes #324912.
10777 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10779         * data/glade/song-info-multiple.glade:
10780         Add disc number label and field.
10781         * widgets/rb-song-info.c: (rb_song_info_construct_single),
10782         (rb_song_info_constructor): 
10783         Handle widgets for disc number.
10784         (rb_song_info_sync_entries_multiple):
10785         Set disc number property on selected entries.
10786         Fixes #324777.
10788 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10790         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
10791         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
10792         Activate the default widget when enter is pressed in these dialogs.
10793         Fixes #322887.
10795 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10797         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
10798         Use rb_shell_player_get_playing_entry, so we get the right entry
10799         when playing from the queue.  Fixes #325379.
10801 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10803         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10804         Include podcast posts with no publication date.  Typically
10805         seen in static collections rather than feeds.
10807 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10809         * shell/main.c: (main): Don't attempt to handle
10810         bonobo-only arguments if we couldn't get a bonobo
10811         client proxy.
10813 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10815         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
10816         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
10817         abort if daap sharing is disabled and then re-enabled.
10819 2005-12-29  William Jon McCann  <mccann@jhu.edu>
10821         * podcast/rb-podcast-parse.c (rb_insert_item):
10822         Add debugging.
10823         (rb_podcast_parser_start_element): Support itunes:image.
10824         Add debugging.  Don't abuse the break statement.  Warn
10825         if state is unknown.
10826         (rb_podcast_parser_end_element): Add debugging.  Warn
10827         if state is unknown.
10828         (rb_podcast_parser_characters): Warn if state is unknown.
10830         Fixes parsing of feeds that use the itunes:image element.
10831         Fixes #324632
10833 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10835         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
10836         (stations_view_drag_data_received_cb):
10837         Remove calls to rhythmdb_entry_lookup_by_location, as
10838         rb_iradio_source_add_station does that anyway.
10839         
10840         (rb_iradio_source_add_from_playlist):
10841         If the URL doesn't point to a playlist, add it as the stream
10842         URL instead.
10844 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10846         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
10847         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
10848         so we don't get an assertion failure.
10849         Fixes #325025.
10851 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10853         * shell/main.c: (load_uri_args): don't compile this in if
10854         neither bonobo nor dbus are enabled.  Fixes #324890.
10856 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10858         * sources/rb-audiocd-source.c:
10859         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
10860         so it closes the device.
10862 2005-12-20  James Livingston  <jrl@ids.org.au>
10864         * metadata/rb-metadata-gst.c: make the state changes time-out again,
10865         so that it doesn't spend forever getting stuck on the one file. Don't
10866         report errors for failing to change state on known non-audio files.
10868         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
10869         audio sink creation if we can't create the gconfaudiosink. This lets
10870         it work with only gst-plugins-base on 0.10.
10872 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
10874         * rhythmdb/rhythmdb-query-model.c:
10875         (rhythmdb_query_model_set_sort_order):
10876         Fix a tiny memory leak in the previous commit.
10878 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
10880         * rhythmdb/rhythmdb-query-model.c:
10881         (rhythmdb_query_model_set_sort_order):
10882         Don't try to emit reorders for empty query models, since it doesn't
10883         achieve anything and it results in a few warnings.
10885 2005-12-19  William Jon McCann  <mccann@jhu.edu>
10887         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
10888         Make burn dialog non-resizable so that the expander can shrink.
10889         Fixes #308951.
10891 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
10893         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
10894         add entries without a location, rather than those with one.
10896 2005-12-19  James Livingston  <jrl@ids.org.au>
10898         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
10899         the error isn't set.
10901 2005-12-19  James Livingston  <jrl@ids.org.au>
10902         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
10903         add entries without a location. Fixes bug 324290.
10905         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
10906         without a location.
10908         * shell/main.c: (main): don't crash if dbus initialisation fails
10909         without setting an error
10911 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
10913         * sources/rb-library-source.c: Remove unused structure members
10914         (rb_library_source_do_query): Actually use the cached 'all' query.
10915         Fixes #324025.
10916         
10917 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
10919         * sources/rb-audiocd-source.c 
10920         (rb_audiocd_get_cd_info): tab
10921         (rb_audiocd_scan_songs): Return boolean success/failure,
10922         fix error messages a bit.
10923         (metadata_cb): Don't crash if we have no tracks
10924         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
10925         the CD.
10926         Fixes #324222.
10928 2005-12-15  William Jon McCann  <mccann@jhu.edu>
10930         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
10931         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
10932         key.
10934         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10935         Fixes #324157
10937 2005-12-14  William Jon McCann  <mccann@jhu.edu>
10939         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
10940         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
10941         (fullscreen_changed_cb): 
10942         * lib/rb-preferences.h: 
10943         * data/ui/rhythmbox-ui.xml: 
10944         * data/rhythmbox.schemas:
10945         Add fullscreen mode.
10947         Fixes #324075.
10949 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
10951         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
10952         configure.  It was not working with RPM.
10953         * data/Makefile.am: Switched dbus directory location to use
10954         datadir instead of variable that was not working.
10956 2005-12-13  James Livingston  <jrl@ids.org.au>
10958         patch by: Alex Lancaster <alexl@users.sourceforge.net>
10960         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
10961         the podcast browser work again. Closes bug 323856.
10963 2005-12-12  William Jon McCann  <mccann@jhu.edu>
10965         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
10966         Remove C99ism.
10968         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
10969         (rb_utf_friendly_time):
10970         * lib/rb-cut-and-paste-code.h:
10972         * podcast/rb-feed-podcast-properties-dialog.c:
10973         (rb_feed_podcast_properties_dialog_parse_time):
10974         * podcast/rb-podcast-properties-dialog.c:
10975         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
10976         to display the date in a more user friendly way.
10977         For example, if the feed was updated yesterday it will say:
10978         Last updated: Yesterday 10:00 AM
10979         instead of printing the date.
10981 2005-12-12  William Jon McCann  <mccann@jhu.edu>
10983         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
10984         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
10985         (rb_validate_item_propert, rb_podcast_parser_start_element) 
10986         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
10987         Use RB style.  Check for NULL before strcmp.  No C++ comments.
10988         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
10989         Don't set invalid mime type when mime type is NULL.  Fix leaks.
10990         (rb_podcast_parse_date): Add support for some real world
10991         date formats.
10992         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
10993         (rb_podcast_parse_item_free): Style and no need to check
10994         for NULL before g_free.
10996         May fix #323742
10998 2005-12-12  James Livingston  <jrl@ids.org.au>
11000         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
11001         with gstreamer 0.10, which replaced audioscale.
11003         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
11004         function to free the SoupSession
11006         * shell/rb-source-header.c: (rb_source_header_set_property),
11007         (rb_source_header_disclosure_toggled_cb),
11008         (rb_source_header_view_browser_changed_cb),
11009         (rb_source_header_sync_control_state):
11010         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11011         * sources/rb-library-source.c: (rb_library_source_class_init):
11012         * sources/rb-source.c: (rb_source_class_init),
11013         (rb_source_get_status), (default_get_browser_key),
11014         (rb_source_get_browser_key), (rb_source_can_browse),
11015         (rb_source_notify_status_changed),
11016         (rb_source_notify_filter_changed):
11017         * sources/rb-source.h: seperate the enabling of browsers from the use
11018         of a gconf key.
11020 2005-12-11  William Jon McCann  <mccann@jhu.edu>
11022         * data/glade/podcast-feed-properties.glade: 
11023         * data/glade/podcast-properties.glade: Use scrolled viewports
11024         for description text.  Fix regression of #320509.
11026 2005-12-11  James Livingston  <jrl@ids.org.au>
11028         * sources/rb-auto-playlist-source.c:
11029         (rb_auto_playlist_source_class_init), (impl_reset_filters),
11030         (impl_search), (rb_auto_playlist_source_do_query),
11031         (rb_auto_playlist_source_set_query),
11032         (rb_auto_playlist_source_get_query): add support for the search box
11033         to automatic playlists.
11035         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
11036         memory leak.
11038 2005-12-11  James Livingston  <jrl@ids.org.au>
11040         * NEWS: update NEWS
11042 2005-12-11  James Livingston  <jrl@ids.org.au>
11044         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
11045         (rhythmdb_load), (monitor_subdirectory),
11046         (rhythmdb_sync_library_location):  start the library sync and
11047         monitoring in an idle callback.
11049 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11051         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
11052         (rb_podcast_source_constructor): Remove unused pixbuf column.
11053         (rb_podcast_source_set_property, rb_podcast_source_get_property):
11054         Use consistent style.
11056         Fixes #322961.
11058 2005-12-11  James Livingston  <jrl@ids.org.au>
11060         * rhythmdb/rhythmdb-property-model.c:
11061         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
11062         (rhythmdb_property_model_insert),
11063         (rhythmdb_property_model_delete_prop):
11064         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
11065         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
11066         (destroy_tree_property):
11067         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
11068         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
11069         GMemChunks, they are crap and deprecated. Improves startup-time and
11070         memory usage slightly.
11072 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11074         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
11075         Added license and website info.
11077         * MAINTAINERS.old: Add Colin.
11078         * MAINTAINERS: Add James.
11079         * AUTHORS: Put back in order.  Add extra space between name and email
11080         to make it easier to read.  Add James and jonathan.
11082         * widgets/rb-song-info.c (rb_song_info_init) 
11083         (rb_song_info_constructor): Make sure close button is primary/rightmost.
11085 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11087         Play queue implementation. Closes bug 107787.
11089         * data/rhythmbox.schemas: add items for whether the queue should be
11090         displayed as a sidebar, and the height of the sourcelist if it is.
11092         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
11093         playlist, and podcast popups; add 'view queue as sidebar' menu item,
11094         add popups for queue as source and as sidebar.  We need a separate
11095         popup for the sidebar view because otherwise it's hard to tell which
11096         of the visible entry views the action came from.
11098         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
11100         * po/POTFILES.in: Add new file
11102         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
11103         Add helper function for deciding if a podcast episode is available for
11104         playback.
11106         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
11107         reorder entries in the query model.
11108         (idle_process_update): Handle new update type used to insert entries
11109         at a particular position in the query model.
11110         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
11111         parameter to specify the position (-1 meaning 'at the end').
11112         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
11113         parameter.
11114         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
11115         bad entry removal updates for entries that aren't in the model.
11116         (rhythmdb_query_model_emit_reorder): Add helper function for
11117         reordering rows.
11118         (rhythmdb_query_model_move_entry): New method for moving entries
11119         around in the model
11120         (rhythmdb_query_model_entry_added_cb),
11121         (rhythmdb_query_model_update_limited_entries),
11122         (rhythmdb_query_model_do_reorder),
11123         (rhythmdb_query_model_do_insert): Pass through the index parameter,
11124         use rhythmdb_query_model_emit_reorder where appropriate.
11126         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11127         Don't allow the queue to be deleted.
11128         (handle_playlist_entry_cb): Update for method signature change
11129         (rb_playlist_manager_save_playlists_async),
11130         (rb_playlist_manager_get_playlists): Don't save the play queue,
11131         don't report it as a playlist.
11133         * shell/rb-play-order.c: Include queue play order in the list of
11134         available orders.
11136         * shell/rb-shell.c
11137         (rb_shell_class_init), (rb_shell_get_property): Add new property 
11138         for access to the clipboard object.
11139         (rb_shell_constructor): Handle playing-from-queue signal to update the
11140         sourcelist display; add queue sidebar in to UI, listen for queue
11141         sidebar pane changes, and read initial settings from gconf.
11142         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
11143         Only tell the sourcelist the source has changed if the new source is 
11144         not the queue, as we update the sourcelist differently in that case.
11145         (rb_shell_set_window_title): Only use the cached window title if the
11146         playing state was the same when it was created.
11147         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
11148         (rb_shell_sync_pane_visibility): Only hide the side pane if the
11149         sourcelist is hidden and the queue is shown as a source.
11150         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
11151         mode, since it doesn't make any sense.
11152         (sourcelist_visibility_changed_cb): Update the visibility of the pane
11153         too.
11154         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
11155         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
11156         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
11157         playing from queue shown as sidebar.
11159         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
11160         MusicProperties action here from rb-shell-player.c, since it acts like
11161         cut/copy/paste etc.
11162         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
11163         (rb_shell_clipboard_get_property): new property for queue source.
11164         Watch for selection changes in the sidebar entry view as well as the
11165         normal one.
11166         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
11167         actions and MusicProperties.
11168         (rb_shell_clipboard_cmd_queue_delete),
11169         (rb_shell_clipboard_cmd_add_song_to_queue),
11170         (rb_shell_clipboard_cmd_song_info),
11171         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
11173         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
11174         actually came from (could be the playing source, or the queue), add a 
11175         new play order object for the queue, add a property for the queue
11176         source, add a signal for when we switch between playing from the
11177         source and from the queue.
11178         (rb_shell_player_set_property): Handle playing directly from the
11179         queue so we stop once the queue is empty.  Create queue play order
11180         when we get the queue source.
11181         (rb_shell_player_get_playing_source): Return the source we're actually
11182         playing from.
11183         (rb_shell_player_get_playing_entry): Get playing entry from queue if
11184         that's where it is.
11185         (rb_shell_player_set_playing_entry): Update the queue play order if 
11186         that's where we're playing from.
11187         (rb_shell_player_play_order_update_cb): Take has next/previous for the
11188         queue into consideration too.
11189         (swap_playing_source): Helper function for switching the playing
11190         source.
11191         (rb_shell_player_do_previous): Check the queue, even though there's
11192         never a previous entry in it (yet), swap playing source if it changed.
11193         (rb_shell_player_do_next): Check the queue for entries to play before
11194         the normal play order, and swap playing source if it changed.
11195         (rb_shell_player_do_previous_or_seek): Check the queue for previous
11196         entries to go to as well.
11197         (rb_shell_player_playpause): Check the queue before the selection and
11198         the play order, and swap playing source if it changed.
11199         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
11200         (rb_shell_player_entry_activated_cb): Use
11201         rb_podcast_manager_entry_downloaded, do some tapdancing to make
11202         activating queue entries work properly (move the activated entry to
11203         the start of the queue and then play it); if we were playing from the
11204         queue, clear its playing entry so it'll start again from the start
11205         after the activated entry.
11206         (rb_shell_player_sync_buttons): MusicProperties action handler moved
11207         to rb-shell-clipboard.c
11208         (actually_set_playing_source): Add helper for updating the playing
11209         source.
11210         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
11211         signal if we stop or start doing so; use actually_set_playing_source; 
11212         emit playing-source-changed if we actually did change source.
11214         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
11215         rb_static_playlist_source_add_location.
11217         * sources/rb-library-source.c (rb_library_source_class_init): Allow
11218         enqueueing of songs from the library.
11220         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
11221         enqueueing of sonsg from playlists.
11222         (rb_playlist_source_entry_added_cb): Add extra parameter for
11223         rhythmdb_query_model_add_entry.
11224         
11225         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
11226         Implement (can_)add_to_queue for this class.
11227         (rb_podcast_source_entry_activated): Use
11228         rb_podcast_manager_entry_downloaded.
11229         (impl_can_add_to_queue): Return TRUE if at least one entry that has
11230         been downloaded is selected.
11231         (impl_add_to_queue): Only add downloaded entries to the queue.
11233         * sources/rb-source.{c,h}:
11234         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
11235         methods.
11236         (rb_source_class_init): Don't allow enqueueing by default; implement 
11237         add_to_queue though.
11238         (default_add_to_queue): Add all selected entries to the queue.
11239         
11240         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
11241         would be playing if there wasn't anything in the queue).
11242         (set_source_playing): Helper function for manipulating tree store.
11243         (rb_sourcelist_set_playing_source): Use set_source_playing
11244         (rb_sourcelist_preempt_playing_source): Update preempted source
11245         pointer, manipulate source states.
11247         * sources/rb-static-playlist-source.{c,h}:
11248         (rb_static_playlist_source_add_location_internal),
11249         (rb_static_playlist_source_add_location),
11250         (rb_static_playlist_source_add_entry): Add index parameter for
11251         specifying where in the playlist the new entry goes.
11252         (rb_static_playlist_source_new_from_xml), (impl_paste),
11253         (rb_static_playlist_source_add_list_uri),
11254         (rb_static_playlist_source_add_location_swapped),
11255         (rb_static_playlist_source_add_locations),
11256         (rb_static_playlist_source_non_entry_dropped),
11257         (rb_static_playlist_source_row_inserted):
11258         Handle new index parameter everywhere it appears
11259         (rb_static_playlist_source_move_entry): New method for moving entries
11260         around in the playlist.
11262         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
11263         warnings when trying to scroll entry views that have never been
11264         displayed.
11266         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
11267         play order that removes the old entry when switching to a new one.
11269         * sources/rb-play-queue-source.{c,h}: New files, implementing a
11270         static playlist subclass that has a second entry view for the sidebar
11271         view using alternate formatting, and that displays the number of
11272         entries it contains in its source list entry.
11274 2005-12-10  James Livingston  <jrl@ids.org.au>
11276         * rhythmdb/rhythmdb-query-model.c:
11277         (rhythmdb_query_model_add_entry),
11278         (rhythmdb_query_model_drag_data_received):
11279         * sources/rb-static-playlist-source.c:
11280         (rb_static_playlist_source_non_entry_dropped): when things are
11281         dropped, ignore any blank lines in the list of uris. Make the source
11282         responsible for adding new items to the db.
11284         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
11285         empty string.
11287 2005-12-10  James Livingston  <jrl@ids.org.au>
11289         * shell/rb-shell-player.c: (rb_shell_player_set_property),
11290         (rb_shell_player_sync_buttons),
11291         (rb_shell_player_selection_changed_cb): watch for the
11292         "selection-changed" signal, so that the Song Properties get enabled.
11293         Closes bug 323694.
11295 2005-12-10  James Livingston  <jrl@ids.org.au>
11297         * data/rhythmbox.schemas: fix the gconf schema
11299 2005-12-10  James Livingston  <jrl@ids.org.au>
11301         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
11302         the decoded-pad callback with gstreamer 0.8, it causes problems.
11304 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11306         Remove more junk from RBEntryView. Closes bug 323640.
11308         * widgets/rb-entry-view.{c,h}:
11309         Remove unused private structure members, replace 'playing' boolean
11310         with an enum (so we know if we're paused too), and store a pointer to
11311         the RBShellPlayer too.  
11312         (rb_entry_view_class_init), (rb_entry_view_set_property),
11313         (rb_entry_view_get_property):
11314         Remove 'entry-selected' and 'changed' signals and
11315         'playing-entry' property, add 'selection-changed' signal and
11316         'shell-player' and 'playing-state' properties.
11317         (rb_entry_view_new): Take the shell player object reference
11318         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
11319         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
11320         No longer needed, shell player is the place to get this information.
11321         (rb_entry_view_busy), (rb_entry_view_get_duration),
11322         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
11323         (rb_entry_view_get_next_from_entry),
11324         (rb_entry_view_get_previous_from_entry),
11325         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
11326         (rb_entry_view_get_num_entries):
11327         Removed, callers should go to the query model directly.
11328         (rb_entry_view_playing_song_changed): Update active query model, emit
11329         row changed signals to update pixbufs, and scroll to the playing song
11330         when the playing song changes, based on a signal from the shell
11331         player.
11332         (queue_changed_sig), (rb_entry_view_row_changed_cb),
11333         (emit_entry_changed): Evil, removed.
11334         (rb_entry_view_selection_changed_cb): Remove old signals, add new
11335         selection-changed signal.
11336         (rb_entry_view_select_none), (rb_entry_view_select_entry):
11337         Remove selection lock.  It didn't work anyway.
11338         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
11339         (rb_entry_view_emit_row_changed): Simple helper function to emit
11340         row-changed signals.
11342         * widgets/Makefile.am: Entry view needs headers from the shell/
11343         directory.
11344         * widgets/rb-song-info.{c,h}: Use the query model for everything except
11346         scrolling the entry view to show the entry being displayed.
11347         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
11348         'source' property so we can watch for query model changes.
11349         (rb_song_info_finalize): Unref objects, disconnect signal handlers
11350         (rb_song_info_set_property): Watch for query model changes, don't
11351         watch for entry view changes.
11352         (rb_song_info_new): Take source as a parameter, use the source's entry
11353         view unless one was specifically supplied.
11354         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
11355         Use query model rather than entry view to move between songs.
11356         (rb_song_info_update_buttons): Use query model.
11357         (rb_song_info_query_model_changed_cb): Handle query model changes.
11359         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11360         Only one copy of the code to enable/disable the CD burning action
11361         (rb_playlist_manager_playlist_entries_changed):
11362         Use the query model to get the number of entries, not the entry view.
11364         * shell/rb-play-order-random-by-age-and-rating.c,
11365         shell/rb-play-order-random-by-age.c,
11366         shell/rb-play-order-random-by-rating.c,
11367         shell/rb-play-order-random-equal-weights.c:
11368         Use G_DEFINE_TYPE
11370         * shell/rb-shell-player.{c,h}:
11371         Remove a few unused entries from the structure.
11372         (rb_shell_player_set_property):
11373         Don't use the 'changed' signal on the entry view (it's evil)
11374         (rb_shell_player_have_first): No longer needed
11375         (rb_shell_player_play): Just tell the entry view it's playing
11376         (rb_shell_player_playpause): Tell the entry view it's paused
11377         when pausing.
11378         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
11379         (rb_shell_player_property_row_activated_cb):
11380         Get the entry to play using the query model, not the entry view.
11381         (rb_shell_player_sync_buttons): Update entry view state while we're
11382         here.
11383         (rb_shell_player_set_playing_source_internal): Update entry view state
11384         (rb_shell_player_get_playing): Ask the entry view, not the player.
11385         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
11386         and rb_shell_set_window_title work properly, so you get "(Paused)" in
11387         the window title and tray icon tooltip.
11388         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
11390         * sources/rb-iradio-source.c, sources/rb-library-source.c,
11391         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
11392         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
11393         view constructor, pass the source in to the song info widget
11394         constructor.
11396         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
11397         Use 'selection-changed' instead of 'changed', since that's what the
11398         clipboard cares about.
11399         (rb_shell_clipboard_set_source): Don't die if source == NULL
11401 2005-12-10  James Livingston  <jrl@ids.org.au>
11403         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
11404         * sources/rb-playlist-source-recorder.c:
11405         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
11406         stuff not use the deprecated API when compiled against 2.13
11408 2005-12-10  James Livingston  <jrl@ids.org.au>
11410         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11412         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
11413         problem where the genre tag was getting set to the artist. Closes bug
11414         323642.
11416 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11418         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
11419         Return NULL if can't get first iter.
11421         Fixes #323663
11423 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11425         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
11426         updated rb_station_properties_dialog_new API.
11427         (rb_iradio_source_add_from_playlist): New public function.
11428         (rb_iradio_source_first_time_changed): Use add_from_playlist.
11430         * shell/rb-shell.c (new_station_location_added): Handle
11431         iradio location added signal.
11432         (rb_shell_cmd_new_station): Use new iradio station dialog.
11434         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
11435         (rb_station_properties_dialog_new): Don't squeeze new
11436         station functionality into this class.
11437         (rb_station_properties_dialog_response_cb): ditto.
11438         (rb_station_properties_dialog_update_title): Make
11439         consistent with other properties dialogs.
11440         (rb_station_properties_dialog_location_changed_cb): Do nothing.
11442         * iradio/rb-new-station-dialog.[ch]: 
11443         * iradio/Makefile.am: Add new station dialog.
11445         * data/glade/station-new.glade: New file based on
11446         new podcast feed dialog.
11447         * data/glade/station-properties.glade: Updated to
11448         be consistent with song properties dialog.
11450         Fixes #323306.
11452 2005-12-10  James Livingston  <jrl@ids.org.au>
11454         patch by: Ståle Lyngaas <staale@lyngaas.com>
11456         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
11457         submit songs longer than 30 minutes. Fixes bug 323639.
11459 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11461         * shell/rb-shell.c (idle_save_playlist_manager): Use new
11462         async save function.
11463         (rb_shell_finalize): Remove save timeout sources.  Reorder
11464         steps a bit to make saving db and playlists a bit more
11465         failsafe in case something goes wrong later.
11466         (rb_shell_constructor): Keep track of save timeout source.
11467         (add_to_library_response_cb): Keep track of db save timeout source.
11469         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
11470         g_atomic.
11471         (rb_playlist_manager_shutdown): New function to shutdown
11472         threads etc. before exit.
11473         (rb_playlist_manager_finalize): Moved handling outstanding
11474         threads stuff to shutdown since if there are outstanding threads
11475         they hold a ref and finalize is never called.
11476         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
11477         of signal which may be required for sync save.
11478         (rb_playlist_manager_save_playlists_async): Renamed old
11479         save_playlists to save_playlists_async.  Use g_atomic.
11480         (rb_playlist_manager_save_playlists): New function to
11481         perform sync saves (symmetric with RhythmDB API).
11482         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
11484         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
11485         Style consistency anality.
11486         (rhythmdb_finalize): Remove save timeout source.
11487         (rhythmdb_set_property, rhythmdb_get_property) 
11488         (rhythmdb_process_events): More anality and keep track of
11489         save timeout source.
11490         (action_thread_main): No need to call g_thread_exit.
11491         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
11492         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
11493         (write_encoded_gvalue, read_encoded_property): La la la.
11495         Fixes #322940.
11497 2005-12-10  James Livingston  <jrl@ids.org.au>
11499         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
11500         non-audio files.
11502 2005-12-10  James Livingston  <jrl@ids.org.au>
11504         * Makefile.am:
11505         * configure.ac: remove the rpm spec files, so that automake works.
11506         oops
11508         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
11509         locking issue
11511 2005-12-09  James Livingston  <jrl@ids.org.au>
11513         * debian/: try to get cvs to actually remove the files
11515 2005-12-09  James Livingston  <jrl@ids.org.au>
11517         * rhythmbox.spec.in:
11518         * debian/: remove the distro package stuff, they are *really* old, and
11519         downstream manage it anyway.
11521 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
11523         Rework play orders to work off query models rather than 
11524         entry views, and track the playing entry themselves rather
11525         than relying on the entry view to do it.  This makes the entry
11526         view mostly just a widget. Closes bug 323612.
11528         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
11529         Use query model rather than entry view to get the number
11530         of entries in playlists.
11532         * rhythmdb/rhythmdb-query-model.{c.h}
11533         (rhythmdb_query_model_tree_path_to_entry),
11534         (rhythmdb_query_model_iter_to_entry),
11535         (rhythmdb_query_model_get_next_from_entry),
11536         (rhythmdb_query_model_get_previous_from_entry):
11537         New utility functions for iterating through query models.
11538         (rhythmdb_query_model_compute_status_normal):
11539         Have one copy of this code, not four.
11541         * shell/rb-play-order.{c,h}:
11542         Add signals for when next/previous availability changes, and
11543         when the playing entry is removed, and add a property for
11544         the current playing entry.  Add gtkdoc comments too.
11545         (rb_play_order_class_init): Add new property and signals.
11546         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
11547         (rb_play_orer_query_model_changed_cb),
11548         (rb_play_order_query_model_changed): 
11549         Use query model rather than entry view.
11550         (rb_play_order_set_property), (rb_play_order_get_property):
11551         Handle new playing-entry property.  Call playing_entry_changed virtual
11552         method so subclasses can do any processing required.
11553         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
11554         (rb_play_order_set_playing_entry):
11555         Just use the playing-entry property.
11556         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
11557         Utility methods for subclasses.
11558         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
11559         Update next/previous availability, check if the playing entry
11560         was removed.
11561         (default_playing_entry_removed):
11562         Keep the current behaviour of just stopping playback when the 
11563         playing entry is deleted.
11564         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
11565         these for subclasses that don't have go_next/go_previous, but do
11566         have get_next/get_previous.
11567         (rb_play_order_update_have_next_previous): Emit signal if the
11568         availability of next/previous entries has changed.
11570         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
11571         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
11572         Use G_DEFINE_TYPE, replace entry view iterator with query model 
11573         methods.
11574         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
11575         on the last song in the shuffled order, go back to the start. This
11576         means if you press 'play' again you'll get the whole order again, not
11577         just one song.
11579         * shell/rb-shell-player.c:
11580         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
11581         play order rather than the entry view.
11582         (rb_shell_player_set_property): Update the play order when the
11583         selected source changes and we aren't playing anything.
11584         (rb_shell_player_sync_play_order): Copy the playing entry across to
11585         the new play order so playback continues from the same song, and watch
11586         for updates to have_next/have_previous.
11587         (rb_shell_player_play_order_update_cb): Enable/disable the
11588         next/previous actions when next/previous entry availability changes.
11589         (rb_shell_player_jump_to_current): Just use the play order's idea of
11590         what's playing, not the entry view's; if not playing anything, clear
11591         the selection, so when a playlist ends and you hit play again, it'll
11592         start at the start rather than the end.
11593         (rb_shell_player_do_previous): restructure a bit.
11594         (rb_shell_player_do_next): restructure, jump to new playing entry in
11595         an idle handler instead of directly.
11596         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
11597         song if there is one.
11598         (rb_shell_player_playpause): Jump to playing song, don't update the
11599         play order if we got the song from the selection.
11600         (rb_shell_player_playing_entry_deleted_cb): Not needed.
11601         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
11602         looks after next/previous actions now.  Don't break if called while
11603         there is no selected source.
11604         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
11605         (rb_shell_player_set_playing_source_internal),
11606         (rb_shell_player_error): No need to track the attempted playing entry
11607         any more, since the play order does that.
11609         * shell/rb-shell.c:
11610         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
11611         rb_shell_player_get_playing_entry rather than going through the entry
11612         view.
11614         * shell/rb-statusbar.c (rb_statusbar_set_property),
11615         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
11616         than the entry view for status bar text changes.
11617         (rb_statusbar_sync_status): Ask the query model directly
11619         * sources/rb-source.{c}: Add query model property.
11620         (default_get_status): Get status text from query model, should be
11621         suitable for most sources.
11622         (rb_source_set_property): Listen for changes to the query model 
11623         to update the status text.
11624         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
11625         (idle_emit_status_changed): Emit status-changed signals when query
11626         model changes. 
11628         * sources/rb-library-source.c, sources/rb-podcast-source.c:
11629         (impl_get_status): Not needed, RBSource does this now
11630         (rb_library_source_do_query) (rb_podcast_source_do_query): 
11631         Update RBSource's query model reference.
11633         * sources/rb-playlist-source.c:
11634         Remove query-model property, since RBSource has one now
11635         (impl_get_status): Not needed, RBSource does this now
11636         (rb_playlist_source_row_deleted): Use query model iterator helper
11637         function.
11638         (rb_playlist_source_set_query_model): Update RBSource's query model
11639         reference too.
11641         * sources/rb-iradio-source.c:
11642         (impl_get_status): Ask the query model directly.
11643         (rb_iradio_source_do_query): Update RBSource's query model reference
11644         when we create a new query.
11646         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
11647         Use query model rather than entry view.
11649         * widgets/rb-entry-view.{c,h}: 
11650         Remove playing_entry_deleted signal (now in play order).
11651         (entry_from_tree_path), (entry_from_tree_iter): Not needed
11652          as RhythmDBQueryModel has equivalent helper functions.
11653         (rb_entry_view_*): Use query model helpers instead of the above two
11654         functions.
11656 2005-12-09  James Livingston  <jrl@ids.org.au>
11658         * configure.ac:
11659         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
11660         (rb_recorder_enabled):
11661         * shell/rb-removable-media-manager.c: (poll_tray_opened):
11662         * sources/rb-playlist-source-recorder.c:
11663         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
11664         whether libnautilusburn has the _drive_unref function, and if so use
11665         it. Stops it complaining about deprecated API.
11667 2005-12-09  James Livingston  <jrl@ids.org.au>
11669         * configure.ac: drop the minimum gstreamer version back down, it
11670         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
11672 2005-12-09  James Livingston  <jrl@ids.org.au>
11674         * widgets/rb-song-info.c: (rb_song_info_class_init),
11675         (rb_song_info_show), (rb_song_info_constructor),
11676         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
11677         (rb_song_info_forward_clicked_cb): save metadata changes when the
11678         Next/Previous buttons are pressed (closes bug 320952). use
11679         G_DEFINE_TYPE.
11681 2005-12-09  James Livingston  <jrl@ids.org.au>
11683         Patch by: <jonathan@kaolin.hn.org>
11685         * sources/rb-iradio-source.c:
11686         (stations_view_drag_data_received_cb):
11687         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
11688         of urls. Fixes bug 323610.
11690 2005-12-09  James Livingston  <jrl@ids.org.au>
11692          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
11693          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
11695         * configure.ac:
11696         * metadata/rb-metadata-gst.c:
11697         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
11698         (rb_player_construct), (rb_player_new):
11699         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
11700         (rb_recorder_gst_signal_error), (pipe_message),
11701         (rb_recorder_new_pad_cb), (rb_recorder_construct),
11702         (rb_recorder_new):
11703         * shell/main.c: (main):
11704         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
11705         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
11707 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11709         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
11711         * shell/rb-playlist-manager.c:
11712           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
11713           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
11714           (rb_playlist_manager_set_automatic_playlist),
11715           (rb_playlist_manager_cmd_new_automatic_playlist),
11716           (rb_playlist_manager_cmd_edit_automatic_playlist):
11717            Use new playlist subclasses.
11718           (rb_playlist_manager_save_playlists): Only read the dirty flag
11719            for local playlists, minor pointless reformatting
11721         * sources/Makefile.am: add new files
11723         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
11724           split lots of stuff out into two
11725           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
11726           make RBPlaylistSource abstract, add virtual methods for showing a
11727           popup for the entry view and saving the playlist to XML.
11728           Other stuff is subclass-specific, or already virtual in RBSource.
11730         * sources/rb-playlist-xml: Define playlist XML tags and attributes
11731           in one place, since they're used across three source files now
11733         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
11734           Use new static playlist class
11736         * sources/rb-ipod-source.c: (add_rb_playlist):
11737           Use new static playlist class
11739         * sources/rb-static-playlist-source.{c,h},
11740         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
11741         files.
11743         * po/POTFILES.in: add new files
11745 2005-12-07  James Livingston  <jrl@ids.org.au>
11747         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
11748         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
11749         metadata loads not attempt to write changes to disk.
11751 2005-12-07  James Livingston  <jrl@ids.org.au>
11753         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11755         * data/glade/song-info-multiple.glade:
11756         * widgets/rb-song-info.c: (rb_song_info_constructor),
11757         (rb_song_info_sync_entries_multiple): allow the year to be changed on
11758         multiple songs at once.
11760 2005-12-06  James Livingston  <jrl@ids.org.au>
11762         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
11763         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
11765 2005-12-06  James Livingston  <jrl@ids.org.au>
11767         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
11768         names rather than adding a horizontal scroll bar.
11770 2005-12-06  James Livingston  <jrl@ids.org.au>
11772         * rhythmdb/rhythmdb-query-model.c:
11773         (rhythmdb_query_model_update_limited_entries),
11774         (rhythmdb_query_model_drag_data_received): remove some pointless debug
11775         messages
11777         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
11778         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
11779         always hide rather than remove DB entries, which will make RB not lose
11780         information when tag editing happens or people move files to trash and
11781         then change their mind. Also fix some races where the monitoring code
11782         would notice the temporary files generated by saving metadata.
11784 2005-12-05  William Jon McCann  <mccann@jhu.edu>
11786         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
11787         Hide internals and add tooltips.
11788         (rb_song_display_box_size_allocate): Hide internals.
11789         (sanitize_string, info_url): Copied from rb-header.
11790         (rb_song_display_box_sync): New public function.
11792         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
11793         (rb_header_init): Use a separate row for the seek bar.
11794         (rb_header_finalize): Don't unref widgets.
11795         (rb_header_sync): Use rb_song_display_box_sync.
11796         (rb_header_set_urldata)
11797         (rb_header_set_show_artist_album): Hide instead of remove widgets.
11798         (rb_header_set_show_position_slider): Set visibility of seek bar.
11799         (rb_header_set_show_timeline): Set sensitivity of seek bar.
11800         (rb_header_get_elapsed_string): Don't shift when you first start playback.
11802         * shell/rb-statusbar.c (rb_statusbar_init)
11803         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
11805         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
11806         (rb_shell_constructor): Remove hseparator.  Monitor
11807         toolbar visibility settings.  Add toolbar.  Add
11808         volume button to toolbar.  Add tooltips for volume button.
11809         (rb_shell_view_toolbar_changed_cb) 
11810         (rb_shell_sync_toolbar_visibility)
11811         (toolbar_visibility_changed_cb): Set visibility of
11812         toolbar.
11813         (rb_shell_sync_smalldisplay): Set the toolbar style to
11814         icons only when in small display mode.
11815         (rb_shell_volume_widget_changed_cb): Save volume setting.
11817         * shell/rb-shell-player.c (rb_shell_player_constructor):
11818         Remove pause and stop actions.  Make play action "important"
11819         so that text is visible in horizontal toolbar position.
11820         Remove control buttons.
11821         (rb_shell_player_init) 
11822         (rb_shell_player_sync_song_position_slider_visibility):
11823         Set visbibility of seek bar.
11824         (rb_shell_player_cmd_play, rb_shell_player_playpause):
11825         Make play action a toggle.
11826         (rb_shell_player_sync_volume): Volume control moved
11827         to player.
11828         (gconf_song_position_slider_visibility_changed):
11829         Set visbibility of seek bar.
11830         (rb_shell_player_sync_buttons):
11831         Set sensitivity of actions instead of buttons.
11832         (rb_shell_player_playing_changed_cb): Add callback
11833         for player notify::playing changes.
11835         * lib/rb-preferences.h: Add hide toolbar and seek
11836         bar key names.
11838         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
11839         seek bar menu items.  Remove pause and stop actions
11840         from the control menu.  Add a toolbar.
11842         * data/rhythmbox.schemas: Add toolbar_hidden
11843         song_position_slider_hidden keys.
11845         Patch by: James Livingston  <jrl@ids.org.au>
11846                   William Jon McCann  <mccann@jhu.edu>
11847         Fixes #316238.
11849 2005-12-05  James Livingston  <jrl@ids.org.au>
11851         * data/glade/library-prefs.glade:
11852         * data/rhythmbox.schemas:
11853         * lib/rb-preferences.h:
11854         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
11855         (rhythmdb_sync_library_location):
11856         * sources/rb-library-source.c: (rb_library_source_class_init),
11857         (rb_library_source_finalize), (rb_library_source_constructor),
11858         (impl_get_config_widget), (rb_library_source_preferences_sync),
11859         (rb_library_source_watch_toggled_cb): allow people to disable library
11860         monitoring, because with nothing set the file chooser button selects
11861         the Home folder (and hence that will get monitored).
11863 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
11865         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
11866         attempt to fix problem with RSS parsing showing invalid feed types.
11867         Fixes bug 323153
11869 2005-12-04  James Livingston  <jrl@ids.org.au>
11871         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
11872         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
11873         importing a remote directory not block the UI.
11875 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
11877         * data/glade/podcast-feed-properties.glade:
11878         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
11880 2005-12-04  James Livingston  <jrl@ids.org.au>
11882         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
11884         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
11885         to && to fix a mistake in the earlier podcast patch.
11887 2005-12-03  James Livingston  <jrl@ids.org.au>
11889         * data/glade/podcast-new.glade:
11890         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
11891         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
11893         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
11894         GValue, which stops occasional errors.
11896         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
11897         compile issue.
11899 2005-12-03  James Livingston  <jrl@ids.org.au>
11901         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
11903         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
11904         crasher with some podcasts feeds.
11906 2005-12-03  James Livingston  <jrl@ids.org.au>
11908         * data/rhythmbox.schemas: fix the gconf schema
11910 2005-12-03  James Livingston  <jrl@ids.org.au>
11912         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
11913         add a selection timeout to the sourcelist. This lets you hold a track
11914         over the playlist source, and then have the view switch so you can
11915         insert the track in the middle of the playlist. Closes bug 323044.
11917         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
11918         (select_on_drag_timeout), (remove_select_on_drag_timeout),
11919         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
11920         (rb_tree_dnd_add_drag_dest_support):
11921         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
11922         timeout.
11924         * sources/rb-sourcelist-model.c:
11925         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
11926         the source list.
11928 2005-12-02  Bastien Nocera  <hadess@hadess.net>
11930         * data/glade/audioscrobbler-prefs.glade: add a space before the web
11931         links, so that the text doesn't touch the button
11933 2005-12-02  James Livingston  <jrl@ids.org.au>
11935         Add full support for gnome-vfs remote files. Closes bug 140355.
11937         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
11938         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
11939         for authentication information from the user doesn't block the UI.
11941         (rhythmdb_entry_set_visibility): don't emit the signal twice.
11943         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
11944         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
11945         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
11946         (rhythmdb_process_stat_event), (emit_load_error_idle),
11947         (rhythmdb_process_metadata_load),
11948         (rhythmdb_process_queued_entry_set_event),
11949         (rhythmdb_process_file_created_or_modified),
11950         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
11951         (queue_stat_uri), (add_thread_main),
11952         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
11953         (rhythmdb_load), (rhythmdb_save_thread_main),
11954         (threadsafe_entry_set), (rhythmdb_query_internal),
11955         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
11956         (rhythmdb_do_full_query_internal),
11957         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
11958         (rhythmdb_volume_unmounted_cb),
11959         (rhythmdb_check_changed_file): trivial changes to support the
11960         asynchronous stats.
11962         * shell/main.c: (main): activate the authentication manager.
11964         * shell/rb-playlist-manager.c:
11965         (rb_playlist_manager_cmd_load_playlist),
11966         (rb_playlist_manager_cmd_save_playlist):
11967         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
11968         (rb_shell_cmd_add_file_to_library):
11969         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
11970         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
11971         remote files.
11973 2005-12-02  James Livingston  <jrl@ids.org.au>
11975         * shell/rb-playlist-manager.c: makes playlist menu items use the
11976         elipses correctly. Fixes bug 322283.
11978 2005-12-02  James Livingston  <jrl@ids.org.au>
11980         * shell/rb-playlist-manager.c:
11981         (rb_playlist_manager_load_playlists): fix silly mistake
11983 2005-12-02  James Livingston  <jrl@ids.org.au>
11985         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
11986         print out metadata-write unless --debug was passed.
11988         * rhythmdb/rhythmdb.c: (rhythmdb_load):
11989         * shell/rb-playlist-manager.c:
11990         (rb_playlist_manager_load_playlists): block writes to disk if they are
11991         still being loaded.
11993 2005-12-02  James Livingston  <jrl@ids.org.au>
11995         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
11996         ctrl-T, because Ctrl-D is used by "small mode"
11998 2005-12-02  James Livingston  <jrl@ids.org.au>
12000         * shell/rb-shell-preferences.c:
12001         (rb_shell_preferences_append_view_page):
12002         * sources/rb-library-source.c: (impl_get_config_widget):
12003         * sources/rb-podcast-source.c: (impl_get_config_widget):
12004         * sources/rb-source.c: (rb_source_get_config_widget):
12005         * sources/rb-source.h: Make the preference actually work.
12007         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
12008         if Rhythmbox is being run for the first time.
12010 2005-12-02  James Livingston  <jrl@ids.org.au>
12012         Add support for Rhythmbox to watch your library, and automatically add
12013         new tracks. Fixes bug 160159.
12015         * data/glade/library-prefs.glade: add "library location" preference
12016         * data/rhythmbox.schemas: add gconf key for the library location
12018         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
12019         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
12020         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
12021         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
12022         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
12023         (rhythmdb_load_thread_main), (rhythmdb_load),
12024         (monitor_subdirectory), (monitor_library_directory),
12025         (monitor_entry_file), (rhythmdb_sync_library_location),
12026         (library_location_changed_cb), (rhythmdb_check_changed_file),
12027         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
12028         specifiec in the gconf key for new additions. Also fix monitoring code
12029         so that it works properly, and notices deletions.
12031         * lib/rb-preferences.h:
12032         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
12033         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
12034         * shell/rb-audioscrobbler.h:
12035         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
12036         (rb_shell_preferences_append_view_page),
12037         (rb_shell_preferences_new):
12038         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
12039         it's preferences pane, so that we don't need #ifdef's through
12040         rb-shell-preferences.
12042         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
12043         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
12044         "preferences" property, so that sources can acccess it. This is needed
12045         because the library location pref needs to take effect when the window
12046         is closed.
12048         * sources/rb-library-source.c:
12049         (rb_library_source_library_location_changed),
12050         (rb_library_source_dispose), (rb_library_source_finalize),
12051         (rb_library_source_constructor), (impl_get_config_widget),
12052         (rb_library_source_preferences_sync),
12053         (rb_library_source_process_library_location_change),
12054         (rb_library_source_prefs_update),
12055         (rb_library_source_process_library_handle_selection),
12056         (rb_library_source_library_location_cb): set up and control the
12057         "library location" preference.
12059         * sources/rb-audiocd-source.c:(rb_source_class_init):
12060         * sources/rb-source.c: (rb_source_class_init): remove some pointless
12061         code.
12063 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12065         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
12066         (rb_feed_podcast_properties_dialog_update_title): 
12067         * data/glade/podcast-feed-properties.glade:
12068         Make the feed properties dialog consistent with the podcast
12069         properties dialog.
12071 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12073         * metadata/.cvsignore: 
12074         * po/.cvsignore: 
12075         * podcast/.cvsignore: Updated.
12077         * shell/main.c (main): Support DBus 0.6 flags.
12079 2005-11-30  Bastien Nocera  <hadess@hadess.net>
12081         * data/ui/rhythmbox-ui.xml:
12082         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
12083         (rhythmbd_entry_move_to_trash_set_error),
12084         (rhythmdb_entry_move_to_trash):
12085         * rhythmdb/rhythmdb.h:
12086         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
12087         (rb_shell_clipboard_cmd_delete),
12088         (rb_shell_clipboard_cmd_move_to_trash):
12089         * sources/rb-library-source.c: (rb_library_source_class_init),
12090         (impl_delete), (impl_move_to_trash):
12091         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12092         (impl_delete), (impl_move_to_trash):
12093         * sources/rb-removable-media-source.c:
12094         (rb_removable_media_source_class_init):
12095         * sources/rb-source.c: (rb_source_class_init),
12096         (rb_source_can_move_to_trash), (rb_source_delete),
12097         (rb_source_move_to_trash):
12098         * sources/rb-source.h:
12099         Add move_to_trash member for the sources, implement move to trash for
12100         the library and playlists
12101         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
12102         local files to the trash, and deleting them from the database
12103         (Closes: #315389)
12105 2005-11-30  William Jon McCann  <mccann@jhu.edu>
12107         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
12108         (rb_tray_icon_init, rb_tray_icon_finalize): 
12109         * shell/rb-statusbar.c (rb_statusbar_class_init) 
12110         (rb_statusbar_init, rb_statusbar_finalize): 
12111         * shell/rb-source-header.c (rb_source_header_class_init) 
12112         (rb_source_header_init, rb_source_header_finalize): 
12113         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
12114         (rb_shell_finalize): 
12115         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
12116         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
12117         * shell/rb-shell-player.c (rb_shell_player_class_init) 
12118         (rb_shell_player_init, rb_shell_player_finalize): 
12119         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
12120         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
12121         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
12122         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
12123         * shell/rb-play-order.c (rb_play_order_class_init) 
12124         (rb_play_order_init, rb_play_order_finalize): 
12125         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
12126         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
12127         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
12128         (rb_random_play_order_init, rb_random_play_order_finalize): 
12129         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
12130         (rb_history_finalize): 
12131         * shell/rb-commander.c (rb_commander_class_init) 
12132         (rb_commander_init, rb_commander_finalize): 
12133         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
12134         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
12135         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
12136         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
12137         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
12138         (rb_podcast_properties_dialog_init) 
12139         (rb_podcast_properties_dialog_finalize): 
12140         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
12141         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
12142         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
12143         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
12144         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
12145         (rb_feed_podcast_properties_dialog_init) 
12146         (rb_feed_podcast_properties_dialog_finalize): 
12147         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
12148         (rb_metadata_init, rb_metadata_finalize): 
12149         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
12150         (rb_station_properties_dialog_init) 
12151         (rb_station_properties_dialog_finalize): 
12152         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
12153         (rb_daap_share_init, rb_daap_share_dispose): 
12155         Use g_type_class_add_private in all classes. Closes bug 313688.
12156         
12157 2005-11-30  James Livingston  <jrl@ids.org.au>
12159         patch by: William Jon McCann <mccann@jhu.edu> to use
12160         g_type_class_add_private in all classes. Closes bug 313688.
12162         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
12163         (rb_thread_finalize):
12164         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
12165         (rb_player_finalize):
12166         * rhythmdb/rhythmdb-property-model.c:
12167         (rhythmdb_property_model_class_init),
12168         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
12169         * rhythmdb/rhythmdb-query-model.c:
12170         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
12171         (rhythmdb_query_model_finalize):
12172         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
12173         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
12174         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
12175         (rhythmdb_finalize):
12176         * sources/rb-daap-source.c: (rb_daap_source_class_init),
12177         (rb_daap_source_init), (rb_daap_source_dispose):
12178         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12179         (rb_iradio_source_init), (rb_iradio_source_finalize):
12180         * sources/rb-library-source.c: (rb_library_source_class_init),
12181         (rb_library_source_init), (rb_library_source_finalize):
12182         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12183         (rb_playlist_source_init), (rb_playlist_source_dispose):
12184         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
12185         (rb_podcast_source_init), (rb_podcast_source_finalize):
12186         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12187         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
12188         * sources/rb-sourcelist-model.h:
12189         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12190         (rb_sourcelist_init), (rb_sourcelist_finalize):
12191         * sources/rb-sourcelist.h:
12192         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
12193         * widgets/rb-cell-renderer-rating.c:
12194         (rb_cell_renderer_rating_init),
12195         (rb_cell_renderer_rating_class_init),
12196         (rb_cell_renderer_rating_finalize):
12197         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
12198         (rb_druid_finalize):
12199         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12200         (rb_entry_view_init), (rb_entry_view_finalize):
12201         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
12202         (rb_header_finalize):
12203         * widgets/rb-load-failure-dialog.c:
12204         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
12205         (rb_load_failure_dialog_finalize):
12206         * widgets/rb-property-view.c: (rb_property_view_class_init),
12207         (rb_property_view_init), (rb_property_view_finalize):
12208         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
12209         (rb_rating_finalize):
12210         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
12211         (rb_search_entry_init), (rb_search_entry_finalize):
12212         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12213         (rb_simple_view_init), (rb_simple_view_finalize):
12214         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
12215         (rb_song_display_box_init), (rb_song_display_box_finalize):
12216         * widgets/rb-song-info.c: (rb_song_info_class_init),
12217         (rb_song_info_init), (rb_song_info_finalize):
12218         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
12219         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
12221 2005-11-30  James Livingston  <jrl@ids.org.au>
12223         * iradio/rb-station-properties-dialog.c:
12224         (rb_station_properties_dialog_init),
12225         (rb_station_properties_dialog_new):
12226         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
12227         * lib/rb-glade-helpers.h:
12228         * podcast/rb-feed-podcast-properties-dialog.c:
12229         (rb_feed_podcast_properties_dialog_init),
12230         (rb_feed_podcast_properties_dialog_new):
12231         * podcast/rb-podcast-properties-dialog.c:
12232         (rb_podcast_properties_dialog_init),
12233         (rb_podcast_properties_dialog_new):
12234         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
12235         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
12236         * sources/rb-library-source.c: (impl_get_config_widget):
12237         * sources/rb-playlist-source-recorder.c:
12238         (rb_playlist_source_recorder_init):
12239         * widgets/rb-song-info.c: (rb_song_info_construct_single),
12240         (rb_song_info_constructor): create a single rb_glade_boldify_label()
12241         in rb-glade-helpers, rather than having eight implementation
12242         throughout the code.
12244 2005-11-30  James Livingston  <jrl@ids.org.au>
12246         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
12247         * lib/rb-util.h:
12248         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
12249         move the duration->string function into rb-utils, as it gets used in a
12250         few places.
12252         patch by: William Jon McCann <mccann@jhu.edu>
12254         * data/glade/podcast-properties.glade:
12255         * podcast/rb-podcast-properties-dialog.c:
12256         (rb_podcast_properties_dialog_init),
12257         (rb_podcast_properties_dialog_update),
12258         (rb_podcast_properties_dialog_update_title),
12259         (rb_podcast_properties_dialog_update_feed),
12260         (rb_podcast_properties_dialog_update_duration),
12261         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
12262         info dialog look more like the song info dialog. Use the same "Feed"
12263         value that is displayed in the treeview (ie. the album field), displays
12264         the duration, uses units in the bitrate field, and sort the fields in
12265         the same order.
12267 2005-11-29  James Livingston  <jrl@ids.org.au>
12269         * rhythmdb/rhythmdb-marshal.list:
12270         * rhythmdb/rhythmdb.h:
12271         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
12272         (emit_load_error_idle), (rhythmdb_process_metadata_load),
12273         (entry_to_rb_metadata), (emit_save_error_idle),
12274         (action_thread_main): emit error signal when metadata write fails.
12276         * shell/rb-shell.c: (rb_shell_constructor),
12277         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
12278         "metadata save" error and display it to the user.
12280 2005-11-29  James Livingston  <jrl@ids.org.au>
12282         * data/ui/rhythmbox-ui.xml:
12283         * sources/rb-podcast-source.c:
12284         (rb_podcast_source_songs_show_popup_cb),
12285         (rb_podcast_source_cmd_download_post),
12286         (rb_podcast_source_cmd_cancel_download): split download and cancel
12287         download commands. Replace usage of "Post" with "Esisode". Fixes bug
12288         321653.
12290 2005-11-18  William Jon McCann  <mccann@jhu.edu>
12292         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
12293         title on alert dialogs per the HIG.
12295         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
12296         the term Burn.
12297         (free_song_list): Routine to free song list.
12298         (rb_playlist_source_recorder_finalize): Use free_song_list.
12299         (rb_playlist_source_recorder_add_from_model): Return FALSE
12300         if unable to add all songs.  Check that duration of all
12301         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
12302         Fixes #321753.
12304         * sources/rb-playlist-source-recorder.c (check_media_length)
12305         (rb_playlist_source_recorder_start): Only check the duration
12306         and current media if the playlist length is longer than a
12307         standard CD (74 min).  Otherwise, just let the Recorder do the
12308         check.
12309         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
12310         drive at init.
12311         (rb_recorder_set_device): Don't leak drives.
12312         (rb_recorder_get_media_length): Use drive that was already set.
12313         (rb_recorder_burn): Let the recorder handle checking media type/size.
12314         Fixes bug 321754.
12316 2005-11-29  James Livingston  <jrl@ids.org.au>
12318         * rhythmdb/rhythmdb-query-model.c:
12319         (rhythmdb_query_model_set_sort_order):
12320         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
12321         emitting the tree-model "resorted" signal.
12323         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12324         (rb_entry_view_finalize), (rb_entry_view_set_property),
12325         (rb_entry_view_constructor), (rb_entry_view_resort_model):
12326         * widgets/rb-entry-view.h: add a function to resort the entry view,
12327         using the above function.
12329         * sources/rb-iradio-source.c:
12330         (rb_iradio_source_songs_view_sort_order_changed_cb):
12331         * sources/rb-library-source.c: (rb_library_source_finalize),
12332         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
12333         * sources/rb-playlist-source.c:
12334         (rb_playlist_source_songs_sort_order_changed_cb):
12335         * sources/rb-podcast-source.c:
12336         (rb_podcast_source_posts_view_sort_order_changed_cb),
12337         (rb_podcast_source_do_query): use the above function instead of
12338         re-creating the query model. This makes changing the sorting an order
12339         of magnitude faster, as it uses a single resorted signal rather than
12340         deleting and re-adding everything (which emits 2N signals). Closes bug
12341         315389.
12343 2005-11-29  James Livingston  <jrl@ids.org.au>
12345         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
12346         autosizing, which results in large speedups. Closes bug 312122.
12348         * po/ja.po: change the date format, so that it is a constant width
12350         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
12351         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
12352         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
12353         (rb_entry_view_constructor): make columns use fixed widths,
12354         disable column autosizing, and enable fixed-height mode.
12356         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
12357         (rb_entry_view_get_time_date_column_sample):
12358         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
12359         and get the canonical date format for the locale.
12361 ============ Version 0.9.2
12363 2005-11-28  James Livingston  <jrl@ids.org.au>
12365         * configure.ac: bump version to 0.9.2
12366         * NEWS: update with changes for 0.9.2
12368 2005-11-28  James Livingston  <jrl@ids.org.au>
12370         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12372         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
12373         Disable saving, renaming and delting for DAAP playlists.
12374         Fixes bug 322627.
12376 2005-11-28  James Livingston  <jrl@ids.org.au>
12378         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
12379         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
12380         prevent bug 322619.
12382         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12383         * sources/rb-removable-media-source.c:
12384         (rb_removable_media_source_class_init): fix ipod browser visibility
12385         problem.
12387 2005-11-28  James Livingston  <jrl@ids.org.au>
12389         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
12390         Avahi 0.6 support actually work. Fixes bug 322519.
12392 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
12394         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
12395         avahi is specified in --with-mdns
12397 2005-11-27  James Livingston  <jrl@ids.org.au>
12399         patch by: Bastien Nocera <hadess@hadess.net>
12401         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
12402         not the private one. Fixes bug 322485.
12404 2005-11-26  James Livingston  <jrl@ids.org.au>
12406         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
12407         Avahi 0.6, as well as 0.5.
12409         * configure.ac:
12410         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
12411         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
12412         (add_service):
12414 2005-11-25  James Livingston  <jrl@ids.org.au>
12416         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
12417         321926.
12419 2005-11-25  James Livingston  <jrl@ids.org.au>
12421         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
12422         correct type for checking the date against 0. Stops a warning when
12423         saving metadata.
12425 2005-11-25  James Livingston  <jrl@ids.org.au>
12427         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
12428         adjustment to be inside the element's limits. Without this songs that
12429         have large ReplayGain values will recieve no increase because they are
12430         outside the acceptable range, causing them to remain quiet.
12432 2005-11-25  James Livingston  <jrl@ids.org.au>
12434         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12435         * sources/rb-daap-source.c: (rb_daap_source_class_init):
12436         * sources/rb-ipod-source.c:
12437         * sources/rb-source.h:
12438         * sources/rb-library-source.h:
12439         * sources/rb-library-source.c: (rb_library_source_class_init),
12440         (rb_library_source_constructor),
12441         (rb_library_source_has_first_added_column),
12442         (rb_library_source_has_drop_support):
12443         * sources/rb-removable-media-source.c:
12444         (rb_removable_media_source_class_init): Make library-derived sources
12445         not show the Date Added column, as it doesn't make sense. Fixes bug
12446         322269.
12447         Move some of the feature funcs from the ipod and audio cd sources up to
12448         the removable media source.
12450 2005-11-24  James Livingston  <jrl@ids.org.au>
12452         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
12453         errors. oops.
12455 2005-11-24  James Livingston  <jrl@ids.org.au>
12457         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12458         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
12459         (rb_iradio_source_constructor): Chain up dispose method and use
12460         G_DEFINE_TYPE
12462 2005-11-24  James Livingston  <jrl@ids.org.au>
12464         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
12465         mistake in the last commit that can cause crashes.
12467 2005-11-24  James Livingston  <jrl@ids.org.au>
12469         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
12470         instead of g_printerr.
12472         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
12473         rb_debug instead of g_warning. The message happens every time for
12474         removable media/daap shares, so it's not unusual.
12476 2005-11-24  James Livingston  <jrl@ids.org.au>
12478         patch by: Tom Parker <palfrey@tevp.net>
12480         * configure.ac: fix libsoup test for enabling daap
12482 2005-11-23  James Livingston  <jrl@ids.org.au>
12484         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
12485         (rb_query_creator_init), (rb_query_creator_constructor),
12486         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
12487         empty row to queries with no criteria. Fixes bug 322078. use
12488         G_DEFINE_TYPE.
12490 2005-11-23  James Livingston  <jrl@ids.org.au>
12492         patch by:  <baptiste.millemathias@gmail.com>
12494         * help/C/quick-reference.xml: update the quick reference to have the
12495         correct key bindings.
12497 2005-11-22  James Livingston  <jrl@ids.org.au>
12499         * sources/rb-library-source.c: (genres_selection_reset_cb),
12500         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
12501         reset the query when all browser selections are removed.
12503 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
12505         * podcast/rb-podcast-manager.c:
12506         (rb_podcast_manager_db_entry_deleted_cb):
12507         Use a custom loop to remove podcast posts, rather than
12508         gtk_tree_model_foreach(), as deleting the entries within
12509         that loop causes the iterator to return the first entry
12510         twice.  Instead, we need to find the next entry before
12511         removing the current one. Fixes bug 321956.
12512         (rb_podcast_manager_entry_remove_cb): No longer needed.
12514 2005-11-22  James Livingston  <jrl@ids.org.au>
12516         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12517         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
12518         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
12520 2005-11-22  James Livingston  <jrl@ids.org.au>
12522         * sources/rb-podcast-source.c:
12523         (rb_podcast_source_post_date_cell_sort_func),
12524         (rb_podcast_source_post_status_cell_sort_func),
12525         (rb_podcast_source_post_feed_cell_sort_func):
12526         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
12527         (rb_entry_view_album_sort_func),
12528         (rb_entry_view_double_ceiling_sort_func),
12529         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
12530         the entry's location as a last resort when sorting, so the sort order
12531         is stable. This will stop entries moving around when two entries have
12532         the same sorting, and one of them gets played.
12534 2005-11-22  James Livingston  <jrl@ids.org.au>
12536         * daapsharing/rb-daap-connection.c:
12537         (rb_daap_connection_class_init), (rb_daap_connection_init),
12538         (connection_get_password), (build_message),
12539         (http_response_handler), (http_get), (handle_server_info),
12540         (handle_login), (handle_update), (handle_database_info),
12541         (handle_song_listing), (handle_playlists),
12542         (handle_playlist_entries), (rb_daap_connection_new),
12543         (rb_daap_connection_constructor), (rb_daap_connection_logout),
12544         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
12545         (rb_daap_connection_get_headers),
12546         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
12547         (rb_daap_connection_set_property),
12548         (rb_daap_connection_get_property):
12549         * daapsharing/rb-daap-connection.h:
12550         * sources/rb-daap-source.c: (rb_daap_source_dispose),
12551         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
12552         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
12553         of destroying the object when it is going to be used by a callback and
12554         fixes a double-free. Fixes bugs 321930 and 322007.
12556 2005-11-22  James Livingston  <jrl@ids.org.au>
12558         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
12559         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
12560         notification if there aren't any. Fixes bug 321968.
12562 2005-11-22  James Livingston  <jrl@ids.org.au>
12564         * rhythmdb/rhythmdb-property-model.c:
12565         (rhythmdb_property_model_set_property),
12566         (rhythmdb_property_model_finalize),
12567         (rhythmdb_property_model_compare),
12568         (rhythmdb_property_model_insert),
12569         (rhythmdb_property_model_delete_prop): Fix property model sorting
12570         where the display and sort keys are different. Fixes bug 321980.
12572 2005-11-22  James Livingston  <jrl@ids.org.au>
12574         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
12575         when import as a file or passed on the command line, and load them as
12576         playlists.
12578 2005-11-22  James Livingston  <jrl@ids.org.au>
12580         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
12582         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
12583         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
12584         a broken daap server. Fixes bug 321919.
12586 2005-11-22  James Livingston  <jrl@ids.org.au>
12588         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
12589         drag-and-drop for both the episodes and feeds list.
12590         
12591         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
12592         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
12593         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
12595         * widgets/rb-property-view.c: (rb_property_view_class_init),
12596         (rb_property_view_set_property), (rb_property_view_get_property),
12597         (rb_property_view_new), (rb_property_view_constructor):
12598         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12599         (rb_simple_view_new), (rb_simple_view_constructor):
12600         * widgets/rb-simple-view.h: add a "draggable" property to property
12601         views and set it to false for the feed list. Fixes bug 321284.
12603 2005-11-22  James Livingston  <jrl@ids.org.au>
12605         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
12607         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
12608         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12609         * sources/rb-ipod-source.c: (add_rb_playlist):
12610         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12611         (rb_playlist_source_set_property),
12612         (rb_playlist_source_get_property), (rb_playlist_source_new),
12613         (impl_receive_drag), (rb_playlist_source_add_location),
12614         (rb_playlist_source_new_from_xml):
12615         * sources/rb-playlist-source.h: give playlists and (optional)
12616         entry-type, and reject entries that don't match. Fixes bug 322006.
12618 2005-11-21  James Livingston  <jrl@ids.org.au>
12620         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
12621         (rb_source_header_finalize): remove the weak references when the
12622         source header is finalised. Stops the callbacks being called after the
12623         object is destroyed.
12625 2005-11-21  James Livingston  <jrl@ids.org.au>
12627         * shell/main.c: (main): don't try to acquite bonobo/dbus when
12628         --no-registration was passed. It causes warnings that make it
12629         impossible to run with --no-registration --g-fatal-warnings
12631 2005-11-21  James Livingston  <jrl@ids.org.au>
12633         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
12634         of strings when they are still in use. Fixes bug 321547.
12636         (rb_daap_connection_destroy): fix memory leak
12638 2005-11-21  James Livingston  <jrl@ids.org.au>
12640         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12641         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
12642         (rb_daap_mdns_resolve_cancel), (publish_cb),
12643         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
12644         support.
12646 2005-11-21  James Livingston  <jrl@ids.org.au>
12648         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
12649         sorting by genre
12651 2005-11-20  James Livingston  <jrl@ids.org.au>
12653         * podcast/rb-podcast-manager.c:
12654         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
12655         that we don't leak thread structures. Fixes bug 321636, and probably
12656         321775.
12658 2005-11-20  James Livingston  <jrl@ids.org.au>
12660         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
12661         (lookup_cd):
12662         * podcast/rb-podcast-manager.c: (start_job),
12663         (rb_podcast_manager_db_entry_deleted_cb),
12664         (rb_podcast_manager_entry_remove_cb):
12665         * podcast/rb-podcast-parse.c: (rb_insert_item),
12666         (rb_podcast_parse_load_feed):
12667         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
12668         * shell/rb-removable-media-manager.c:
12669         (rb_removable_media_manager_append_media_source):
12670         * shell/rb-shell.c: (add_to_library_response_cb):
12671         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
12672         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
12673         * sources/rb-iradio-source.c:
12674         (stations_view_drag_data_received_cb):
12675         * sources/rb-library-source.c: (string_list_equal),
12676         (impl_get_extra_views), (impl_receive_drag):
12677         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
12678         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
12679         (impl_receive_drag):
12680         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
12681         (rb_entry_view_append_column_custom), (harvest_entries):
12682         * widgets/rb-property-view.c:
12683         (rb_property_view_selection_changed_cb):
12684         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
12685         switch from using g_list_append to g_list_prepend. This changes
12686         operations from O(n^2) to O(n), which in cases like deleting a lot of
12687         tracks can give huge improvements in speed. Closes bug 321696.
12689 2005-11-20  James Livingston  <jrl@ids.org.au>
12691         * sources/rb-sourcelist.c: (rb_sourcelist_init),
12692         (rb_sourcelist_update_expander_visibility): fix indenting of child
12693         sources.
12695 2005-11-20  James Livingston  <jrl@ids.org.au>
12697         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12698         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
12699         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
12700         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
12701         (add_service), (entry_group_cb): dynamically allocate memory, rather
12702         than using static variables.
12704         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
12705         re-enable the daap share if the name hasn't changed.
12706         * shell/rb-shell-preferences.c:
12707         (share_name_entry_focus_out_event_cb): don't ask the daap share to
12708         change it's name when the checkbox is disabled. Fixed bug 321748.
12710 2005-11-18  James Livingston  <jrl@ids.org.au>
12712         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
12713         as hidden if it is on the current workspace.
12715 2005-11-17  William Jon McCann  <mccann@jhu.edu>
12717         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
12718         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
12719         (rb_podcast_properties_dialog_parse_time): 
12720         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
12721         (rb_feed_podcast_properties_dialog_parse_time):
12722         Rework the way the last mod time strings are created.  It was using
12723         thread unsafe functions, not creating value UTF, and not not checking
12724         the value of the result before modifying it.  This new method fixes
12725         these problems.
12727 2005-11-18  James Livingston  <jrl@ids.org.au>
12729         Don't reset the search box when viewing a different source, because it
12730         will change what is being played. Closes 321593.
12732         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
12733         the search box
12735         * shell/rb-source-header.c: (rb_source_header_class_init),
12736         (rb_source_header_init), (rb_source_header_finalize): use
12737         G_DEFINE_TYPE.
12739         (rb_source_header_set_property),
12740         (rb_source_header_source_weak_destroy_cb),
12741         (rb_source_header_search_cb): store the search text when leaving a
12742         source and put it in the search box when viewing it again.
12744 2005-11-18  James Livingston  <jrl@ids.org.au>
12746         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
12747         (save_entry):
12748         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
12749         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
12750         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
12751         time stamp.
12753         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
12754         last-seen as the timestamp of the last update of the feed. Don't
12755         re-add episodes that have been deleted. Closes 319759.
12757 2005-11-18  James Livingston  <jrl@ids.org.au>
12759         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
12760         that don't have the day name at the start. Closes 321645.
12762 2005-11-18  James Livingston  <jrl@ids.org.au>
12764         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
12765         (rb_podcast_manager_copy_post),
12766         (rb_podcast_manager_get_podcast_dir):
12767         * podcast/rb-podcast-manager.h:
12768         * sources/rb-podcast-source.c: (impl_get_config_widget),
12769         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
12770         download location switching to / if the prefs were opened before
12771         downloading an episode. Closes 321611.
12773 2005-11-18  James Livingston  <jrl@ids.org.au>
12775         * data/glade/podcast-new.glade:
12776         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12777         (rb_new_podcast_dialog_set_property),
12778         (rb_new_podcast_dialog_get_property),
12779         (rb_new_podcast_dialog_response_cb),
12780         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
12781         for entering new podcast urls in. Closes bug 321610.
12783 2005-11-18  James Livingston  <jrl@ids.org.au>
12785         * sources/rb-podcast-source.c: (construct_query_from_selection),
12786         (rb_podcast_source_do_query): allow podcast list to be re-sorted
12787         without restarting RB. Closes bug 321612.
12789 2005-11-18  James Livingston  <jrl@ids.org.au>
12791         * widgets/rb-entry-view.c: (set_column_visibility),
12792         (rb_entry_view_sync_columns_visible): when changing visibility of one
12793         column, don't hide and re-show all the others. Makes a show/hide
12794         column operation a lot faster.
12796 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
12798         Closes bug 321702.
12800         * iradio/rb-station-properties-dialog.c
12801          (rb_station_properties_dialog_update_bitrate):
12802         Mark the bitrate value as being kbps, using the same
12803         translatable format string as rb-song-info.c
12805         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
12806          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
12808         * shell/rb-shell-player.c (info_available_cb):
12809          Use RB_METADATA_FIELD_BITRATE to update the iradio
12810          station's bitrate value.
12812 2005-11-17  James Livingston  <jrl@ids.org.au>
12814         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
12816         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
12817         free a NULL date.
12819 2005-11-17  James Livingston  <jrl@ids.org.au>
12821         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
12823         * lib/rb-stock-icons.c: emit a single warning rather than multiple
12824         assertions. Lookup the icon size correctly.
12826 2005-11-16  William Jon McCann  <mccann@jhu.edu>
12828         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
12829         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
12830         Fix build errors.
12832 2005-11-16  James Livingston  <jrl@ids.org.au>
12834         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
12835         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
12836         (rb_shell_preferences_sync_column_button): block the toggle signal of
12837         the column checkboxes while setting their initial state. This stops
12838         the visibility being re-set, which causes a lot of time being spent
12839         measuring the columns aagin when opening the prefs window.
12841         Use G_DEFINE_TYPE.
12843 2005-11-16  James Livingston  <jrl@ids.org.au>
12845         * sources/rb-sourcelist.c: (rb_sourcelist_init),
12846         (rb_sourcelist_edit_source_name): don't assume that the editable
12847         source name is in the first column, because it isn't. Fixes bug
12848         320137.
12850 2005-11-16  James Livingston  <jrl@ids.org.au>
12852         * daapsharing/rb-daap-mdns.h:
12853         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
12854         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
12855         parts can know why operations failed. Avahi can report that the daemon
12856         was not running. Howl doesn't do this (yet).
12857         
12858         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
12859         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
12860         (browse_cb): don't display mdns errors to the user, if it wa because
12861         the daemon was not running.
12863 2005-11-16  James Livingston  <jrl@ids.org.au>
12865         * rhythmdb/rhythmdb-property-model.c:
12866         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
12867         (rhythmdb_property_model_compare),
12868         (rhythmdb_property_model_insert),
12869         (rhythmdb_property_model_insert_prop),
12870         (rhythmdb_property_model_delete),
12871         (rhythmdb_property_model_delete_prop),
12872         (rhythmdb_property_model_get_value): use RBRefStrings rather than
12873         copying the string and re-creating the sort key. Saves a little bit of
12874         memory and time.
12876         (rhythmdb_property_model_perform_sync),
12877         (rhythmdb_property_model_sync): perform the count sync in an idle
12878         callback, so that it doesn't have to be re-run once per value when
12879         loading.
12881 2005-11-16  James Livingston  <jrl@ids.org.au>
12883         * rhythmdb/rhythmdb-query-model.c:
12884         (rhythmdb_query_model_entry_deleted_cb),
12885         (rhythmdb_query_model_remove_entry): remove deleted entries from the
12886         limited list. Stops problems if they are deleted, and then things on
12887         the main list are
12889 2005-11-16  James Livingston  <jrl@ids.org.au>
12891         * NEWS: update NEWS
12893         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
12894         button's minimise-to-tray action
12896 2005-11-16  James Livingston  <jrl@ids.org.au>
12898         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
12899         leak. Disable adding newly created files for now, because it doesn't
12900         work properly.
12902         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12903         (rb_sourcelist_model_finalize):
12904         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12905         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
12907 2005-11-16  James Livingston  <jrl@ids.org.au>
12909         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
12910         problem where a GError* wasn't being set to NULL. Actually check the
12911         result.
12913 2005-11-16  James Livingston  <jrl@ids.org.au>
12915         * doc/reference/tmpl/rb-entry-view.sgml:
12916         * doc/reference/tmpl/rhythmbox-unused.sgml:
12917         * doc/reference/tmpl/rhythmdb-query-model.sgml:
12918         * doc/reference/tmpl/rhythmdb.sgml:
12919         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
12920         docs, including the patch that was on bug 
12922         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
12923         API, because it should only be used by RhythmDB itself.
12925 2005-11-16  James Livingston  <jrl@ids.org.au>
12927         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
12928         pausing by middle clicking on the tray icon.
12930 2005-11-15  James Livingston  <jrl@ids.org.au>
12932         * configure.ac: enable audioscrobbler support by default, if libsoup
12933         is present.
12935 2005-11-15  James Livingston  <jrl@ids.org.au>
12937         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12938         Closes bug 321157.
12940         * configure.ac:
12941         * daapsharing/rb-daap-connection.c: (build_message),
12942         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
12943         support gzip encoded daap connections.
12945         (handle_song_listing): fix leak
12947 2005-11-15  James Livingston  <jrl@ids.org.au>
12949         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
12950         * sources/rb-podcast-source.c:
12951         (rb_podcast_source_post_date_cell_data_func): make the date format
12952         translatable again, so that translators can choose the best format for
12953         their locale (%x is huge in some locales)
12955 2005-11-15  James Livingston  <jrl@ids.org.au>
12957         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
12958         (end_job): mark podcast episodes as failed, if the metadata load
12959         fails. This will prevent people playing non-audio enclosures, helping
12960         stop bug 320366.
12962 2005-11-14  James Livingston  <jrl@ids.org.au>
12964         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
12965         video sink to fakesink. This will stop problems (potentially crashers)
12966         that will occur if the file contains a video stream.
12968         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
12969         rather than using magic numbers everywhere.
12971         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
12972         * sources/rb-podcast-source.c:
12973         (rb_podcast_source_songs_show_popup_cb),
12974         (rb_podcast_source_cmd_download_post),
12975         (rb_podcast_source_post_status_cell_data_func),
12976         (rb_podcast_source_entry_activated_cb): use the above constants.
12978         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
12979         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
12980         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
12981         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
12982         (cancel_job), (download_progress_cb),
12983         (rb_podcast_manager_cancel_download),
12984         (rb_podcast_manager_insert_feed): use the constants, and fix a
12985         trhead-safety issue.
12987 2005-11-14  Bastien Nocera  <hadess@hadess.net>
12989         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
12990         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
12991         entry-changed events after stats on startup, fixes entry deleted from
12992         filtered views not disappearing
12994 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
12996         Fix rhythmdb query model refcount and polling problems. Closes bug
12997         321410.
12999         * rhythmdb/rhythmdb-property-model.c:
13000         (rhythmdb_property_model_finalize):
13001          Unref the query model if we have one.
13003         * rhythmdb/rhythmdb-query-model.h:
13004          Remove poll and cancel methods.  Query cancellation
13005          never did anything anyway.
13007         * rhythmdb/rhythmdb-query-model.c:
13008         (rhythmdb_query_model_init): Remove GAsyncQueues.
13009          Replace the GAsyncQueue-based update processing
13010          with a simpler g_idle_add approach; still has the
13011          same queueing properties, but now we don't poll the
13012          model forever and updates are processed immediately.
13014         (_unref_entry), (rhythmdb_query_model_finalize):
13015          Unref DB entries when finalized
13017         (rhythmdb_query_model_has_pending_changes):
13018          Use our own counter to decide if there are updates pending
13020         (rhythmdb_query_model_process_update), (idle_process_update):
13021          Process updates using g_idle_add, or directly if possible
13023         (rhythmdb_query_model_signal_complete),
13024         (rhythmdb_query_model_add_entries):
13025          Change to new update processing method
13027         (idle_poll_model), (rhythmdb_query_model_poll):
13028          Remove GAsyncQueue-based update processing.
13030         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
13031          No need to poll the model any more - updates are processed
13032          directly for synchronous queries.
13034         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
13035          Property model needs to be unref'd here
13037         * sources/rb-library-source.c: (rb_library_source_do_query):
13038          Don't try to cancel the active query (it never worked anyway),
13039          remove obsolete poll call, unref property models as required,
13040          and don't unref the cached 'all' query, since hold on to it.
13041          We unref it when the sort order changes, which forces the query
13042          to be rerun.
13044         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13045          Unref the property model as required
13047         (rb_podcast_source_do_query):
13048          Treat any query with no selected feeds and no search text as
13049          an 'all' query.  Unref query models except for the cached
13050          'all' query, since we hold on to that.
13052         (rb_podcast_source_cmd_update_all):
13053          Unref the property model as required.
13055         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
13056          Don't try to cancel the query (it never worked anyway)
13058         (rb_entry_view_poll_model):
13059          No need for this any more.
13061         * widgets/rb-entry-view.h:
13062          Remove obsolete function rb_entry_view_poll_model
13064         * widgets/rb-property-view.c: (rb_property_view_set_property):
13065          Ref and unref the property model as required.
13067 2005-11-14  James Livingston  <jrl@ids.org.au>
13069         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13071         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
13072         for error. Closes bug 321416.
13074 2005-11-14  James Livingston  <jrl@ids.org.au>
13076         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13078         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
13079         a crasher if a feed's last-post value isn't set. Closes bug 321353.
13081 2005-11-14  James Livingston  <jrl@ids.org.au>
13083         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
13084         * shell/rb-removable-media-manager.c:
13085         (rb_removable_media_manager_set_uimanager):
13086         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
13087         translation domain for GTK action groups.
13089 2005-11-12  James Livingston  <jrl@ids.org.au>
13091         * po/POTFILES.in: remove the old station-new files
13093 2005-11-12  James Livingston  <jrl@ids.org.au>
13095         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13096         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
13097         (save_entry): cause Rhythmbox to re-read the metadata from a file,
13098         when upgrading from a pre-Date-supporting version to a version that
13099         supports Date metadata. Closes bug 320760.
13101 2005-11-12  James Livingston  <jrl@ids.org.au>
13103         Add "update all podcast feeds" command. Closes bug 319954.
13105         * data/ui/rhythmbox-ui.xml: add to source context menu.
13107         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13108         (register_action_group), (rb_podcast_source_cmd_download_post),
13109         (rb_podcast_source_cmd_delete_feed),
13110         (rb_podcast_source_cmd_properties_feed),
13111         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
13112         rather than the shell.
13114         (rb_podcast_source_update_feed_func),
13115         (rb_podcast_source_cmd_update_all): update every feed.
13117 2005-11-11  James Livingston  <jrl@ids.org.au>
13119         * shell/rb-shell-player.c: (rb_shell_player_class_init),
13120         (rb_shell_player_constructor), (rb_shell_player_finalize):
13121         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
13122         others follow the HIG recommentations.
13124 2005-11-11  James Livingston  <jrl@ids.org.au>
13126         * podcast/rb-podcast-manager.c:
13127         (rb_podcast_manager_subscribe_feed): check that the url is valid,
13128         before trying to use it.
13130 2005-11-11  James Livingston  <jrl@ids.org.au>
13132         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
13133         (rb_entry_view_append_column): When sorting by year, sort by album
13134         within a particular year.
13136 2005-11-11  James Livingston  <jrl@ids.org.au>
13138         * NEWS: updates
13140 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
13141         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
13142         spelling of "Language."
13144 2005-11-11  James Livingston  <jrl@ids.org.au>
13146         * rhythmdb/rhythmdb-property-model.c:
13147         (rhythmdb_property_model_row_inserted_cb),
13148         (rhythmdb_property_model_prop_changed_cb),
13149         (rhythmdb_property_model_entry_removed_cb),
13150         (rhythmdb_property_model_insert_prop),
13151         (rhythmdb_property_model_sync): display the count after the "All"
13152         entry of a property model.
13154         * widgets/rb-property-view.c: (rb_property_view_class_init),
13155         (rb_property_view_finalize), (rb_property_view_constructor): use
13156         G_DEFINE_TYPE
13158 2005-11-10  James Livingston  <jrl@ids.org.au>
13160         * rhythmdb/rhythmdb-query-model.c:
13161         (rhythmdb_query_model_remove_entry):
13162         * rhythmdb/rhythmdb-query-model.h: make
13163         rhythmdb_query_model_remove_entry return whether the entry was in the
13164         model.
13166         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
13167         don't add non-SONG entries, as it doesn't really work and can cause
13168         crashes.
13170         (rb_playlist_source_remove_location): assert if the playlist and model
13171         differ on whether the entry is in the playlist
13173 2005-11-10  James Livingston  <jrl@ids.org.au>
13175         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13176         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
13177         (rb_podcast_manager_thread_parse_feed),
13178         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
13179         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
13180         emulating one with a list and mutex. Fixes a couple of threading
13181         issues.
13182         
13183         (rb_podcast_manager_insert_feed): fix some problems with ignoring
13184         updated feeds.
13185         
13186         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
13187         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
13188         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
13189         * podcast/rb-podcast-parse.c: (rb_insert_item),
13190         (rb_podcast_parse_channel_free):
13191         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
13192         fix some typos, and make a bit of code clearer.
13194 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
13196         Make the "delete podcast" dialog better. Closes bug 320899.
13198         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
13199         Add PROP_WINDOW for rb_shell_get_property so we can access the
13200         GtkWindow widget of the main window. 
13201         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
13202         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
13203         podcast feed delete dialog less confusing as well.
13205 2005-11-09  James Livingston  <jrl@ids.org.au>
13207         * shell/rb-removable-media-manager.c:
13208         (rb_removable_media_manager_mount_volume),
13209         (rb_removable_media_manager_scan): Fix a crasher where we were getting
13210         NULL for a cd volume.
13212 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13214         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
13215         method return a gboolean indicating whether the changes
13216         to the entry have already been applied.
13218         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
13219         only modify the entry if impl_entry_set returns FALSE.
13221         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
13222         When setting the location of an entry, update the
13223         hash table mapping locations to entries.
13225 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13227         * data/glade/Makefile.am:
13228         * iradio/Makefile.am:
13229           Remove 'new station' dialog.
13231         * iradio/rb-station-properties-dialog.h:
13232         * sources/rb-iradio-source.c: (impl_song_properties):
13233         * shell/rb-shell.c: (rb_shell_cmd_new_station):
13234          Add 'new station' mode parameter to
13235          rb_station_properties_dialog_new.
13237         * (rb_station_properties_dialog_response_cb),
13238         (rb_station_properties_dialog_create_station):
13239          When in 'new station' mode, create the station
13240          when OK button is pressed.
13242         * iradio/rb-station-properties-dialog.c:
13243         (rb_station_properties_dialog_location_changed_cb):
13244          Only enable OK button if a location is specified
13245         (rb_station_properties_dialog_init),
13246         (rb_station_properties_dialog_new),
13247         (rb_station_properties_dialog_update),
13248         (rb_station_properties_dialog_update_title),
13249         (rb_station_properties_dialog_rated_cb),
13250         (rb_station_properties_dialog_update_play_count),
13251         (rb_station_properties_dialog_update_bitrate),
13252         (rb_station_properties_dialog_update_last_played),
13253         (rb_station_properties_dialog_update_rating),
13254         (rb_station_properties_dialog_update_playback_error),
13255         (rb_station_properties_dialog_show):
13256          Handle 'new station' mode, where there's no current
13257          station to edit.
13259 2005-11-08  James Livingston  <jrl@ids.org.au>
13261         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
13262         keybinding for track columns consistent between library and playlist
13263         sources.
13265 2005-11-07  James Livingston  <jrl@ids.org.au>
13267         * data/ui/rhythmbox-ui.xml:
13268         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
13269         "Edit" item to playlist menu. Closes bug 311470.
13271 2005-11-07  James Livingston  <jrl@ids.org.au>
13273         patch by: Jaap A. Haitsma <jaap@haitsma.org>
13275         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
13276         confirmation to save dialogs, with gtk 2.8 or higher.
13278 2005-11-07 James Livingston  <jrl@ids.org.au>
13279         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
13280         requirement to a general on, because people are going to have it for
13281         the other dependencies.
13283 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
13285         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
13286         delete dialog less confusing.  Use HIG recommended button order.
13287         Closes bug 320840.
13289 2005-11-06  James Livingston  <jrl@ids.org.au>
13291         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
13292         drag-and-drop error.
13293         
13294         * sources/rb-library-source.c: (rb_library_source_constructor): only
13295         add drag-and-drop for the Library itself, subclasses can add support
13296         themselves if they want it.
13298         * sources/rb-removable-media-source.c:
13299         (rb_removable_media_source_class_init): by default removable media
13300         sources do not support dnd
13302 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
13304         * data/glade/station-properties.glade:
13305          Add box containing error icon and error message label
13306         * iradio/rb-station-properties-dialog.c:
13307         (rb_station_properties_dialog_class_init),
13308         (rb_station_properties_dialog_finalize):
13309          Change this class to use G_DEFINE_TYPE
13310         (rb_station_properties_dialog_init),
13311         (rb_station_properties_dialog_update),
13312         (rb_station_properties_dialog_update_playback_error):
13313          Display error icon and message when there is one, and hide the error
13314          box otherwise.
13315         (rb_station_properties_dialog_show): Hack widget show
13316          method to update the visibility of the error info box when showing
13317          the widget.  Otherwise the icon is displayed all the time (same thing
13318          is done in rb-song-info). Closes bug 320749.
13320 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
13322         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
13323         parsing of the duration of podcast episodes from the feed. Closes bug
13324         320748.
13326 2005-11-05  James Livingston  <jrl@ids.org.au>
13328         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
13329         release date metadata ("Year"). Closes bug 166093.
13331         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
13332         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
13333         (rb_metadata_gst_add_tag_data):
13334         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13335         (save_entry):
13336         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
13337         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
13338         (set_props_from_metadata), (rhythmdb_entry_set_internal),
13339         (rhythmdb_prop_get_type):
13340         * rhythmdb/rhythmdb.h: add support for "date" property
13341         
13342         * data/glade/general-prefs.glade:
13343         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
13344         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
13345         (rb_entry_view_append_column):
13346         * widgets/rb-entry-view.h:
13347         * sources/rb-library-source.c: (rb_library_source_constructor):
13348         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
13349         "Year" colums
13351         * data/glade/song-info.glade:
13352         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
13353         (rb_song_info_construct_single), (rb_song_info_constructor),
13354         (rb_song_info_populate_dialog), (rb_song_info_update_year),
13355         (rb_song_info_sync_entry_single): Add "Year" to song info window
13357         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
13358         sorted by year.
13360 2005-11-05  James Livingston  <jrl@ids.org.au>
13362         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
13363         description if it's very long.
13365 2005-11-05  James Livingston  <jrl@ids.org.au>
13367         pathc by: Artem Baguinski <femistofel@gmail.com>
13369         * help/C/Makefile.am:
13370         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
13371         Closes bug 320613.
13373 2005-11-05  James Livingston  <jrl@ids.org.au>
13375         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13377         * daapsharing/rb-daap-share.c: (write_next_chunk),
13378         (message_finished), (databases_cb): Use chunked file loading and
13379         sending in the DAAP server. This should reduce the amount of memory
13380         required to send files to the client.
13382 2005-11-05  James Livingston  <jrl@ids.org.au>
13384         * configure.ac: make the nautilus_burn_drive_door_is_open detection
13385         work better on some systems. Closes 320622.
13387 2005-11-05  James Livingston  <jrl@ids.org.au>
13389         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
13390         homepage, so that users can find out what AudioScrobbler is. Add
13391         access keys.
13393         * data/glade/daap-prefs.glade:
13394         * data/glade/general-prefs.glade:
13395         * data/glade/library-prefs.glade: make the indent be more consistent
13397         * data/glade/podcast-prefs.glade: 
13398         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13399         (impl_get_config_widget): move thing out of code into glade, where
13400         they belong
13402 2005-11-05  James Livingston  <jrl@ids.org.au>
13404         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
13405         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
13407 2005-11-04  James Livingston  <jrl@ids.org.au>
13409         * configure.ac: don't print DAAP configure info twice
13411 2005-11-04  James Livingston  <jrl@ids.org.au>
13413         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13414         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
13415         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
13416         #ifdefs, since we removed the symbol. Oops
13418 2005-11-04  James Livingston  <jrl@ids.org.au>
13420         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
13421         after the connect line, not before. Oops.
13423 2005-11-04  James Livingston  <jrl@ids.org.au>
13425         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
13426         fix some warnings
13428 2005-11-03  James Livingston  <jrl@ids.org.au>
13430         * NEWS: update the news file
13432         * data/glade/general-prefs.glade: make the prefs refer to "time" not
13433         "duration" column.
13435         * data/ui/rhythmbox-ui.xml:
13436         * shell/rb-playlist-manager.c:
13437         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13438         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
13439         and "delete" for feeds.
13441 2005-11-03  James Livingston  <jrl@ids.org.au>
13443         * sources/rb-podcast-source.c: (impl_delete),
13444         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
13445         feed. Closes 319760.
13447 2005-11-03  James Livingston  <jrl@ids.org.au>
13449         Don't start playing from the remote site when a un-downloaded podcast
13450         is activated. Closes 319983.
13451         
13453         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13454         (write_job_data), (download_progress_cb): write the local location as
13455         soon as any data is recieved
13457         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
13458         the mountpoint to NULL for podcast episodes that haven't yet been
13459         downloaded.
13460         
13461         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
13462         start playing a podcast if it hasn't been downloaded.
13463         
13464         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13465         (rb_podcast_source_entry_activated_cb): begin downloading when the
13466         podcast is activated.
13468 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
13470         * data/glade/general-prefs.glade:  Fix capitalization.
13471         * shell/rb-removable-media-manager.c:  Add a mnemonic.
13472         * sources/rb-podcast-source.c:
13473         (rb_podcast_source_songs_show_popup_cb),
13474         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
13476 2005-11-03  James Livingston  <jrl@ids.org.au>
13478         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
13480         * shell/rb-removable-media-manager.c:
13481         (rb_removable_media_manager_mount_volume): don't check network or
13482         autofs mounts, as they're not going to be removable media. Stops
13483         sending lots of warnings to syslog. Closes 320571.
13485         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
13486         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
13487         320570.
13489 2005-11-03  James Livingston  <jrl@ids.org.au>
13491         Add support for playing audio CDs. Metadata lookup is done using
13492         SoundJuicer's MusicBrainz lookup code, which can be switched to using
13493         the library when it gets broken out of S-J.
13494         
13495         Add a "rescan media" menu item, and commands for ejecting removable
13496         media.
13498         Move nautilus-cd-burner from optional to required depenency.
13500         * configure.ac:
13501         * data/ui/rhythmbox-ui.xml:
13502         * metadata/Makefile.am:
13503         + metadata/sj-error.c:
13504         + metadata/sj-error.h:
13505         + metadata/sj-metadata-marshal.list:
13506         + metadata/sj-metadata-musicbrainz.c:
13507         + metadata/sj-metadata-musicbrainz.h:
13508         + metadata/sj-metadata.c:
13509         + metadata/sj-metadata.h:
13510         + metadata/sj-structures.c:
13511         + metadata/sj-structures.h:
13512         * player/Makefile.am:
13513         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
13514         * po/POTFILES.in:
13515         * shell/Makefile.am:
13516         * shell/rb-removable-media-manager.c:
13517         (rb_removable_media_manager_dispose), (poll_tray_opened),
13518         (end_cd_drive_monitor), (begin_cd_drive_monitor),
13519         (rb_removable_media_manager_load_media),
13520         (rb_removable_media_manager_mount_volume),
13521         (rb_removable_media_manager_cmd_eject_medium),
13522         (rb_removable_media_manager_cmd_scan_media),
13523         (rb_removable_media_manager_check_volume),
13524         (rb_removable_media_manager_unmount_volume_swap),
13525         (rb_removable_media_manager_scan):
13526         * sources/Makefile.am:
13527         + sources/rb-audiocd-source.c:
13528         + sources/rb-audiocd-source.h:
13529         * tests/Makefile.am:
13531 2005-11-02  James Livingston  <jrl@ids.org.au>
13533         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13535         * sources/rb-iradio-source.c:
13536         (stations_view_drag_data_received_cb):
13537         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
13538         don't crash when the second uri is missing frm the drop, which
13539         browsers sometimes do.
13541 2005-11-01  James Livingston  <jrl@ids.org.au>
13543         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13544         (rb_podcast_manager_insert_feed):
13545         * podcast/rb-podcast-manager.h:
13546         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
13547         (rb_set_item_value), (rb_validate_item_propert),
13548         (rb_podcast_parse_date), (rb_podcast_parse_time):
13549         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
13550         from the feed.
13552 2005-10-31  James Livingston  <jrl@ids.org.au>
13554         * ChangeLog:
13555         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
13556         huge
13558 2005-10-31  James Livingston  <jrl@ids.org.au>
13560         * sources/rb-podcast-source.c:
13561         (rb_podcast_source_post_date_cell_data_func): generate the date string
13562         in a way that is correct in all locales.
13563         
13564         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
13565         (rhythmdb_entry_sync_mirrored): make the last played/date added
13566         columns use the same format.
13568 2005-10-30  James Livingston  <jrl@ids.org.au>
13571         * podcast/rb-podcast-manager.c:
13572         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
13573         
13574         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
13575         iradio errors better.
13577 2005-10-30  James Livingston  <jrl@ids.org.au>
13579         patch by: Artem Baguinski <femistofel@gmail.com>
13581         * metadata/rb-metadata-gst.c: (rb_metadata_init):
13583 2005-10-30  James Livingston  <jrl@ids.org.au>
13585         * podcast/rb-podcast-manager.c:
13586         (rb_podcast_manager_subscribe_feed),
13587         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
13588         already been added, usually as a radio station. Closes 319434.
13590 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
13592         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
13593         mnemonics & resize issues)
13594         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
13595         & mnemonics)
13596         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
13597         widget for the "download location" label.
13599         Closes bug 320184.
13601 2005-10-29  James Livingston  <jrl@ids.org.au>
13603         Allow the search box to match words from multiple properties. Closes
13604         bug 139196. Thanks to the person from IRC who did a lot of the initial
13605         work.
13608         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
13609         * lib/rb-util.h: Add functions to split a string into words, and one
13610         to perform "search folding" which is currently like casefolding but
13611         also strips punctuation
13612         
13613         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
13614         (rhythmdb_query_preprocess):
13615         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
13616         against title, artist, album and genre (for the search box)
13617         
13618         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
13619         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13620         (save_entry), (search_match_properties),
13621         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
13622         splitting into words and matching across multiple properties.
13623         
13624         * sources/rb-library-source.c: (construct_query_from_selection): use
13625         the new SEARCH_MATCH property for the search box
13626         
13627         * widgets/rb-entry-view.c: (type_ahead_search_func):
13629 2005-10-29  James Livingston  <jrl@ids.org.au>
13631         * lib/rb-stock-icons.c: (rb_stock_icons_init):
13632         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
13633         
13634         * shell/rb-playlist-manager.c:
13635         * shell/rb-shell.c: use the above stock ids, so that the icons get set
13636         correctly.
13637         
13638         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
13639         initial state of the shuffle/repeat menu items correctly. Patch from
13640         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
13642 2005-10-29  James Livingston  <jrl@ids.org.au>
13644         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
13645         double-free.
13646         
13647         * widgets/rb-cell-renderer-pixbuf.c:
13648         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
13649         icon go black when row is not selected
13650         
13651         * doc/reference/tmpl/rb-daap-connection.sgml:
13652         * doc/reference/tmpl/rhythmdb.sgml: doc updates
13654 2005-10-29  James Livingston  <jrl@ids.org.au>
13656         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
13657         silly mistake, where it could think partial downloads has been
13658         completed.
13660 2005-10-29  James Livingston  <jrl@ids.org.au>
13662         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13664         * data/glade/song-info.glade:
13665         * widgets/rb-song-info.c: (rb_song_info_construct_single),
13666         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
13667         (rb_song_info_sync_entry_single): show the disc number in the song
13668         info window. From bug 311199.
13670 2005-10-29  James Livingston  <jrl@ids.org.au>
13672         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
13673         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
13674         regularly. Closes 155306.
13676 2005-10-29  James Livingston  <jrl@ids.org.au>
13678         * podcast/rb-podcast-manager.c:
13679         (rb_podcast_manager_download_entry),
13680         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13681         (rb_podcast_manager_insert_feed):
13682         * podcast/rb-podcast-manager.h:
13683         * podcast/rb-podcast-parse.c: (rb_set_item_value),
13684         (rb_podcast_parser_start_element):
13685         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
13686         don't download them again. However, it can't resume
13687         partially-downloaded ones.
13689 2005-10-28  James Livingston  <jrl@ids.org.au>
13691         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
13692         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
13693         work. Don't attempt to write duration as a tag.
13695         Thanks to Artem Baguinski <femistofel@gmail.com>
13697 2005-10-28  James Livingston  <jrl@ids.org.au>
13699         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
13700         don't disable the status-bar menu item when the current source doesn't
13701         use the search box.
13703 2005-10-28  James Livingston  <jrl@ids.org.au>
13705         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
13706         crash if the file has unknown length
13708 2005-10-27  James Livingston  <jrl@ids.org.au>
13710         * daapsharing/rb-daap-connection.c:
13711         (rb_daap_connection_state_done): don't assert when a daap server
13712         doesn't have any playlists
13714 2005-10-27  James Livingston  <jrl@ids.org.au>
13716         * sources/rb-sourcelist-model.c:
13717         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
13718         source for the sourcelist. Closes bug 319817.
13720 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
13722         Patch by: Renato Araujo <renatox@gmail.com>
13724         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
13725           Fix for a crasher caused by previous patch.
13727 2005-10-26  James Livingston  <jrl@ids.org.au>
13729         * data/glade/podcast-prefs.glade:
13730         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
13731         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
13732         * sources/rb-podcast-source.c: (rb_podcast_source_new):
13733         * podcast/rb-podcast-manager.c:
13734         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13735         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
13736         * shell/rb-shell.c: Change some strings to make them more consistent.
13737         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
13738         makes it clearer which is which. "Episode" may not be the best term,
13739         but it seems to be widely used.
13740         
13741         Also fix some strings that weren't marked as translatable.
13742         
13743         * podcast/rb-feed-podcast-properties-dialog.c:
13744         (rb_feed_podcast_properties_dialog_class_init),
13745         (rb_feed_podcast_properties_dialog_finalize):
13746         * podcast/rb-new-podcast-dialog.c:
13747         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
13748         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13749         (rb_simple_view_finalize), (rb_simple_view_constructor):
13750         * podcast/rb-podcast-properties-dialog.c:
13751         (rb_podcast_properties_dialog_class_init),
13752         (rb_podcast_properties_dialog_finalize):
13753         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
13754         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
13755         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
13756         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
13757         use G_DEFINE_TYPE, instead of doing it manually.
13759 2005-10-26  James Livingston  <jrl@ids.org.au>
13761         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
13762         <jrl@ids.org.au>
13764         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
13765         (rb_metadata_init): Check that the necessary plugins are present to do
13766         id3 editing.
13767         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
13768         corrupted before replacing the original.
13770 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
13772         reviewed by: James Livingston <jrl@ids.org.au>
13774         Assign sequential IDs to playlists for DAAP rather than using the
13775         address of the playlist object.  Less flaky, and should work on 64bit
13776         platforms. Closes bug 319304.
13778         * daapsharing/rb-daap-share.c: 
13779         (rb_daap_share_set_property): watch for playlist creation
13780         (_find_by_id), (_find_by_source): playlist list search functions
13781         (rb_daap_share_playlist_created),
13782         (rb_daap_share_process_playlist),
13783         (rb_daap_share_playlist_destroyed):
13784          update playlist list as it changes, use weak refs on 
13785          playlists to get notified on destroy.
13786         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
13787          destroy playlist list on shutdown
13788         (add_playlist_to_mlcl): use playlist ID rather than pointer in
13789          DAAP response
13790         (databases_cb): search for playlist ID in list rather than just
13791          converting it to a pointer; return HTTP 404 if playlist not 
13792          found.
13793         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
13794          is already used for the main library
13796 2005-10-26  James Livingston  <jrl@ids.org.au>
13798         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13800         * daapsharing/rb-daap-connection.c: (build_message),
13801         (http_response_handler), (http_get), (handle_server_info),
13802         (handle_login), (handle_update), (handle_database_info),
13803         (handle_song_listing), (handle_playlists),
13804         (handle_playlist_entries), (handle_logout),
13805         (rb_daap_connection_new), (rb_daap_connection_logout),
13806         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
13807         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
13808         * daapsharing/rb-daap-connection.h:
13809         * sources/rb-daap-source.c: (rb_daap_source_activate),
13810         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
13811         (rb_daap_source_disconnect): Make connecting to DAAP sources
13812         asynchronous, so that non-responsive servers don't hang the UI. Closes
13813         316225.
13815 2005-10-26  James Livingston  <jrl@ids.org.au>
13817         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13819         * rhythmdb/rhythmdb-query-model.c:
13820         (rhythmdb_query_model_do_reorder): generate the row re-order map
13821         correctly.
13822         
13823         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
13824         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
13825         Update selection when rows get re-ordered. Closes 319718.
13827 2005-10-26  James Livingston  <jrl@ids.org.au>
13829         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
13831         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
13832         actually set the db pointer in play orders. Closes 319818.
13834 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
13836         Patch by: Renato Araujo <renatox@gmail.com>
13838         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13839         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
13840         (rb_podcast_manager_update_synctime),
13841         (rb_podcast_manager_config_changed),
13842         (rb_podcast_manager_insert_feed):
13843         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13844         (save_entry):
13845         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13846         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13847         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
13849 2005-10-25  James Livingston  <jrl@ids.org.au>
13851         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
13852         (db_entry_deleted_cb): don't share tracks that are hidden because the
13853         file is missing.
13855 2005-10-22  James Livingston  <jrl@ids.org.au>
13857         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
13858         crash if an entry couldn't be playerd, without streamer setting an
13859         error.
13861         
13862         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
13864         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13865         (rb_new_podcast_dialog_text_changed): enable the add button when a url
13866         is pasted into the dialog.
13867         
13868         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
13869         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
13870         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
13871         (rb_podcast_parse_channel_free):
13872         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
13873         feeds
13875 2005-10-22  James Livingston  <jrl@ids.org.au>
13877         * sources/rb-iradio-source.c:
13878         (rb_iradio_source_first_time_changed): Make merging the default
13879         stations actually work.
13880         
13881         * sources/rb-podcast-source.c:
13882         (rb_podcast_source_post_status_cell_data_func): fix problem where some
13883         people weren't seing the percentages in the stats column.
13885 2005-10-21  James Livingston  <jrl@ids.org.au>
13887         Patch from Caio Marcelo <cmarcelo@gmail.com>
13889         * shell/rb-shell.c: (rb_shell_window_state_cb),
13890         (rb_shell_get_visibility), (idle_hide_mainwindow),
13891         (rb_shell_set_visibility): Make the "show window" item in the tray
13892         icon menu show the toggle state correctly. Use a better policy on
13893         deciding whether the window is "visible" or not. Closes bug 308053.
13895 2005-10-21  James Livingston  <jrl@ids.org.au>
13897         * doc/reference/tmpl/rb-shell-preferences.sgml:
13898         * shell/Makefile.am: fix building with gtk-doc
13900         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
13901         don't submit podcasts to audioscrobbler
13902         
13903         
13904         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
13905         
13906         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
13907         (rb_set_item_value): strip spaces surrounding podcast urls
13908         
13910         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
13911         
13912         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
13914 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
13916         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
13917          Audioscrobbler/Last.fm support
13919         * configure.ac:
13920         * data/glade/Makefile.am:
13921         * data/glade/audioscrobbler-prefs.glade:
13922         * data/rhythmbox.schemas:
13923         * lib/Makefile.am:
13924         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
13925         * lib/md5.h:
13926         * lib/rb-preferences.h:
13927         * po/POTFILES.in:
13928         * shell/Makefile.am:
13929         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
13930         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
13931         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
13932         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
13933         (rb_audioscrobbler_timeout_cb), (mkmd5),
13934         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
13935         (rb_audioscrobbler_do_handshake),
13936         (rb_audioscrobbler_do_handshake_cb),
13937         (rb_audioscrobbler_submit_queue),
13938         (rb_audioscrobbler_submit_queue_cb),
13939         (rb_audioscrobbler_import_settings),
13940         (rb_audioscrobbler_preferences_sync),
13941         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
13942         (rb_audioscrobbler_gconf_changed_cb),
13943         (rb_audioscrobbler_song_changed_cb),
13944         (rb_audioscrobbler_username_entry_changed_cb),
13945         (rb_audioscrobbler_username_entry_activate_cb),
13946         (rb_audioscrobbler_password_entry_changed_cb),
13947         (rb_audioscrobbler_password_entry_activate_cb),
13948         (rb_audioscrobbler_enabled_check_changed_cb),
13949         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
13950         (rb_audioscrobbler_load_entry_from_string),
13951         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
13952         (rb_audioscrobbler_print_queue),
13953         (rb_audioscrobbler_free_queue_entries):
13954         * shell/rb-audioscrobbler.h:
13955         * shell/rb-shell-preferences.c:
13956         (rb_shell_preferences_append_audioscrobbler_config):
13957         * shell/rb-shell-preferences.h:
13958         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
13959         (rb_shell_select_source), (rb_shell_cmd_preferences):
13960         * sources/Makefile.am:
13962 2005-10-21  James Livingston  <jrl@ids.org.au>
13964         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
13966         * Makefile.am:
13967         * NEWS:
13968         * configure.ac:
13969         * data/art/Makefile.am:
13970         * data/glade/Makefile.am:
13971         * data/rhythmbox.schemas:
13972         * data/ui/rhythmbox-ui.xml:
13973         * doc/reference/Makefile.am:
13974         * doc/reference/tmpl/rhythmdb.sgml:
13975         * lib/rb-stock-icons.c: (rb_stock_icons_init):
13976         * lib/rb-stock-icons.h:
13977         * po/POTFILES.in:
13978         * podcast/Makefile.am:
13979         + podcast/rb-feed-podcast-properties-dialog.c:
13980         + podcast/rb-feed-podcast-properties-dialog.h:
13981         + podcast/rb-new-podcast-dialog.c:
13982         + podcast/rb-new-podcast-dialog.h:
13983         + podcast/rb-podcast-manager.c:
13984         + podcast/rb-podcast-manager.h:
13985         + podcast/rb-podcast-marshal.list:
13986         + podcast/rb-podcast-parse.c:
13987         + podcast/rb-podcast-parse.h:
13988         + podcast/rb-podcast-properties-dialog.c:
13989         + podcast/rb-podcast-properties-dialog.h:
13990         * rhythmdb/rhythmdb-property-model.c:
13991         (rhythmdb_property_model_set_property),
13992         (rhythmdb_property_model_enable_drag):
13993         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13994         (rhythmdb_tree_parser_end_element), (save_entry),
13995         (rhythmdb_tree_save):
13996         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
13997         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
13998         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
13999         (rhythmdb_entry_podcast_feed_get_type):
14000         * rhythmdb/rhythmdb.h:
14001         * shell/Makefile.am:
14002         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
14003         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14004         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
14005         (rb_shell_quit):
14006         * sources/Makefile.am:
14007         + sources/rb-podcast-source.c:
14008         + sources/rb-podcast-source.h:
14009         * widgets/Makefile.am:
14010         * widgets/rb-property-view.c: (rb_property_view_class_init),
14011         (rb_property_view_constructor),
14012         (rb_property_view_selection_changed_cb),
14013         (rb_property_view_get_treeview):
14014         * widgets/rb-property-view.h:
14015         + widgets/rb-simple-view.c:
14016         + widgets/rb-simple-view.h:
14018 2005-10-20  James Livingston  <jrl@ids.org.au>
14020         * NEWS: update with changes since 0.9.1
14022         * configure.ac: check whether collate_key_for_filename is available
14023         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
14024         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
14025         it if it isn't available in glib (i.e. building against 2.6)
14026         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
14027         collation to get "natural sorting". Closes bug 158599.
14029 2005-10-20  James Livingston  <jrl@ids.org.au>
14031         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14033         * doc/reference/tmpl/rb-shell-player.sgml:
14034         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14035         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
14036         (rb_shell_player_get_playing),
14037         (rb_shell_player_get_playing_time_string),
14038         (rb_shell_player_get_playing_time),
14039         (rb_shell_player_set_playing_time), (tick_cb),
14040         (rb_shell_player_get_playing_path), (filter_mmkeys):
14041         * shell/rb-shell-player.h:
14042         * shell/rb-shell-player.xml:
14043         * shell/rb-shell.c: (rb_shell_constructor),
14044         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
14045         (rb_shell_set_window_title), (rb_shell_playing_impl),
14046         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
14047         Merge the duration_changed and elapsed_changed DBUS signals into one
14048         elapsed_changed signal. Check that the output argument isn't NULL
14049         before trying to put things in it.
14051 2005-10-20  James Livingston  <jrl@ids.org.au>
14053         * rhythmdb/rhythmdb-query-model.c:
14054         (rhythmdb_query_model_entry_added_cb),
14055         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
14056         problem where hidden entries could be shown in playlists.
14057         
14058         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
14059         issues when switching in and out of small mode.
14061 2005-10-19  James Livingston  <jrl@ids.org.au>
14063         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
14064         (rb_shell_constructor), (rb_shell_window_state_cb),
14065         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
14066         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
14067         (rb_shell_view_smalldisplay_changed_cb),
14068         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
14069         (rb_shell_sync_paned): remove gconf window-state races, prevent
14070         changing small mode too often, fix window event races. Closes 122806.
14072         
14073         Patch from Caio Marcelo <cmarcelo@gmail.com>
14075         * data/rhythmbox.schemas:
14076         * shell/rb-shell.c: (rb_shell_window_state_cb),
14077         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
14078         Remember the position of the window. Closes 315289.
14080 2005-10-19  James Livingston  <jrl@ids.org.au>
14082         Patch from Christophe Fergeau  <teuf@gnome.org>
14084         * configure.ac: determine whether libgpod is present when neither
14085         --with-ipod nor --without-ipod is passed
14087 2005-10-19  James Livingston  <jrl@ids.org.au>
14089         Patch from Caio Marcelo <cmarcelo@gmail.com>
14091         * shell/rb-shell-player.c: (do_next_idle),
14092         (rb_shell_player_do_previous), (rb_shell_player_do_next),
14093         (rb_shell_player_do_previous_or_seek),
14094         (rb_shell_player_previous_button_cb),
14095         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14096         (rb_shell_player_cmd_next), (eos_cb):
14097         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
14098         end of the playlist is reached.
14100 2005-10-19  Christopher Aillon  <caillon@redhat.com>
14102         * lib/rb-thread.c: fix a few GSource leaks
14104 2005-10-19  James Livingston  <jrl@ids.org.au>
14106         * doc/reference/tmpl/bacon-volume.sgml:
14107         * doc/reference/tmpl/disclosure-widget.sgml:
14108         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14109         * doc/reference/tmpl/eggnotificationbubble.sgml:
14110         * doc/reference/tmpl/eggtrayicon.sgml:
14111         * doc/reference/tmpl/gsequence.sgml:
14112         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14113         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14114         * doc/reference/tmpl/rb-daap-connection.sgml:
14115         * doc/reference/tmpl/rb-daap-dialog.sgml:
14116         * doc/reference/tmpl/rb-daap-mdns.sgml:
14117         * doc/reference/tmpl/rb-daap-share.sgml:
14118         * doc/reference/tmpl/rb-daap-sharing.sgml:
14119         * doc/reference/tmpl/rb-daap-source.sgml:
14120         * doc/reference/tmpl/rb-daap-src.sgml:
14121         * doc/reference/tmpl/rb-daap-structure.sgml:
14122         * doc/reference/tmpl/rb-debug.sgml:
14123         * doc/reference/tmpl/rb-dialog.sgml:
14124         * doc/reference/tmpl/rb-druid.sgml:
14125         * doc/reference/tmpl/rb-entry-view.sgml:
14126         * doc/reference/tmpl/rb-enums.sgml:
14127         * doc/reference/tmpl/rb-file-helpers.sgml:
14128         * doc/reference/tmpl/rb-glade-helpers.sgml:
14129         * doc/reference/tmpl/rb-header.sgml:
14130         * doc/reference/tmpl/rb-history.sgml:
14131         * doc/reference/tmpl/rb-ipod-source.sgml:
14132         * doc/reference/tmpl/rb-iradio-source.sgml:
14133         * doc/reference/tmpl/rb-library-source.sgml:
14134         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14135         * doc/reference/tmpl/rb-metadata.sgml:
14136         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14137         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14138         * doc/reference/tmpl/rb-play-order-linear.sgml:
14139         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14140         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14141         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14142         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14143         * doc/reference/tmpl/rb-play-order-random.sgml:
14144         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14145         * doc/reference/tmpl/rb-play-order.sgml:
14146         * doc/reference/tmpl/rb-player.sgml:
14147         * doc/reference/tmpl/rb-playlist-manager.sgml:
14148         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14149         * doc/reference/tmpl/rb-playlist-source.sgml:
14150         * doc/reference/tmpl/rb-preferences.sgml:
14151         * doc/reference/tmpl/rb-property-view.sgml:
14152         * doc/reference/tmpl/rb-query-creator-private.sgml:
14153         * doc/reference/tmpl/rb-query-creator.sgml:
14154         * doc/reference/tmpl/rb-rating-helper.sgml:
14155         * doc/reference/tmpl/rb-rating.sgml:
14156         * doc/reference/tmpl/rb-recorder.sgml:
14157         * doc/reference/tmpl/rb-refstring.sgml:
14158         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14159         * doc/reference/tmpl/rb-removable-media-source.sgml:
14160         * doc/reference/tmpl/rb-search-entry.sgml:
14161         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14162         * doc/reference/tmpl/rb-shell-glue.sgml:
14163         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14164         * doc/reference/tmpl/rb-shell-player.sgml:
14165         * doc/reference/tmpl/rb-shell-preferences.sgml:
14166         * doc/reference/tmpl/rb-shell.sgml:
14167         * doc/reference/tmpl/rb-song-display-box.sgml:
14168         * doc/reference/tmpl/rb-song-info.sgml:
14169         * doc/reference/tmpl/rb-source-header.sgml:
14170         * doc/reference/tmpl/rb-source.sgml:
14171         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14172         * doc/reference/tmpl/rb-sourcelist.sgml:
14173         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14174         * doc/reference/tmpl/rb-statusbar.sgml:
14175         * doc/reference/tmpl/rb-stock-icons.sgml:
14176         * doc/reference/tmpl/rb-string-helpers.sgml:
14177         * doc/reference/tmpl/rb-thread.sgml:
14178         * doc/reference/tmpl/rb-tray-icon.sgml:
14179         * doc/reference/tmpl/rb-tree-dnd.sgml:
14180         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14181         * doc/reference/tmpl/rb-util.sgml:
14182         * doc/reference/tmpl/rhythmbox-unused.sgml:
14183         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14184         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14185         * doc/reference/tmpl/rhythmdb-tree.sgml:
14186         * doc/reference/tmpl/rhythmdb.sgml: update for changes
14187         
14188         * doc/reference/Makefile.am: make docs build with changed ipod support
14189         
14190         * po/POTFILES.in: remove sources/itunesdb
14192 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
14194         * sources/itunesdb.c:
14195         * sources/itunesdb.h: removed now useless files
14197 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
14199         * configure.ac:
14200         * shell/Makefile.am:
14201         * sources/Makefile.am:
14202         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
14203         code
14204         [1]: http://www.gtkpod.org/libgpod.html
14207 2005-10-18  James Livingston  <jrl@ids.org.au>
14209         patch from Funda Wang <fundawang@linux.net.cn>
14211         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
14212         the notification bubble string translatable.
14214 ============ Version 0.9.1
14216 2005-10-16  James Livingston  <jrl@ids.org.au>
14218         * configure.ac: bump version to 0.9.1
14219         * NEWS: update translation credits
14221 2005-10-16  James Livingston  <jrl@ids.org.au>
14223         * rhythmdb/rhythmdb-query-model.c:
14224         (rhythmdb_query_model_class_init),
14225         (rhythmdb_query_model_drag_data_received): 
14226         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
14227         notified when things are dropped into the entry view.
14228         
14229         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
14230         (rb_playlist_source_add_location_swapped),
14231         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
14232         (rb_playlist_source_non_entry_dropped),
14233         (rb_playlist_source_row_inserted): Use the new signal so that dropping
14234         things onto a playlist's entry view work correctly, and doesn't cause
14235         crashes. Allow folders to be dropped as well. (Closes 318308)
14237 2005-10-16  James Livingston  <jrl@ids.org.au>
14239         * NEWS: Update some more
14241         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14242         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
14243         with the paned size, so that it doesn't move when the window is
14244         maximised/restored. Closes bug 315852.
14246         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
14247         display the playcount column, as it's useless (it never get changed).
14249 2005-10-14  James Livingston  <jrl@ids.org.au>
14251         * Makefile.am:
14252         * data/Makefile.am:
14253         * doc/reference/Makefile.am: get "make distcheck" to pass again
14255 2005-10-11  James Livingston  <jrl@ids.org.au>
14257         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
14258         destroy the connection when retrieving the playlists fails, because
14259         tracks have already been added. Closes 318380.
14261 2005-10-11  James Livingston  <jrl@ids.org.au>
14263         * sources/rb-sourcelist.c: (rb_sourcelist_append),
14264         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
14265         (source_name_edited_cb): Ask for the columns to be resized when a
14266         source is added, deleted or changes name.
14268 2005-10-11  James Livingston  <jrl@ids.org.au>
14270         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
14271         create a thread when processing a directory. This stops up created one
14272         thread for each file in a playlist we're trying to load. Closes
14273         317850.
14275         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
14276         typo that made sort-by-artist not work correctly.
14278 2005-10-11  James Livingston  <jrl@ids.org.au>
14280         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
14281         support is enabled
14283 2005-10-11  James Livingston  <jrl@ids.org.au>
14285         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
14286         * lib/rb-file-helpers.h: add a function to turn uris into our
14287         canonical path-escaped form
14288         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
14289         above function when import playlists. This will fix the problem of
14290         duplicate entries due to different representations of the uri (bug
14291         158211).
14293 2005-10-11  James Livingston  <jrl@ids.org.au>
14295         * shell/rb-shell.c: (rb_shell_get_visibility),
14296         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
14297         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
14298         window hiding so that Alt-F4 works again.
14300         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
14301         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
14302         (rb_entry_view_string_sort_func): Stop some crashes where a string
14303         property was set to NULL.
14305 2005-10-10  James Livingston  <jrl@ids.org.au>
14307         * doc/reference/rhythmbox.types: fix gtk-doc generation
14309 2005-10-09  James Livingston  <jrl@ids.org.au>
14311         * sources/rb-sourcelist.c: (rb_sourcelist_init):
14312         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
14313         accelerators, so that we don't have as many conflicting keys.
14315 2005-10-08  James Livingston  <jrl@ids.org.au>
14317         * data/iradio-initial.pls: Update the list of radio stations. Thanks
14318         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
14319         bug 129285.
14321 2005-10-07  James Livingston  <jrl@ids.org.au>
14323         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
14324         local path names in the same way as every other URI. This should stop
14325         duplicates occurring due to different escapings. Closes bug 158211.
14327 2005-10-06  James Livingston  <jrl@ids.org.au>
14329         * NEWS: more updates
14330         
14331         patch from Jaap Haitsma <jaap@haitsma.org>:
14333         * configure.ac:
14334         * data/Makefile.am:
14335         * data/art/Makefile.am:
14336         - data/art/rhythmbox-paused.png:
14337         - data/art/rhythmbox-playback-error.png:
14338         - data/art/rhythmbox-playing.png:
14339         - data/art-clearlooks/:
14340         * lib/rb-file-helpers.c: (rb_file):
14341         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14342         * lib/rb-stock-icons.h:
14343         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
14344         * widgets/rb-cell-renderer-pixbuf.c:
14345         (rb_cell_renderer_pixbuf_render):
14346         * widgets/rb-entry-view.c: (rb_entry_view_init),
14347         (rb_entry_view_set_playing):
14348         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
14349         stock icons instead of custom art. Drop remanents of art-clearlooks.
14351 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
14353         * configure.ac: Added ne in ALL_LINGUAS
14355 2005-10-02  James Livingston  <jrl@ids.org.au>
14357         * data/glade/Makefile.am: actually install the daap prefs glade file
14359 2005-09-30  James Livingston  <jrl@ids.org.au>
14361         * po/POTFILES.in: mremove rb-string-helper.c from the list of
14362         translatable files, so that make check works and we don't annoy the
14363         translators.
14364         
14365         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
14366         sanity checking, in case a db entry is missing some properties.
14368 2005-09-29  James Livingston  <jrl@ids.org.au>
14370         - lib/rb-string-helpers.c:
14371         - lib/rb-string-helpers.h:
14372         * lib/Makefile.am:
14373         * rhythmdb/rhythmdb-tree.c:
14374         * rhythmdb/rhythmdb.c:
14375         * shell/main.c: (main):
14376         * shell/rb-shell.c:
14377         * widgets/rb-entry-view.c:
14378         * widgets/rb-property-view.c: remove rb-string-helpers, as they
14379         utility functions haven't been used in a while.
14381 2005-09-27  James Livingston  <jrl@ids.org.au>
14383         * data/art-clearlooks/Makefile.am:
14384         - data/art-clearlooks/rhythmbox-album.png:
14385         - data/art-clearlooks/rhythmbox-audiocd.png:
14386         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
14387         - data/art-clearlooks/rhythmbox-dnd.png:
14388         - data/art-clearlooks/rhythmbox-ipod.png:
14389         - data/art-clearlooks/rhythmbox-iradio.png:
14390         - data/art-clearlooks/rhythmbox-library.png:
14391         - data/art-clearlooks/rhythmbox-next.png:
14392         - data/art-clearlooks/rhythmbox-pause.png:
14393         - data/art-clearlooks/rhythmbox-play.png:
14394         - data/art-clearlooks/rhythmbox-playlist-menu.png:
14395         - data/art-clearlooks/rhythmbox-playlist.png:
14396         - data/art-clearlooks/rhythmbox-previous.png:
14397         - data/art-clearlooks/rhythmbox-repeat.png:
14398         - data/art-clearlooks/rhythmbox-rewind.png:
14399         - data/art-clearlooks/rhythmbox-shuffle.png:
14400         - data/art-clearlooks/rhythmbox-stop.png:
14401         - data/art-clearlooks/rhythmbox-visuals.png:
14402         - data/art-clearlooks/rhythmbox-volume-max.png:
14403         - data/art-clearlooks/rhythmbox-volume-medium.png:
14404         - data/art-clearlooks/rhythmbox-volume-min.png:
14405         - data/art-clearlooks/rhythmbox-volume-mute.png:
14406         - data/art-clearlooks/rhythmbox-volume-zero.png:
14407         * data/art/Makefile.am:
14408         - data/art/rhythmbox-album.png:
14409         - data/art/rhythmbox-audiocd.png:
14410         - data/art/rhythmbox-automatic-playlist.png:
14411         - data/art/rhythmbox-dnd.png:
14412         - data/art/rhythmbox-ipod.png:
14413         - data/art/rhythmbox-iradio.png:
14414         - data/art/rhythmbox-library.png:
14415         - data/art/rhythmbox-next.png:
14416         - data/art/rhythmbox-pause.png:
14417         - data/art/rhythmbox-play.png:
14418         - data/art/rhythmbox-playlist-menu.png:
14419         - data/art/rhythmbox-playlist.png:
14420         - data/art/rhythmbox-previous.png:
14421         - data/art/rhythmbox-repeat.png:
14422         - data/art/rhythmbox-rewind.png:
14423         - data/art/rhythmbox-shuffle.png:
14424         - data/art/rhythmbox-stop.png:
14425         - data/art/rhythmbox-visuals.png:
14426         - data/art/rhythmbox-volume-max.png:
14427         - data/art/rhythmbox-volume-medium.png:
14428         - data/art/rhythmbox-volume-min.png:
14429         - data/art/rhythmbox-volume-mute.png:
14430         - data/art/rhythmbox-volume-zero.png:
14431         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14432         * lib/rb-stock-icons.h:
14433         * shell/rb-playlist-manager.c:
14434         * shell/rb-shell-player.c:
14435         * sources/rb-daap-source.c: (rb_daap_get_icon):
14436         * sources/rb-ipod-source.c:
14437         * sources/rb-iradio-source.c: (rb_iradio_source_init):
14438         * sources/rb-library-source.c: (rb_library_source_new):
14439         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14440         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
14441         that hasn't been used in a LONG time, and also remove art that are
14442         now stock icons.
14444 2005-09-27  James Livingston  <jrl@ids.org.au>
14446         * README: point to the gnome.org web sites, and update the example
14447         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
14448         
14449         * rhythmdb/rhythmdb-query-model.c:
14450         (rhythmdb_query_model_set_property),
14451         (rhythmdb_query_model_get_property),
14452         (rhythmdb_query_model_finalize):
14453         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
14454         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
14455         * rhythmdb/rhythmdb.h:
14456         * sources/rb-iradio-source.c: (impl_search):
14457         * sources/rb-library-source.c: (impl_search): Add query
14458         "preprocessing", which performs operations such as casefolding any
14459         strings that will be compared to any of the *_FOLDED properties.
14460         Closes bug 316039
14462 2005-09-27  James Livingston  <jrl@ids.org.au>
14464         * data/glade/daap-prefs.glade:
14465         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
14466         file for the daap preferences pane
14467         
14468         * sources/rb-sourcelist.c: (rb_sourcelist_init),
14469         (rb_sourcelist_append), (rb_sourcelist_remove),
14470         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
14471         don't display the column for source expanders unless there is an
14472         expandable source.
14474 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
14476         * .cvsignore:
14477         * Makefile.am:
14478         * configure.ac:
14479         * doc/.cvsignore:
14480         * doc/Makefile.am:
14481         * doc/reference/.cvsignore:
14482         * doc/reference/Makefile.am:
14483         * doc/reference/rhythmbox-docs.sgml:
14484         * doc/reference/rhythmbox-sections.txt:
14485         * doc/reference/rhythmbox.types:
14486         * doc/reference/tmpl/bacon-volume.sgml:
14487         * doc/reference/tmpl/disclosure-widget.sgml:
14488         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14489         * doc/reference/tmpl/eggnotificationbubble.sgml:
14490         * doc/reference/tmpl/eggtrayicon.sgml:
14491         * doc/reference/tmpl/gsequence.sgml:
14492         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14493         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14494         * doc/reference/tmpl/rb-daap-connection.sgml:
14495         * doc/reference/tmpl/rb-daap-dialog.sgml:
14496         * doc/reference/tmpl/rb-daap-mdns.sgml:
14497         * doc/reference/tmpl/rb-daap-share.sgml:
14498         * doc/reference/tmpl/rb-daap-sharing.sgml:
14499         * doc/reference/tmpl/rb-daap-source.sgml:
14500         * doc/reference/tmpl/rb-daap-src.sgml:
14501         * doc/reference/tmpl/rb-daap-structure.sgml:
14502         * doc/reference/tmpl/rb-debug.sgml:
14503         * doc/reference/tmpl/rb-dialog.sgml:
14504         * doc/reference/tmpl/rb-druid.sgml:
14505         * doc/reference/tmpl/rb-entry-view.sgml:
14506         * doc/reference/tmpl/rb-enums.sgml:
14507         * doc/reference/tmpl/rb-file-helpers.sgml:
14508         * doc/reference/tmpl/rb-glade-helpers.sgml:
14509         * doc/reference/tmpl/rb-header.sgml:
14510         * doc/reference/tmpl/rb-history.sgml:
14511         * doc/reference/tmpl/rb-ipod-source.sgml:
14512         * doc/reference/tmpl/rb-iradio-source.sgml:
14513         * doc/reference/tmpl/rb-library-source.sgml:
14514         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14515         * doc/reference/tmpl/rb-metadata.sgml:
14516         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14517         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14518         * doc/reference/tmpl/rb-play-order-linear.sgml:
14519         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14520         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14521         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14522         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14523         * doc/reference/tmpl/rb-play-order-random.sgml:
14524         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14525         * doc/reference/tmpl/rb-play-order.sgml:
14526         * doc/reference/tmpl/rb-player.sgml:
14527         * doc/reference/tmpl/rb-playlist-manager.sgml:
14528         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14529         * doc/reference/tmpl/rb-playlist-source.sgml:
14530         * doc/reference/tmpl/rb-preferences.sgml:
14531         * doc/reference/tmpl/rb-property-view.sgml:
14532         * doc/reference/tmpl/rb-query-creator-private.sgml:
14533         * doc/reference/tmpl/rb-query-creator.sgml:
14534         * doc/reference/tmpl/rb-rating-helper.sgml:
14535         * doc/reference/tmpl/rb-rating.sgml:
14536         * doc/reference/tmpl/rb-recorder.sgml:
14537         * doc/reference/tmpl/rb-refstring.sgml:
14538         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14539         * doc/reference/tmpl/rb-removable-media-source.sgml:
14540         * doc/reference/tmpl/rb-search-entry.sgml:
14541         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14542         * doc/reference/tmpl/rb-shell-glue.sgml:
14543         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14544         * doc/reference/tmpl/rb-shell-player.sgml:
14545         * doc/reference/tmpl/rb-shell-preferences.sgml:
14546         * doc/reference/tmpl/rb-shell.sgml:
14547         * doc/reference/tmpl/rb-song-display-box.sgml:
14548         * doc/reference/tmpl/rb-song-info.sgml:
14549         * doc/reference/tmpl/rb-source-header.sgml:
14550         * doc/reference/tmpl/rb-source.sgml:
14551         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14552         * doc/reference/tmpl/rb-sourcelist.sgml:
14553         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14554         * doc/reference/tmpl/rb-statusbar.sgml:
14555         * doc/reference/tmpl/rb-stock-icons.sgml:
14556         * doc/reference/tmpl/rb-string-helpers.sgml:
14557         * doc/reference/tmpl/rb-thread.sgml:
14558         * doc/reference/tmpl/rb-tray-icon.sgml:
14559         * doc/reference/tmpl/rb-tree-dnd.sgml:
14560         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14561         * doc/reference/tmpl/rb-util.sgml:
14562         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14563         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14564         * doc/reference/tmpl/rhythmdb-tree.sgml:
14565         * doc/reference/tmpl/rhythmdb.sgml:
14566         * macros/.cvsignore:
14567         * shell/Makefile.am:
14568         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
14569         (rb_source_finalize), (rb_source_set_property),
14570         (rb_source_get_property), (default_get_pixbuf),
14571         (_rb_source_show_popup):
14572         * sources/rb-source.h:
14573         Add support for gtk-doc in rhythmbox.
14574         Convert RBSource to use newer glib functions, such as add_private.
14575         Gives RBSource a default get_pixbuf implementation.
14577 2005-09-25  James Livingston  <jrl@ids.org.au>
14579         * NEWS: Update with about a months worth of changes
14581         * data/glade/song-info-multiple.glade:
14582         * data/glade/song-info.glade:
14583         * data/rhythmbox.schemas:
14584         * lib/rb-preferences.h:
14585         * rhythmdb/rhythmdb.h:
14586         * shell/rb-shell-player.c:
14587         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
14588         few remaining parts of autorating.
14590 2005-09-24  James Livingston  <jrl@ids.org.au>
14592         * shell/rb-shell.c: (rb_shell_constructor),
14593         (rb_shell_window_state_cb), (rb_shell_set_visibility),
14594         (rb_shell_window_configure_cb): store window state in the gconf keys,
14595         so that it gets used. Closes bugs 313893 and 137068.
14597 2005-09-20  James Livingston  <jrl@ids.org.au>
14599         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
14600         crash if the entry has a NULL string in a property
14601         
14602         * shell/rb-removable-media-manager.c:
14603         (rb_removable_media_manager_load_media): fix some memory leaks
14604         
14605         (rb_removable_media_manager_mount_volume),
14606         (rb_removable_media_manager_eject_medium_cb),
14607         (rb_removable_media_manager_cmd_eject_medium): use
14608         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14609         
14610         * sources/rb-removable-media-source.c:
14611         (rb_removable_media_source_set_property),
14612         (rb_removable_media_source_get_property): use
14613         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14615 2005-09-18  James Livingston  <jrl@ids.org.au>
14617         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
14618         column
14620         * data/glade/general-prefs.glade:
14621         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
14622         (rb_shell_preferences_column_check_changed_cb),
14623         (rb_shell_preferences_sync): add checkbox to control visibility
14624         of the column
14625         
14626         
14627         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14628         (save_entry):
14629         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
14630         (rhythmdb_prop_get_type):
14631         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
14632         was as "last played" is handled
14633         
14634         * sources/rb-library-source.c: (rb_library_source_constructor):
14635         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14636         Make the column show in the library and playlists
14637         
14638         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
14639         * widgets/rb-entry-view.h: add the column
14640         
14641         * widgets/rb-query-creator-properties.c: allow automatic playlists to
14642         be sorted by the column
14644 2005-09-16  James Livingston  <jrl@ids.org.au>
14646         * shell/rb-shell-player.c: (rb_shell_player_init),
14647         (rb_shell_player_do_previous_or_seek),
14648         (rb_shell_player_previous_button_cb),
14649         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14650         (rb_shell_player_playpause_button_cb): Make the previous button act
14651         the same as the menu item. Fix an inversion of the "previous track or
14652         seek" logic.
14653         
14654         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14655         
14656         (rb_shell_player_playpause): make --play-pause stop source that can't
14657         be paused
14659 2005-09-15  James Livingston  <jrl@ids.org.au>
14661         * configure.ac: increase totem-plparser requirements to 1.1.5
14663         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
14664         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
14665         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
14666         use the newer playlist APIs to save the name of the playlist, and use
14667         the name of a loaded playlist.
14669         Closes bug 309817.
14671 2005-09-15  James Livingston  <jrl@ids.org.au>
14673         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14675         * shell/Makefile.am: stop some linker warnings
14677         * shell/main.c: (main): make --no-registration work with dbus
14679 2005-09-15  James Livingston  <jrl@ids.org.au>
14681         * daapsharing/rb-daap-sharing.c: (create_share):
14682         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
14683         reference sinking and counting issues that I caused.
14685 2005-09-15  James Livingston  <jrl@ids.org.au>
14687         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
14688         playing" icon in the "now playing" column header.
14690 2005-09-14  James Livingston  <jrl@ids.org.au>
14692         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
14693         daap shares, when sharing is turned off.
14695 2005-09-12  Bastien Nocera  <hadess@hadess.net>
14697         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
14698         the GConf value's default, especially for badly installed schema
14699         files
14701 2005-09-12  James Livingston  <jrl@ids.org.au>
14703         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
14705         Patch from Paolo Borelli <pborelli@katamail.com>
14707         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
14708         grip when maximised. Closes bug 316055.
14710 2005-09-11  James Livingston  <jrl@ids.org.au>
14712         Patch from William Jon McCann <mccann@jhu.edu>
14714         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
14715         subclass of GtkStatusbar instead of GtkHBox.
14716         (rb_statusbar_construct): Don't set border width.
14717         (rb_statusbar_init): Use resize grip.  Don't use
14718         markup.
14719         (set_statusbar_tooltip, unset_statusbar_tooltip) 
14720         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
14721         Connect tooltips for actions.
14722         (rb_statusbar_sync_status): Push new message to statusbar.
14723         (rb_statusbar_set_progress): Don't use markup.
14724         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
14725         flag here since it prevents actually showing or hiding.
14726         (rb_statusbar_sync_with_source): Push new message to statusbar.
14728 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14730         * daapsharing/rb-daap-structure.c:
14731         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
14732         around debugging definition.
14734 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14735         
14736         * daapsharing/rb-daap-structure.c:
14737         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
14738         type = version.
14740         * daapsharing/rb-daap-mdns.c/h:
14741         (resolve_cb): Updated mDNS resolve callback to send service-name &
14742         name (read from Machine Name in the TXT data or equal to service-name
14743         if not in TXT).
14745         * daapsharing/rb-daap-source.c:
14746         (rb_daap_source_class_init), (rb_daap_source_set_property), 
14747         (rb_daap_source_get_property), (rb_daap_source_new),
14748         (find_source_by_service_name), (resolve_cb), (browse_cb), 
14749         (stop_resolver), (start_browsing), (stop_browsing), 
14750         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
14751         and added 'host' and 'port' gobject properties.  Updated to use new
14752         mDNS resolve callback sending service-name & name arguments.
14754 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14756         * daapsharing/rb-daap-mdns.c:
14757         (howl_strerror): New function to report errors from Howl
14758         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
14759         (get_sw_discovery), (get_avahi_client): Better error reporting from
14760         Howl & Avahi.
14762         * sources/rb-daap-source.:
14763         (start_browsing), (stop_browsing): Fixed a bug where browsing would
14764         not get started or stopped in some situations.
14765         
14766 2005-09-12  James Livingston  <jrl@ids.org.au>
14768         * shell/rb-removable-media-manager.c: add a missing include, that
14769         would stop compilation if ipod support wasn't turned on
14771 2005-09-11  James Livingston  <jrl@ids.org.au>
14773         * daapsharing/rb-daap-dialog.c: (encode_base64),
14774         (rb_daap_password_dialog_new_run),
14775         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
14776         it is no broken in to two pieces, and remove a use of a goto
14777         
14778         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
14779         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
14780         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
14781         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
14782         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
14783         memory leaks, and some code style things.
14784         
14785         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
14786         (rb_daap_share_init), (rb_daap_share_set_property),
14787         (rb_daap_share_dispose), (rb_daap_share_new),
14788         (rb_daap_share_get_property): make the DB and the playlist manager
14789         gobject properties.
14790         
14791         (message_add_standard_headers),
14792         (message_set_from_rb_daap_structure), (server_info_cb),
14793         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
14794         (server_cb), (add_db_entry), (db_entry_added_cb),
14795         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
14796         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
14797         style and use CONF_PREFIX in the gconf keys
14798         
14799         * daapsharing/rb-daap-sharing.c: (create_share),
14800         (enable_sharing_changed_cb), (share_name_changed_cb),
14801         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
14802         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
14803         (rb_daap_src_instance_init), (rb_daap_src_dispose),
14804         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
14805         (rb_daap_src_get_property), (rb_daap_src_getcaps),
14806         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
14807         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
14808         (rb_daap_src_get_time): Deal with gconf callbacks where the key
14809         hasn't actually changed, fix some memory leaks, code style and release
14810         gconf notifications when the object is destroyed.
14811         
14812         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
14813         (rb_daap_source_class_init), (rb_daap_source_init),
14814         (rb_daap_source_dispose), (rb_daap_source_set_property),
14815         (rb_daap_source_get_property), (rb_daap_source_new),
14816         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
14817         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
14818         (rb_daap_sources_init), (rb_daap_sources_shutdown),
14819         (rb_daap_source_activate), (rb_daap_source_disconnect),
14820         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
14821         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
14822         release gconf notifications, handle gconf callbacks where the key
14823         hasn't changed, make "real name" and "password protected" gobject
14824         properties, fix some code style and fix a memory leak.
14826 2005-09-11  James Livingston  <jrl@ids.org.au>
14828         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14830         * shell/rb-playlist-manager.c:
14831         (rb_playlist_manager_save_playlists),
14832         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
14833         when we aren't supposed to. (Closes bug 315886)
14835 2005-09-11  James Livingston  <jrl@ids.org.au>
14837         * shell/rb-removable-media-manager.c:
14838         (rb_removable_media_manager_class_init),
14839         (rb_removable_media_manager_init),
14840         (rb_removable_media_manager_dispose),
14841         (rb_removable_media_manager_set_property),
14842         (rb_removable_media_manager_get_property),
14843         (rb_removable_media_manager_new),
14844         (rb_removable_media_manager_load_media),
14845         (rb_removable_media_manager_volume_mounted_cb),
14846         (rb_removable_media_manager_volume_unmounted_cb),
14847         (rb_removable_media_manager_mount_volume),
14848         (rb_removable_media_manager_unmount_volume),
14849         (rb_removable_media_manager_source_deleted_cb),
14850         (rb_removable_media_manager_append_media_source),
14851         (rb_removable_media_manager_set_uimanager),
14852         (rb_removable_media_manager_eject_medium_cb),
14853         (rb_removable_media_manager_cmd_eject_medium):
14854         * shell/rb-removable-media-manager.h:
14855         * sources/rb-removable-media-source.c:
14856         (rb_removable_media_source_class_init),
14857         (rb_removable_media_source_init),
14858         (rb_removable_media_source_dispose),
14859         (rb_removable_media_source_set_property),
14860         (rb_removable_media_source_get_property), (impl_get_pixbuf),
14861         (impl_delete_thyself):
14862         * sources/rb-removable-media-source.h: Add the four files that I
14863         somehow managed not to add to cvs in the last commit. Oops.
14865 2005-09-11  James Livingston  <jrl@ids.org.au>
14867         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
14868         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
14869         
14870         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14871         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
14872         removable-media-manager on startup, and handle creation of sources.
14873         
14874         * sources/rb-ipod-source.h:
14875         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
14876         (rb_ipod_source_init), (rb_ipod_source_constructor),
14877         (rb_ipod_source_dispose), (rb_ipod_source_new),
14878         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
14879         the iPod source over to the removable media framework.
14880         
14881         * sources/rb-library-source.c: (paned_size_allocate_cb),
14882         (rb_library_source_get_paned_key): fix a potential bug is a
14883         library-derived source doesn't have a paned-key
14885 2005-09-11  Bastien Nocera  <hadess@hadess.net>
14887         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
14888         mp3 when we can't get the suffix of a file (Closes: #315941)
14890 2005-09-10  James Livingston  <jrl@ids.org.au>
14892         * configure.ac: fix the mdns tests, so that it doesn't complain about
14893         not finding one, if daap support isn't being compiled in
14895 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
14897         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
14899         * daapsharing/rb-daap-dialog.c:
14900         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
14901         HIG compliancy & images.
14903         * daapsharing/rb-daap-mdns.c:
14904         (browse_cb), (resolve_cb): Better detection of local services.  
14905         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
14906         Howl's limitations.  Fix the way collision handling is done under
14907         Avahi.
14909         * daapsharing/rb-daap-share.c:
14910         (publish_cb): Better name collision handling (at least for Avahi).
14912 2005-09-10  James Livingston  <jrl@ids.org.au>
14914         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
14915         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
14916         preferences more HIG compliant (Closes #315889)
14917         
14918         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
14919         list of files to be translated
14921 2005-09-10  James Livingston  <jrl@ids.org.au>
14923         * configure.ac: fix it so that --enable-daap=no works
14924         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
14925         uninstalled
14927 2005-09-10  James Livingston  <jrl@ids.org.au>
14929         Patch from Christophe Fergeau <teuf@gnome.org>
14931         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
14932         the ipod code.
14934 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14935         * README.daap: Updating documentation
14937 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14938         * AUTHORS: Added myself.
14940         * daapsharing/rb-daap-connection.c:
14941         (connection_login), (rb_connection_new): Reorganized password
14942         handling.
14944         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
14946         * shell/rb-shell.c:
14947         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
14949         * sources/rb-daap-source.c:
14950         (rb_daap_source_activate): Better error handling when we are unable to
14951         connect.
14952         
14953 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14954         * README.daap: Fixed some terminology.
14956         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
14957         New --with-mdns=auto|howl|avahi flag to specify.
14959         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
14960         name collision dialogs.
14962         * daapsharing/rb-daap-connection.c:
14963         (connection_get_password), (build_message), (http_get)
14964         (connection_login): Ask for & use a password if the share demands it.
14966         * daapsharing/rb-daap-connection.h: Changed prototype of
14967         rb_daap_connection_new.
14968         
14969         * daapsharing/rb-daap-mdns.c: 
14970         (resolve_cb): Better detection of your own music share so it doesn't 
14971         appear in the sourcelist.
14973         * daapsharing/rb-daap-share.c:
14974         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
14975         that start on any available port.
14977         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
14979         * sources/rb-daap-source.c:
14980         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
14981         (browse_cb): Handle passworded shares. Resolve the host immediately
14982         instead of when activated.
14983         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
14984         (rb_daap_source_new): New GConf keys for UI state.
14985         (rb_daap_source_activate): Use RBPlaylistSource instead of
14986         RBDAAPPlaylistSource
14987         
14988         * sources/rb-daap-playlist-source.c/h: Removed
14990         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
14991         if the playlist is local (i.e. not DAAP or iPod).
14992         
14993         * shell/rb-playlist-manager.c:
14994         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
14995         wouldn't get saved if the last playlist hadn't changed.  Only save
14996         local playlists.
14997         
14998 2005-09-09  James Livingston  <jrl@ids.org.au>
15000         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
15001         iPod preferences pane, as it already uses the browser views as the
15002         library.
15004 2005-09-09  James Livingston  <jrl@ids.org.au>
15006         * sources/rb-library-source.c: (rb_library_source_finalize),
15007         (rb_library_source_constructor): fix gconf monitoring of library
15008         preference keys.
15009         * sources/rb-library-source.h: remove declaration of function that
15010         does not exist
15012 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15014         * player/rb-player-gst.c:
15015         (rb_player_set_time): Fix seeking in daap streams.
15017 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15019         * data/rhythmbox.schemas: Turn music share browsing on by default.
15021 2005-09-07  James Livingston  <jrl@ids.org.au>
15023         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
15025 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15026         * player/rb-player-gst.c: 
15027         (rb_player_get_time): Fix for extra << & == that accidentally made
15028         it in.
15030         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
15031         
15032 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15033         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
15034         it in last time.  Sorry.
15036 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15037         
15038         * player/rb-player-gst.c:
15039         (rb_player_get_time): Fix a small crash appearing when
15040         the uri isn't set in the player, but rb_player_get_time() is
15041         still called.
15043         * configure.ac: Also check for libsoup 2.4, which is what ships with
15044         Gnome 2.12.
15046         * po/POTFILES.in: Added music sharing files that have translatable 
15047         strings.
15049         * README.daap: New file explaining "How Music Sharing Works"  
15051 2005-09-06  Bastien Nocera  <hadess@hadess.net>
15053         * daapsharing/.cvsignore: added
15055 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15057         * daapsharing/*: Music sharing library.
15058         
15059         * sources/rb-daap-source.c/h: Music share RBSource.
15060         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
15062         * configure.ac: --enable-daap flag to turn on music sharing. Requires
15063         libsoup and a mutlicast DNS implementation (howl or avahi).
15065         * data/rhythmbox.schemas: New GConf keys for music sharing.
15067         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
15068         source right click menu.
15070         * player/rb-player-gst.c: Changes to properly play & seek in remote
15071         music share files.
15073         * shell/rb-playlist-manager.c/h:
15074         (rb_playlist_manager_get_playlists): New function to get a GList * of
15075         the playlists.
15076         (rb_playlist_manager_save_playlists): Don't save music share playlists
15077         and fixed a GObject reference leak.
15079         * shell/rb-shell.c/h:
15080         (rb_shell_append_source): No longer a local function.  Now takes a
15081         parent RBSource * argument, NULL to append a toplevel source.
15082         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
15083         source (useful for disconnecting from remote music share,
15084         specifically).
15085         (rb_shell_quit): Stop music sharing/browsing.
15086         (rb_shell_playlist_added_cb): Work with tree source structure.
15087         (rb_shell_get_property): "playlist-manager" property accessor.
15088         (rb_shell_class_init): New "playlist-manager" property.
15089         (rb_shell_construor): Append sources as toplevel sources.  Initialize
15090         daap sharing/browsing.
15091         (rb_shell_select_source): Notify source of activation/deactivation.
15093         * shell/rb-shell-prefernces.c: Music sharing preferences.
15095         * sources/rb-source.c/h: New activate, deactivate and disconnect
15096         class functions.  Activate & deactivate are notification style 
15097         functions that will tell a source when it is selected/unselected.
15098         Disconnect can be hooked up to a UI object to disconnect the source.
15100         * sources/rb-sourcelist-model.c:
15101         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
15102         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
15103         append a toplevel source.
15105 2005-09-05  James Livingston  <jrl@ids.org.au>
15107         * rhythmdb/rhythmdb-query-model.c:
15108         (rhythmdb_query_model_entry_changed_cb),
15109         (rhythmdb_query_model_do_reorder): Update the query model's totals if
15110         the duration of filesize of an entry changes.  Emit the row-changed
15111         signals that I forgot to put back in, when I was doing query sorting.
15113         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
15114         out "0 minutes" or "0 bytes".
15116 2005-09-04  James Livingston  <jrl@ids.org.au>
15118         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
15119         remove a leftover bit of the "internal-name" property of sources.
15121 2005-09-03  James Livingston  <jrl@ids.org.au>
15123         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
15124         extraneous debug message
15125         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
15126         crasher would affect any library-derived sources (which was also a
15127         memory leak).
15129 2005-09-02  Colin Walters  <walters@verbum.org>
15131         * configure.ac: Fix sytnax error.
15133         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
15134         code to disable minimization icons - need to figure out
15135         why it doesn't work...
15137 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
15139         * data/glade/song-info-multiple.glade:
15140         * data/glade/song-info.glade:
15141         * widgets/rb-song-info.c: (rb_song_info_constructor):
15142         Add a mnemonic to the newly added "Automatically rate" label
15143         in the properties dialog and use a bold typeface like all the 
15144         other labels in the dialog. (Closes bug 315089)
15146 2005-09-03  James Livingston  <jrl@ids.org.au>
15148         * sources/rb-library-source.c: (rb_library_source_class_init),
15149         (rb_library_source_finalize), (rb_library_source_constructor),
15150         (rb_library_source_set_property), (rb_library_source_get_property),
15151         (impl_get_paned_key), (paned_size_allocate_cb),
15152         (rb_library_source_state_prefs_sync), (impl_show_popup),
15153         (rb_library_source_get_paned_key):
15154         * sources/rb-library-source.h: Allow sources derived from
15155         RBLibrarySource to use different gconf keys for sort order, browser
15156         visibility and browser pane position. Fix a crasher if a derived
15157         source overrides _get_pixbuf.
15159 2005-09-02  Colin Walters  <walters@verbum.org>
15161         * shell/rb-shell.c (rb_shell_set_visibility): Move
15162         hint setting which seems to avoid races more.
15163         
15164 2005-09-03  James Livingston  <jrl@ids.org.au>
15166         * shell/rb-shell.c: fix compilation with iPod support enabled
15167         
15168 2005-09-02  Colin Walters  <walters@verbum.org>
15170         * shell/rb-shell.c (struct RBShellPrivate): Add
15171         idle_hide_mainwindow_id.
15172         (rb_shell_constructor): Move taskbar skipping hint into
15173         rb_shell_set_visibility.
15174         (idle_hide_mainwindow): New function.
15175         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
15176         racy hack to avoid rb appearing in taskbar when minimized.
15178 2005-09-01  Colin Walters  <walters@verbum.org>
15180         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
15182         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
15183         from gtkstatusicion.c.
15185         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
15187         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
15188         TrayShowWindow entry.
15189         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
15190         (rb_tray_icon_constructor): Create action group here.
15191         (rb_tray_icon_finalize): Destroy action group.
15192         (rb_tray_icon_set_property): Don't take an action group.
15193         (rb_tray_icon_new): Ditto.
15194         (tray_popup_position_menu): Some mostly boilerplate code
15195         to position menu.
15196         (rb_tray_icon_button_press_event_cb): Position menu.
15197         (rb_tray_icon_get_geom): New function used for the shell
15198         to set minimization hints.
15200         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
15202         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
15203         (struct RBShellPrivate): Change visible to iconified.
15204         (set_icon_geometry): New function from Søren Sandmann to
15205         tell Metacity where to draw the minimization animiation.
15206         (rb_shell_window_state_cb): Update iconified.
15207         (rb_shell_get_visibility): New function to say whether
15208         or not we're currently visible.
15209         (rb_shell_set_visibility): Update to minimize to
15210         tray or present as appropriate.
15211         (rb_shell_window_delete_cb): On window close, just
15212         minimize to tray if we're deleted.
15213         (rb_shell_set_window_title): Kill old notification code.
15214         (rb_shell_toggle_visibility): Nwe function.
15215         (rb_shell_cmd_toggle_visibility): Call it.
15216         (rb_shell_constructor): Skip the taskbar.
15217         (tray_destroy_cb): Better debugging.
15218         
15219 2005-09-01  Colin Walters  <walters@verbum.org>
15221         * data/ui/rhythmbox-ui.xml: Add MusicClose.
15223         * configure.ac: Enable bonobo by default.
15224         
15225 2005-09-01  Colin Walters  <walters@verbum.org>
15227         * configure.ac: Default to old art.  Add macros subdir.
15229         * Makefile.am (SUBDIRS): Add macros.
15231         * macros/Makefile.am: New.
15232         
15233 2005-09-01  Colin Walters  <walters@verbum.org>
15235         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
15236         rb-shell-player.xml.
15238         * remote/dbus/rb-remote-dbus.h: Deleted.
15239         
15240         * remote/dbus/Makefile.am: Delete all the junk, just dist
15241         rb-print-playing.py and rb-set-rating.py.
15243         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
15245         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
15247 2005-09-02  James Livingston  <jrl@ids.org.au>
15249         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
15250         file from cvs
15252         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
15253         (rb_shell_constructor): Patches from Jonathan Matthew
15254         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
15255         a crash when using "browse this artist".
15257 2005-08-31  Colin Walters  <walters@verbum.org>
15259         * configure.ac: Add --with-old-art configure switch.  Also
15260         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
15261         but it doesn't work.
15263         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
15264         Don't use eel_create_colorized_pixbuf for new art.
15265         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
15267         * data/art-clearlooks: New artwork.
15268         
15269 2005-08-31  Colin Walters  <walters@verbum.org>
15271         * shell/main.c (main): Fix Bastien's commit to continue to focus
15272         the window with GTK+ 2.8 at least.
15273         
15274 2005-08-31  Colin Walters  <walters@verbum.org>
15276         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
15277         is already loaded.
15279         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
15281 2005-08-31  Bastien Nocera  <hadess@hadess.net>
15283         * README: remove mentions of the xine-lib backend
15284         * shell/main.c: (main): make it compilable with gtk+ < 2.8
15286 2005-08-30  Colin Walters  <walters@verbum.org>
15288         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
15289         Make non-visible sources insensitive.
15290         
15291 2005-08-30  Colin Walters  <walters@verbum.org>
15293         * shell/rb-shell.c: Don't use GConf for selected source; it's
15294         confusing to have the selected source change after startup,
15295         and since we don't save other things it's not worth saving this.
15297         * sources/rb-playlist-source.c:
15298         * sources/rb-library-source.c:
15299         * sources/rb-iradio-source.c:
15300         * sources/rb-ipod-source.c: Delete internal-name property usage.
15301         * sources/rb-source.c: Delete internal-name property.
15303         * data/rhythmbox.schemas: Delete selected_source.
15304         
15305 2005-08-30  Colin Walters  <walters@verbum.org>
15307         * sources/rb-sourcelist.c: Make playing source bold instead of
15308         displaying a pixbuf; it's much less ugly.
15309         
15310 2005-08-30  Colin Walters  <walters@verbum.org>
15312         * sources/rb-source.c:
15313         * sources/rb-source.h: New virtual method try_playlist.
15315         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
15316         impl_try_playlist.
15317         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
15318         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
15319         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
15320         need to.
15321         (stations_view_drag_data_received_cb): Don't check for iradio uris;
15322         in theory we should though...
15324         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
15325         list in rb_shell_construct now.
15326         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
15327         RBiPodSource.
15328         (rb_shell_constructor): Create library, iradio, ipod here.
15329         (rb_shell_source_deleted_cb): Use source directly instead of
15330         indirecting through type.
15331         (rb_shell_sync_selected_source): Ditto.
15332         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
15333         from the type instead of special-casing.
15334         (rb_shell_guess_type_for_uri) 
15335         (rb_shell_add_uri)
15336         (handle_one_uri_with_possible_metadata): New functions.
15337         (rb_shell_load_uri): Refactor to allow loading playlists again,
15338         also use other URI infrastructure.
15340         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
15341         (rb_shell_player_error): Always set entry error on error, instead
15342         of depending on EOF behavior.
15344         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
15345         to just invoke rb_shell_add_uri.
15346         (rb_playlist_manager_parse_file): Return error instead of tossing
15347         up dialog box directly.
15348         (load_playlist_response_cb): Display error here.
15349         (add_uri_to_playlist): Delete.
15350         (handle_playlist_entry_into_playlist_cb): Renamed to
15351         handle_playlist_entry_cb.
15353         * shell/rb-playlist-manager.h: Add error, update prototype.
15355         * lib/rb-file-helpers.c:
15356         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
15358 2005-08-29  Colin Walters  <walters@verbum.org>
15360         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
15361         if entry already exists.  Use rhythmdb_entry_set_uninserted.
15363         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
15364         needlessly duping string, and use rhythmdb_entry_set_uninserted.
15365         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
15367         * shell/rb-shell.h (enum RBShellError): Add some more errors.
15368         Prototype rb_shell_set_song_property.
15370         * shell/rb-shell.xml: Export setSongProperty.
15372         * shell/rb-shell.c (rb_shell_set_song_property): New function.
15373         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
15374         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
15376         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
15377         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
15378         want to notify of the change.
15379         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
15381         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
15382         logic error; idle functions would be enqueued for each set.
15383         (rhythmdb_entry_set): Fix assertion logic error.
15385         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
15386         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
15387         Return if the entry already exists.
15388         
15389 2005-08-29  Colin Walters  <walters@verbum.org>
15391         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
15392         "inserted" member which we use to keep track of
15393         whether or not an entry is in the DB.  Prototype
15394         rhythmdb_entry_set_uninserted.
15396         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
15397         flag.
15398         (rhythmdb_entry_insert): Assert entry is not already inserted.
15399         (rhythmdb_process_metadata_load): Update to call _set_uninserted
15400         just after creating entry.
15401         (rhythmdb_entry_set): Document, and fail on uninserted entries.
15402         (rhythmdb_entry_set_nonotify): Ditto.
15403         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
15404         entries.
15405         (rhythmdb_entry_set_internal): Change notify flag to
15406         notify_if_inserted.  Also move notification after assertions.
15408         Update all existing callers of rhythmdb_entry_set_internal
15409         to give TRUE for notify_if_inserted; this should be what
15410         we want but may be an efficiency hit.
15411         
15412 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15414         * shell/rb-shell-player.c: (rb_shell_player_init),
15415         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
15416         (rb_shell_player_set_playing_source_internal),
15417         (rb_shell_player_sync_with_selected_source): Notify the player when an
15418         entry has updated the title, album or artist field, and resync the big
15419         display.
15420         
15421         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15422         * sources/rb-library-source.c: (rb_library_source_class_init),
15423         (impl_get_config_widget):
15424         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
15425         * sources/rb-source.c:
15426         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
15427         get_album functions in rb-source and adapted other sources accordingly.
15428         
15429 2005-08-29  Colin Walters  <walters@verbum.org>
15431         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
15432         signal_change member.
15433         (threadsafe_entry_set): New function.
15434         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
15435         (rhythmdb_entry_set_nonotify): New function; just call
15436         threadsafe_entry_set with FALSE.
15437         (rhythmdb_entry_set_internal): Take a notify flag; if true
15438         add the change to our pending set.
15440         Also update all internal callers of rhythmdb_entry_set_internal
15441         to pass FALSE.  Some of these may be bugs however and need to
15442         pass TRUE...
15444         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
15445         rhythmdb_entry_set, and rename rhythmdb_entry_set to
15446         rhythmdb_entry_set_nonotify.
15448         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
15449         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
15451         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
15453         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
15454         * sources/rb-source.c (rb_source_update_play_statistics): 
15455         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
15456         * sources/rb-ipod-source.c (entry_set_string_prop) 
15457         (load_ipod_db_idle_cb): 
15458         * shell/rb-shell.c (rb_shell_set_rating_impl): 
15459         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
15460         (info_available_cb): 
15461         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
15462         (rb_station_properties_dialog_sync_entries): 
15463         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
15465         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
15466         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
15467         
15468 2005-08-29  Colin Walters  <walters@verbum.org>
15470         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
15472         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
15473         linking insanity.
15475         * widgets/rb-header.c (sanitize_string): New function, extracted
15476         from old info_url.  Be sure to always strip the string.
15477         (info_url): Rewrite to take artist/album, and generate a sane
15478         URL for them from last.fm, which is better than allmusic.com in
15479         that they support Rhythmbox, and have a *SANE* URL scheme.
15480         (artist_info_url, album_info_url): Delete.
15481         (rb_header_sync): Use info_url.
15483 2005-08-29  James Livingston  <jrl@ids.org.au>
15485         * sources/rb-source.c: (rb_source_search): Check to ensure that this
15486         is implemented before calling it. Many sources don't implement the
15487         method.
15489 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
15491         * data/glade/create-playlist.glade:  Cleanup the layout,
15492         and add a few more mnemonics.
15493         * shell/rb-playlist-manager.c:
15494         (rb_playlist_manager_cmd_load_playlist),
15495         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
15496         capitalization for window titles.
15497         * widgets/rb-query-creator-properties.c: Add mnemonics
15498         to checkbutton labels.
15499         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
15500         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
15502 2005-08-28  Colin Walters  <walters@verbum.org>
15504         * data/rhythmbox.schemas: Delete search_text for library
15505         and iradio; this isn't a persistent value anymore.
15506         Closes #313757.
15507         
15508         * sources/rb-source.h:
15509         * sources/rb-source.c: Delete impl_can_search.
15511         * sources/rb-iradio-source.c: Delete search_text usage.
15512         * sources/rb-library-source.c: Ditto.
15514         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
15515         search when source is set, and just do rb_source_search in
15516         rb_source_header_search_cb.
15518         * shell/rb-shell.c (rb_shell_append_source): Don't
15519         initiate search.
15521         * shell/Makefile.am: Don't dist dashboard.c.
15523 2005-08-28  Colin Walters  <walters@verbum.org>
15525         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
15526         
15527 2005-08-28  Colin Walters  <walters@verbum.org>
15529         * data/org.gnome.Rhythmbox.service.in: New.
15531         * data/Makefile.am: Install service file.
15533         * configure.ac: Define DBUS_SERVICES_DIR.
15535         * autogen.sh: Set ACLOCAL_FLAGS.
15537         * macros/acinclude.m4: New.
15538         
15539 2005-08-28  Colin Walters  <walters@verbum.org>
15541         Initial patch from Jonathan Matthew; closes 313684.
15543         * rhythmdb/rhythmdb-tree.c:
15544         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
15545         (save_entry): Return on error.
15546         (rhythmdb_tree_save): Handle error when saving the
15547         db; additionally, handle errors from fclose and unlink,
15548         and print error too.
15550 2005-08-28  Colin Walters  <walters@verbum.org>
15552         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
15553         extra _.
15554         
15555 2005-08-28  Colin Walters  <walters@verbum.org>
15557         * configure.ac: Change iPod support to --with-ipod;
15558           automatically enable it if we have HAL.  Try to
15559           support both HAL 0.5 and HAL 0.2.  Break out
15560           totem-plparser into its own check so later we
15561           can do version tests there too.
15562           Kill dashboard support.
15563         
15564         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
15565         to support HAL > 0.5, but preserve the old code for HAL < 0.5
15566         Closes #310017.
15567         
15568         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
15569         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
15571         * sources/Makefile.am: Also handle
15572         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
15574         * shell/dashboard.c: Delete; someone should just write a little
15575         python shim which lists on the D-BUS interface and writes the
15576         stuff to Dashboard.  Even better Dashboard should be ported
15577         to D-BUS and do the listening itself, perhaps on an abstract
15578         "org.gnome.MusicPlayer" interface or something.
15580         * shell/rb-shell.c: Kill dashboard support.
15582 2005-08-28  Colin Walters  <walters@verbum.org>
15584         * remote/dbus/rb-print-playing.py: New file.
15586 2005-08-28  Colin Walters  <walters@verbum.org>
15588         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
15589         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
15591         * shell/rb-shell-player.h:
15592         * shell/rb-shell-player.c: Add playing-uri-changed signal.
15593         * shell/rb-shell-player.xml: Export it.
15595         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
15596         (rb_shell_error_quark): New.
15598         * shell/rb-shell.h: Prototype.  Also add RBShellError.
15599         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
15600         
15601 2005-08-28  Colin Walters  <walters@verbum.org>
15603         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
15604         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
15605         bonobo_unlock.
15606         (rb_remote_bonobo_preinit): Lock setting moved here.
15607         (rb_remote_bonobo_init): From here.
15609         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
15610         Also invoke handle_cmdline in the right place.
15611         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
15612         GFunc.
15614 2005-08-28  James Livingston  <jrl@ids.org.au>
15616         * NEWS: keep the NEWS file up to date, so we don't have to do it all
15617         when 0.9.1 comes around.
15619 2005-08-28  James Livingston  <jrl@ids.org.au>
15621         * iradio/rb-new-station-dialog.c:
15622         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
15623         bug 314477.
15625 2005-08-28  James Livingston  <jrl@ids.org.au>
15627         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15629         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
15630         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
15631         is a song is longer than 60 minutes. Closes bug 313311.
15633 2005-08-27  James Livingston  <jrl@ids.org.au>
15635         * data/glade/create-playlist.glade:
15636         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
15637         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
15638         "minutes" as an option in the playlist limit menu.
15640         * rhythmdb/rhythmdb-query-model.c:
15641         (rhythmdb_query_model_class_init),
15642         (rhythmdb_query_model_set_property),
15643         (rhythmdb_query_model_get_property),
15644         (rhythmdb_query_model_update_limited_entries): Allow query models to
15645         have a time limit
15646         
15647         * shell/rb-playlist-manager.c:
15648         (rb_playlist_manager_set_automatic_playlist),
15649         (rb_playlist_manager_cmd_edit_automatic_playlist):
15650         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
15651         (rb_playlist_source_get_query), (impl_receive_drag),
15652         (rb_playlist_source_new_from_xml),
15653         (rb_playlist_source_save_to_xml),
15654         (rb_playlist_source_songs_sort_order_changed_cb),
15655         (rb_playlist_source_do_query):
15656         * sources/rb-playlist-source.h:
15657         * widgets/rb-query-creator.h: Allow playlists to be limited by time
15659 2005-08-27  James Livingston  <jrl@ids.org.au>
15661         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
15663         * configure.ac:
15664         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
15665         non-standard location. Closes bug 314640.
15667 2005-08-26  Colin Walters  <walters@verbum.org>
15668         
15669         Patch from Olivier Blin <oblin@mandriva.com>
15671         * widgets/eggnotificationbubble.c (draw_bubble): 
15672         Handle extreme-left case as well.
15673         
15674 2005-08-26  Colin Walters  <walters@verbum.org>
15676         * shell/rb-shell.c (idle_save_state): Don't do this.
15677         (rb_shell_construct): Remove idle calls to idle_save_state.
15678         We should save the playlists automatically when they're
15679         modified.
15680         (rb_shell_load_uri): Don't try to re-stat entry if it already
15681         exists.
15683         * shell/rb-shell-player.c: Keep track of entry we are attempting
15684         to play.
15685         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
15686         Don't double-free error.
15687         (rb_shell_player_play_entry): Signal errors.
15688         (rb_shell_player_entry_activated_cb): Ditto.
15689         (rb_shell_player_property_row_activated_cb): Ditto.
15690         (rb_shell_player_set_playing_source_internal): Unset attempted
15691         playing entry.
15692         (rb_shell_player_error): Refactor to be usable both sync and
15693         async.  Handle case where displayed entry differs from entry.
15694         (error_cb): Move GDK locking here.
15696         * shell/main.c (main): Drop most commandline arguments for D-BUS;
15697         people can just use dbus-send or python.  We only support focusing
15698         and loading files.
15699         (load_uri_args): New function, extracted from handle_cmdline.
15700         (dbus_load_uri, bonobo_load_uri): New functions.
15702         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
15703         appropriate.
15705         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
15706         * remote/dbus/rb-remote-dbus.c: Deleted.
15708         * player/rb-player-gst.c: Clear any pending idle handlers when we
15709         close the player.  Signal errors generated during open/play etc
15710         as synchronous errors.
15712         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
15713         
15714 2005-08-26  Colin Walters  <walters@verbum.org>
15716         * shell/rb-shell.c (rb_shell_present): Try harder.
15718 2005-08-26  Colin Walters  <walters@verbum.org>
15720         * shell/rb-shell.c (rb_shell_present): Try to handle
15721         GTK_MINOR_VERSION < 8.
15723 2005-08-26  James Livingston  <jrl@ids.org.au>
15725         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
15726         <pbrobinson@gmail.com>
15728 2005-08-26  Colin Walters  <walters@verbum.org>
15730         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
15732 2005-08-25  Colin Walters  <walters@verbum.org>
15734         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
15735         Delete.
15736         (rb_shell_player_do_next_with_rating): Move back into
15737         rb_shell_player_do_next.
15738         (rb_shell_player_entry_activated_cb): Remove call to
15739         rb_shell_player_auto_adjust_rating.
15740         (do_next_idle): Just call rb_shell_player_do_next.
15742         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
15744 2005-08-25  Colin Walters  <walters@verbum.org>
15746         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
15747         before gtk_window_present_with_time.
15748         
15749 2005-08-25  Colin Walters  <walters@verbum.org>
15751         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
15752         default.
15754         * shell/rb-shell.c (rb_shell_constructor): Adapted from
15755         rb_shell_construct.  This is so we only have to do g_object_new.
15756         (rb_shell_get_player): New function.
15757         (rb_shell_get_player_path): Ditto.
15758         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
15759         
15760         * shell/rb-shell.h: Prototype them.
15762         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
15763         export over D-BUS.
15764         (reemit_playing_signal): New function.
15765         (rb_shell_player_open_playlist_location): Use return values from
15766         rb_player_open, rb_player_close, etc. instead of checking "error".
15767         Return a gboolean on failure.
15768         (rb_shell_player_open_entry): Just open entry location, don't
15769         print to stderr.
15770         (rb_shell_player_play): Handle retval from rb_player_play.  Return
15771         a gboolean.
15772         (do_next_idle): Move logic for handling of end of playlist here.
15773         (rb_shell_player_set_playing_entry): Take a GError, return a
15774         gboolean.  Update to use gboolean return values.
15775         (rb_shell_player_do_previous): Delete lots of crazy duplicate
15776         logic.  Signal an error on end of playlist.  Also signal error if
15777         we're not playing.  Move heuristic for replaying the song into
15778         rb_shell_player_cmd_previous.
15779         (rb_shell_player_do_next_with_rating): Signal error on end of
15780         playlist.
15781         (rb_shell_player_do_next): Return errors.
15782         (rb_shell_player_cmd_previous): Heuristic for restarting song
15783         moved here; the idea is you generally only want that from the GUI.
15784         (rb_shell_player_cmd_play): Handle error.
15785         (rb_shell_player_playpause): Signal errors.
15786         (filter_mmkeys): Use rb_shell_player_cmd_previous and
15787         rb_shell_player_cmd_next in favor of the internal _do functions.
15788         
15789         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
15790         errors.  Update prototypes for above changes.
15792         * shell/main.c: More tightly integrate D-BUS; register various
15793         major singleton objects here.  Fix handle_cmdline so we only
15794         process extra arguments, not every argument.
15796         * shell/Makefile.am: Generate D-BUS glue headers.
15798         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
15799         into shell/main.c.  Now this file just acts as a client library.
15800         Not heavily tested.
15802         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
15803         Moved here.
15804         (rb_remote_bonobo_init): Move long CORBA rant here along with
15805         setting of lock functions.
15807         * player/rb-player-gst.c (rb_player_construct)
15808         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
15809         on error.
15811         * player/rb-player.h: Update prototypes.
15813         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
15814         rb-remote-bonobo.c.
15815         (rb_threads_init): Don't set gdk lock functions here.
15817 2005-08-25  James Livingston  <jrl@ids.org.au>
15819         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15821         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
15822         * lib/rb-tree-dnd.h:
15823         * rhythmdb/rhythmdb-property-model.c:
15824         (rhythmdb_property_model_class_init),
15825         (rhythmdb_property_model_drag_source_init),
15826         (rhythmdb_property_model_iter_parent),
15827         (rhythmdb_property_model_row_draggable),
15828         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
15829         (rhythmdb_property_model_drag_data_get),
15830         (rhythmdb_property_model_enable_drag):
15831         * rhythmdb/rhythmdb-property-model.h:
15832         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
15833         (rb_playlist_manager_set_property), (append_new_playlist_source),
15834         (rb_playlist_manager_save_playlists):
15835         * shell/rb-shell.c: (rb_shell_construct),
15836         (sourcelist_drag_received_cb):
15837         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15838         * sources/rb-playlist-source.c: (impl_receive_drag):
15839         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
15840         (rb_sourcelist_model_drag_dest_init),
15841         (rb_sourcelist_model_set_dnd_targets),
15842         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
15843         (rb_sourcelist_model_row_drop_position),
15844         (rb_sourcelist_model_get_drag_target),
15845         (rb_sourcelist_model_drag_data_get):
15846         * sources/rb-sourcelist-model.h:
15847         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
15848         (rb_sourcelist_init), (rb_sourcelist_get_property),
15849         (rb_sourcelist_selection_changed_cb):
15850         * sources/rb-sourcelist.h:
15851         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
15852         improve drag-n-drop support. Allow dragging of item from property
15853         views to the source list, to create new automatic playlists. Allow
15854         playlist re-ordering. Fix dragging from Rhythmbox to other
15855         applications. (Closes bug 147337)
15857 2005-08-24  Colin Walters  <walters@verbum.org>
15859         Patch from Olivier Blin <oblin@mandriva.com>
15861         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
15862         correctly in the case where the window is next to monitor edge.
15864 2005-08-24  James Livingston  <jrl@ids.org.au>
15866         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
15867         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
15868         a gobject property to get the query model that backs the playlist.
15870 2005-08-24  James Livingston  <jrl@ids.org.au>
15872         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
15873         (handle_playlist_entry_into_playlist_cb),
15874         (rb_playlist_manager_playlist_entries_changed): Disable the "create
15875         audio cd" menu item when a non-playlist source is selected, or the
15876         playlist is empty. (Closes Bug 313253)
15878 2005-08-24  James Livingston  <jrl@ids.org.au>
15880         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
15881         Fix the playlist length checkso it doesn't report 0 for automatic
15882         playlists. This was stopping automati playlists being burnt to cd.
15884 2005-08-24  James Livingston  <jrl@ids.org.au>
15886         * configure.ac:
15887         * sources/rb-playlist-source-recorder.c: (burn_cd):
15888         * sources/rb-playlist-source.c:
15889         (rb_playlist_source_songs_sort_order_changed_cb):
15890         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
15891         more warnings that occur when compiling RPMs on Fedora.
15893 2005-08-24  James Livingston  <jrl@ids.org.au>
15895         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
15896         was stopping some distros gcc version compiling.
15898 2005-08-24  James Livingston  <jrl@ids.org.au>
15900         * NEWS:
15901         * data/glade/create-playlist.glade:
15902         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
15903         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
15904         (rhythmdb_query_free), (rhythmdb_query_serialize),
15905         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
15906         * rhythmdb/rhythmdb.h:
15907         * shell/rb-playlist-manager.c:
15908         (rb_playlist_manager_set_automatic_playlist),
15909         (rb_playlist_manager_cmd_edit_automatic_playlist):
15910         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
15911         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
15912         (impl_receive_drag), (rb_playlist_source_new_from_xml),
15913         (rb_playlist_source_save_to_xml),
15914         (rb_playlist_source_songs_sort_order_changed_cb),
15915         (rb_playlist_source_do_query):
15916         * sources/rb-playlist-source.h:
15917         * widgets/Makefile.am:
15918         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
15919         (rb_entry_view_set_sorting_order):
15920         * widgets/rb-query-creator-private.h:
15921         * widgets/rb-query-creator-properties.c:
15922         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
15923         (stringCriteriaGetWidgetData),
15924         (escapedStringCriteriaSetWidgetData),
15925         (escapedStringCriteriaGetWidgetData), (set_rating_score),
15926         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
15927         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
15928         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
15929         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
15930         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
15931         (relativeTimeCriteriaCreateWidget),
15932         (relativeTimeCriteriaSetWidgetData),
15933         (relativeTimeCriteriaGetWidgetData):
15934         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
15935         (rb_query_creator_class_init), (rb_query_creator_constructor),
15936         (rb_query_creator_dispose), (rb_query_creator_set_property),
15937         (rb_query_creator_get_property), (rb_query_creator_load_query),
15938         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
15939         (get_entry_for_property), (rb_query_creator_get_query),
15940         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
15941         (limit_toggled_cb), (lookup_row_by_widget),
15942         (remove_button_click_cb), (append_row),
15943         (get_property_index_from_proptype), (select_criteria_from_value),
15944         (property_option_menu_changed), (create_property_option_menu),
15945         (create_criteria_option_menu), (sort_option_menu_changed),
15946         (setup_sort_option_menu):
15947         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
15948         playlists. The two most notable improvements are 1) adding more
15949         properties to the query creator, making it much easier to add more in
15950         the future, and 2) allow playlists to be sorted, from the query editor
15951         if they gave limits, and by clicking on column headers if they don't.
15953         Files added: widgets/rb-query-creator-private.h,
15954         sources/rb-query-creator-properties.c
15956 2005-08-21  James Livingston  <jrl@ids.org.au>
15958         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
15959         error=NULL. This stops some crashes.
15961 2005-08-19  Colin Walters  <walters@verbum.org>
15963         Patch from Olivier Blin <oblin@mandriva.com>
15965         * widgets/eggnotificationbubble.c (force_window): Support top
15966         orientation.
15967         * widgets/eggnotificationbubble.h: Remove
15968         egg_notification_bubble_force_window from header.
15969         
15970 2005-08-18  James Livingston  <jrl@ids.org.au>
15972         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
15973         with the changes since then.
15975 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
15977         * shell/rb-shell-player.c: (rb_shell_player_init),
15978         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
15979         (rb_shell_player_volume_widget_changed_cb):
15980         * sources/rb-iradio-source.c:
15981         * sources/rb-library-source.c:
15982         * sources/rb-playlist-source.c:
15983         * widgets/Makefile.am:
15984         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
15985         (bacon_volume_button_class_init), (bacon_volume_button_init),
15986         (bacon_volume_button_dispose), (bacon_volume_button_new),
15987         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
15988         (bacon_volume_button_scroll), (bacon_volume_button_press),
15989         (cb_button_timeout), (cb_button_press), (cb_button_release),
15990         (bacon_volume_release_grab), (cb_dock_press),
15991         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
15992         (bacon_volume_scale_new), (bacon_volume_scale_press),
15993         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
15994         * widgets/bacon-volume.h:
15995         * widgets/rb-volume.c:
15996         * widgets/rb-volume.h:
15997           Use BaconVolumeButton (#300867).
15999 2005-08-17  James Livingston  <jrl@ids.org.au>
16001         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
16002         (rhythmdb_process_metadata_load): don't reset the First Seen time
16003         whenever we recheck the metadata.
16005 2005-08-17  James Livingston  <jrl@ids.org.au>
16007         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16008         temporary workaround to stop crashes when trying to burn an empty
16009         playlist. Doesn't disable the menu item which is the better solution
16010         (Bug 313253).
16012 2005-08-15  James Livingston  <jrl@ids.org.au>
16014         * shell/rb-source-header.c: (rb_source_header_init),
16015         (rb_source_header_sync_control_state),
16016         (rb_source_header_search_activate_cb):
16017         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
16018         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
16019         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
16020         (rb_search_entry_init), (rb_search_entry_searching),
16021         (rb_search_entry_activate_cb):
16022         * widgets/rb-search-entry.h: Move focus to the entry view when user
16023         presses enter in the search box. Patch from Paolo Borelli
16024         <pborelli@katamail.com> (Closes bug 128110)
16026 2005-08-15  James Livingston  <jrl@ids.org.au>
16028         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
16029         (rb_playlist_manager_new_playlist):
16030         * shell/rb-playlist-manager.h:
16031         * shell/rb-shell.c: (rb_shell_construct),
16032         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
16033         the source list to be shown when a new playlist is created. (Closes
16034         bug 161935)
16036 2005-08-15  James Livingston  <jrl@ids.org.au>
16038         * widgets/rb-header.c: (rb_header_init),
16039         (rb_header_set_show_timeline): disable the seek slider, rather than
16040         hiding it, which more closely follows the HIG. (Closes bug 139102)
16042 2005-08-13  Colin Walters  <walters@verbum.org>
16044         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
16045         rb_shell_hidden_notify.
16046         (rb_shell_hidden_notify): Notify if the shell is hidden.
16047         (rb_shell_set_visibility_impl): Debug goo.
16049         * shell/rb-shell.h: Export rb_shell_hidden_notify.
16051         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
16052         when the user clicks on notification.
16054         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
16055         CD burn is complete.
16056         (rb_playlist_source_recorder_finalize): Unref shell.
16057         (rb_playlist_source_recorder_new): Take shell.
16059         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
16060         Pass shell to RBPlaylistSourceRecorder.
16061         
16062 2005-08-13  Colin Walters  <walters@verbum.org>
16064         * lib/rb-thread.c:
16065         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
16066           time to convert.
16068 2005-08-13  Colin Walters  <walters@verbum.org>
16070         * widgets/eggnotificationbubble.h:
16071         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
16072         * widgets/eggtrayicon.c:
16073         * widgets/eggtrayicon.h: Add notification API.
16074         * shell/rb-tray-icon.c:
16075         * shell/rb-tray-icon.h: Add notification API.
16076         * shell/rb-shell.c: Notify on song change.
16078 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16080         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
16081         Correct an inversion of two lines causing NULL to be unreffed
16083 ============ Version 0.9.0
16085 2005-08-10  Bastien Nocera  <hadess@hadess.net>
16087         * configure.ac: 0.9.0, whee!
16088         * NEWS: badly updated
16089         * remote/bonobo/Makefile.am:
16090         * remote/bonobo/rb-remote-bonobo.h:
16091         * shell/Makefile.am:
16092         * shell/main.c: make distcheck fixes