2006-10-09 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
bloba1c1ae15db147677aa9167931be0798be7a56b1a
1 2006-10-09  James Livingston  <doclivingston@gmail.com>
3         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
5         * widgets/eggtrayicon.c: (egg_tray_icon_notify): work around a
6         libnotify 0.3.0 bug, as it doesn't handle escaped messages properly.
7         Fixes #357553.
9 2006-10-09  James Livingston  <doclivingston@gmail.com>
11         patch by: Luca Ferretti  <elle.uca@libero.it>
13         * data/glade/song-info-multiple.glade:
14         * data/glade/song-info.glade: Fix a few HIG issues.
16 2006-10-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
18         * plugins/audioscrobbler/rb-lastfm-source.c:
19         (rb_lastfm_source_class_init):
20         Return TRUE from impl_try_playlist so playback starts in a separate
21         thread.
23 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
25         * shell/main.c: (main):
26         Call bind_textdomain_codeset ("gstreamer-0.10", "UTF-8") so we get
27         UTF-8 GStreamer messages.  Fixes #357973.
29 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
31         * shell/rb-shell.c: (rb_shell_constructor):
32         Remove a line that accidentally slipped in from some other universe.
34 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
36         * plugins/audiocd/rb-audiocd-plugin.c: (_delete_cb):
37         Don't remove sources from the hash table while iterating it on
38         shutdown.  Fixes #359583.
40 2006-10-07  James Livingston  <doclivingston@gmail.com>
42         patch from Alex Lancaster  <alexl@users.sourceforge.net>
44         * shell/rb-shell.c: change the keybinding for "Plugins" to not
45         conflict with others. Fixes #355904
47 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
49         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
50         (rhythmdb_query_model_chain),
51         (rhythmdb_query_model_entry_changed_cb),
52         (rhythmdb_query_model_base_entry_prop_changed),
53         (rhythmdb_query_model_base_entry_removed):
54         For chained models, propagate the parent model's entry-prop-changed
55         signal rather than emitting one from the db entry-changed handler.
56         This ensures that when the change filters the entry out of the parent
57         model, property models attached to the child model get the entry
58         change signal before the post-entry-delete signal, so they can
59         decrement the refcount for the right property value.  Fixes #359083.
61 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
63         * plugins/audioscrobbler/Makefile.am:
64         define NULL
66 2006-10-07  James Livingston  <doclivingston@gmail.com>
68         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
69         (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
70         * plugins/audioscrobbler/rb-lastfm-source.c:
71         (rb_lastfm_source_get_playback_uri): work around GStreamer not support
72         hypens in URI schemes.
74 2006-10-06  William Jon McCann  <mccann@jhu.edu>
76         * plugins/iradio/Makefile.am:
77         * plugins/audioscrobbler/Makefile.am:
78         * plugins/cd-recorder/Makefile.am:
79         Don't clean all plugin_DATA.
80         Fixes #360210
82 2006-10-06  James Livingston  <doclivingston@gmail.com>
84         patch from Matt N  <fisxoj@gmail.com>
86         * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
87         (rb_player_gst_bus_cb):
88         * backends/rb-player.c: (rb_player_interface_init),
89         (_rb_player_emit_tick), (_rb_player_emit_event):
90         * backends/rb-player.h: let the backend emit named "events", for
91         things that the core shouldn't know about.
93         * rhythmdb/rhythmdb.h:
94         * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
95         support for streams containing album metadata.
97         * plugins/audioscrobbler/Makefile.am:
98         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
99         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
100         (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
101         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
102         * plugins/audioscrobbler/rb-lastfm-source.c:
103         * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
104         of last.fm streams. From #313049.
106 2006-10-06  James Livingston  <doclivingston@gmail.com>
108         * plugins/magnatune/magnatune/Makefile.am: add a file I missed
109         committing. Oops.
111 2006-10-06  James Livingston  <doclivingston@gmail.com>
113         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
115         * configure.ac:
116         * data/rhythmbox.schemas:
117         * plugins/Makefile.am:
118         * plugins/magnatune/Makefile.am:
119         * plugins/magnatune/magnatune-loading.glade:
120         * plugins/magnatune/magnatune-prefs.glade:
121         * plugins/magnatune/magnatune-purchase.glade:
122         * plugins/magnatune/magnatune.rb-plugin.desktop.in:
123         * plugins/magnatune/magnatune/BuyAlbumHandler.py:
124         * plugins/magnatune/magnatune/MagnatuneSource.py:
125         * plugins/magnatune/magnatune/TrackListHandler.py:
126         * plugins/magnatune/magnatune/__init__.py:
127         * plugins/magnatune/magnatune_circle_small.png:
128         * plugins/magnatune/magnatune_logo_color_small.png:
129         * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
130         play and download tracks from the MagnaTune online music store. From
131         #345783.
133 2006-10-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
135         * lib/rb-proxy-config.c: (rb_proxy_config_init),
136         (rb_proxy_config_dispose), (rb_proxy_config_finalize),
137         (check_auto_proxy_config), (get_proxy_config):
138         Don't crash when eel_gconf_get_string returns NULL.
139         Fixes #359974.
141 2006-10-04  James Livingston  <doclivingston@gmail.com>
143         patch by: Fryderyk Dziarmagowski  <freetz@gmx.net>
145         * plugins/audiocd/Makefile.am: fix the plugin when linking with
146         --as-needed. Fixes #358730
148 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
150         patch by:  William Jon McCann  <mccann@jhu.edu>
152         * sources/rb-iradio-source.c: (playing_source_changed_cb):
153         Fix some stupidity I introduced that caused crashes on shutdown.
154         Fixes #359181.
156 2006-10-02  William Jon McCann  <mccann@jhu.edu>
158         * plugins/audiocd/Makefile.am:
159         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
160         * plugins/iradio/.cvsignore:
161         * plugins/iradio/Makefile.am:
162         * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
163         (impl_deactivate):
164         * plugins/power-manager/.cvsignore:
165         Install missing iradio ui file.  Don't leak ui filename.
166         Fix iradio install dir. Fix audiocd install dir.
167         Remove unused code from audio cd plugin.
169         Fixes #359170
171 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
173         * sources/rb-ipod-source.c: (impl_move_to_trash):
174         Uncomment rhythmdb_entry_move_to_trash call that I accidentally
175         commented out while fixing bug 355235.  Oops.
177 2006-10-03  James Livingston  <doclivingston@gmail.com>
179         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
180         non-unicode warnings to debug statements, since they can occur with
181         slightly broken files.
183         * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
184         * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
185         iradio plugin is disabled and re-enabled.
187 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
189         * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
190         (rhythmdb_entry_podcast_post_get_type):
191         * rhythmdb/rhythmdb.h:
192         * tests/bench-rhythmdb-load.c: (main):
193         Add definitions for some common extra-metadata fields,
194         remove iradio entry type definition, add the concept of entry type
195         categories, define categories for the core entry types.
196         Categories are used to decide if an entry can be copied to a removable
197         device, if it should be reported to audioscrobbler, etc.
199         * shell/Makefile.am:
200         * shell/rb-shell-player.c: (rb_shell_player_class_init),
201         (rb_shell_player_constructor), (rb_shell_player_init),
202         (rb_shell_player_get_property), (open_location_thread),
203         (rb_shell_player_open_location),
204         (rb_shell_player_sync_with_source),
205         (rb_shell_player_set_playing_source_internal), (tick_cb):
206         * shell/rb-shell.c: (construct_widgets), (construct_sources),
207         (rb_shell_player_elapsed_changed_cb):
208         Remove iradio-specific code, use extra metadata fields for streaming
209         title and artist name.
211         * data/ui/rhythmbox-ui.xml:
212         Add a placeholder for 'new ...' menu items.
214         * Makefile.am:
215         * sources/Makefile.am:
216         * configure.ac:
217         * data/rhythmbox.schemas:
218         * plugins/Makefile.am:
219         * plugins/iradio/Makefile.am:
220         * plugins/iradio/iradio-ui.xml:
221         * plugins/iradio/iradio.rb-plugin.desktop.in:
222         * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
223         (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
224         (rb_iradio_plugin_class_init):
225         iradio plugin, enabled and hidden by default.
227         * plugins/audioscrobbler/rb-audioscrobbler.c:
228         (rb_audioscrobbler_song_changed_cb):
229         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
230         * sources/rb-daap-source.c: (rb_daap_source_new):
231         * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
232         Define entry type categories, and use them where appropriate.
234         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
235         (rb_iradio_source_constructor), (rb_iradio_source_new),
236         (impl_get_status), (impl_want_uri), (buffering_cb),
237         (check_entry_type), (streaming_title_request_cb),
238         (streaming_artist_request_cb), (extra_metadata_gather_cb),
239         (info_available_cb), (playing_entry_changed_cb),
240         (playing_source_changed_cb):
241         Move streaming metadata and buffering handling here from
242         rb-shell-player.c.  Emit extra-metadata notify signals when the streaming
243         title or artist changes, and handle request and gather signals for
244         those.
246         * widgets/rb-header.c: (rb_header_class_init),
247         (rb_header_set_property), (rb_header_get_property),
248         (rb_header_new), (append_and_free), (rb_header_sync):
249         * widgets/rb-header.h:
250         Rework to use streaming artist and title extra-metadata.
251         streaming-artist overrides entry artist, and streaming-title means
252         entry title is a stream name, displayed in brackets.
254         * doc/reference/Makefile.am:
255         * doc/reference/rhythmbox.types:
256         Remove iradio stuff from gtk-doc build.
258         Fixed #347097.
260 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
262         patch mostly by: Ed Catmur  <ed@catmur.co.uk>
264         * bindings/python/rhythmdb.defs:
265         * lib/rb-marshal.list:
266         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
267         (rhythmdb_emit_entry_deleted),
268         (rhythmdb_entry_extra_metadata_accumulator),
269         (rhythmdb_entry_request_extra_metadata),
270         (rhythmdb_emit_entry_extra_metadata_notify),
271         (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
272         * rhythmdb/rhythmdb.h:
273         Add signals for dealing with transient metadata outside the set stored
274         in RhythmDBEntry:
275         - entry_extra_metadata_request returns a value for the requested
276           metadata field
277         - entry_extra_metadata_notify notifies observers of a change to an
278           extra metadata field
279         - entry_extra_metadata_gather returns the values of all extra metadata
280           fields
282         * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
283         (rb_shell_player_extra_metadata_cb):
284         Sync the display on extra metadata changes and emit dbus signals when
285         we can marshal the value.
287         * shell/rb-shell.c: (rb_shell_get_song_properties):
288         Implement rb_shell_song_get_properties using
289         rhythmdb_entry_gather_metadata.
291         * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
292         (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
293         * configure.ac:
294         Add GValue marshaller for python (until bug 351072 is fixed)
296         From #345592.
298 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
300         * configure.ac:
301         * data/rhythmbox.schemas:
302         * plugins/Makefile.am:
303         * plugins/power-manager/Makefile.am:
304         * plugins/power-manager/power-manager.rb-plugin.desktop.in:
305         * plugins/power-manager/rb-power-manager-plugin.c:
306         (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
307         (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
308         (playing_changed_cb), (impl_activate), (impl_deactivate):
309         gnome-power-manager integration: inhibit suspend while playing.
310         Fixes #344979.
312 2006-10-02  James Livingston  <doclivingston@gmail.com>
314         update by: Aloriel  <jorge.gonzalez.gonzalez@hispalinux.es>
315         and Alex Lancaster  <alexl@users.sourceforge.net>
317         * help/C/rhythmbox.xml: fix some mispellings and grammer.
318         Fixes #353143, #353146 and #353147.
320 ============ Version 0.9.6
322 2006-10-01  James Livingston  <doclivingston@gmail.com>
324         * configure.ac: bump version to 0.9.6. enable tag-writing and
325         ipod-writing by default
327         * NEWS: update NEWS
329 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
331         patch by:  William Jon McCann  <mccann@jhu.edu>
333         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
334         Use a local GError in case no error pointer pointer is passed in.
335         From bug #358396.
337 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
339         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
340         Don't reference members of freed structures.
342 2006-09-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
344         patch by:  William Jon McCann  <mccann@jhu.edu>
346         * player/rb-recorder-gst.c: (rb_recorder_burn):
347         Drop GDK lock before entering n-c-b.  Fixes #353894?
349 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
351         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
352         (impl_activate):
353         Handle error/hangup conditions on the LIRC connection.  Fixes #358049.
355 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
357         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
358         Call lirc_init before lirc_readconfig so we don't crash if the user's
359         .lircrc file has any mode sections. Fixes #357419.
361 2006-09-24  James Livingston  <doclivingston@gmail.com>
363         * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
364         if we get called twice, as that can happen. Fixes #357214.
366 2006-09-24  James Livingston  <doclivingston@gmail.com>
368         * backends/rb-encoder.h: add "file access" error
370         * lib/rb-file-helpers.c: (rb_dot_dir):
371         * podcast/rb-podcast-manager.c:
372         (rb_podcast_manager_download_file_info_cb): remove directory creation
373         race condition.
375         * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
376         (create_parent_dirs), (rb_encoder_gst_encode): check result of
377         directory creation. Fixes #347743
379 2006-09-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
381         * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
382         Strip trailing whitespace
384 2006-09-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
386         * rhythmdb/Makefile.am:
387         * rhythmdb/rhythmdb-private.h:
388         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
389         (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
390         * rhythmdb/rhythmdb-tree.h:
391         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
392         (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
393         * rhythmdb/rhythmdb.h:
394         Rather than aborting, show an error and refuse to load the database when
395         it appears to come from the future.  From bug #350304.
397 2006-09-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
399         * bindings/python/rhythmdb.override:
400         Make entry_foreach usable.
402 2006-09-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
404         * sources/rb-podcast-source.c: (rb_podcast_source_init):
405         Scale the icon so it matches the rest of the sources.
406         Fixes #351410.
408 2006-09-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
410         * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
411         (rhythmdb_property_model_set_query_model_internal),
412         (rhythmdb_property_model_row_inserted_cb),
413         (rhythmdb_property_model_prop_changed_cb),
414         (rhythmdb_property_model_entry_removed_cb),
415         (rhythmdb_property_model_delete),
416         (rhythmdb_property_model_perform_sync):
417         Use the hash table to track hidden entries, rather than visible
418         entries.  Cuts memory usage fairly significantly.  From bug #347425.
420 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
422         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
423         Patch from Christian Becke to fix compilation with -O3, bug #355945.
425 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
427         * sources/rb-ipod-source.c: (add_rb_playlist),
428         (impl_move_to_trash), (impl_delete_thyself):
429         Delete ipod playlists when the ipod source is deleted.  Fixes #355235.
431         * sources/rb-sourcelist.c: (rb_sourcelist_remove):
432         Make sure we don't leave the sourcelist thinking a deleted source is
433         still playing.  Fixes nothing.
435 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
437         * shell/rb-shell.c:
438         Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
439         'Music->Import Folder' menu item for better icon theme coverage.
440         Fixes #354575.
442 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
444         * rhythmdb/rhythmdb-private.h:
445         * rhythmdb/rhythmdb.c: (rhythmdb_init),
446         (rhythmdb_start_action_thread), (rhythmdb_finalize),
447         (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
448         (rhythmdb_load), (rhythmdb_save_async):
449         Use a limited thread pool for adding URIs to the database.
450         Fixes #352494.
452 2006-09-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
454         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
455         Do something like the previous change, but for gstreamer 0.10
456         this time.  Oops.  Really fixes #349569.
458 2006-09-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
460         * backends/gstreamer/rb-player-gst.c: (error_cb):
461         Ignore 'internal data flow error' messages if we've already got an
462         error for the file.  Fixes #349569.
464 2006-09-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
466         * shell/rb-shell-clipboard.c:
467         (rb_shell_clipboard_playlist_deleted_cb):
468         Rebuild 'add to playlist' menu before removing actions for deleted
469         playlists, and don't unref the action, as we never had a reference on
470         it to begin with.  Fixes #354599.
472 2006-09-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
474         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
475         (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
476         Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
478 2006-09-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
480         * daapsharing/rb-daap-connection.c: (handle_playlists):
481         Reverse the list of playlists on the DAAP server so it ends up in the
482         right order.  Fixes #353926.
484 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
486         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
487         Fully process each code so the LIRC client returns to its normal state
488         when we're done.  Makes LIRC actually work properly for me.
490 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
492         patch by: Ed Catmur  <ed@catmur.co.uk>
494         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
495         (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
496         Don't show unused GdkWindows in SexyIconEntry.  Fixes #353671.
498 2006-09-02  William Jon McCann  <mccann@jhu.edu>
500         patch by: James Livingston <doclivingston@gmail.com>
502         * configure.ac:
503         * data/rhythmbox.schemas:
504         * metadata/Makefile.am:
505         * plugins/Makefile.am:
506         * plugins/audiocd/.cvsignore:
507         * plugins/audiocd/Makefile.am:
508         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
509         * plugins/audiocd/rb-audiocd-plugin.c:
510         (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
511         (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
512         (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
513         (end_cd_drive_monitor), (begin_cd_drive_monitor),
514         (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
515         (rb_audiocd_plugin_playing_uri_changed_cb),
516         (nautilus_burn_drive_get_device),
517         (rb_audiocd_plugin_source_deleted), (create_source_cb),
518         (impl_activate), (_delete_cb), (impl_deactivate):
519         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
520         (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
521         * shell/main.c: (main):
522         * shell/rb-removable-media-manager.c:
523         (rb_removable_media_manager_finalize),
524         (rb_removable_media_manager_load_media),
525         (rb_removable_media_manager_mount_volume),
526         (rb_removable_media_manager_scan):
527         * sources/Makefile.am:
528         * sources/rb-audiocd-source.c:
529         * sources/rb-audiocd-source.h:
530         Make auto CD support a plugin.
532         Fixes #349415.
534 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
536         * daapsharing/rb-daap-connection.c: (handle_song_listing):
537         Add a final rhythmdb_commit to make sure all songs from the share show
538         up in the daap source.  Fixes #353913.
540 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
542         * sources/rb-sourcelist-model.c:
543         (rb_sourcelist_model_drag_data_received),
544         (rb_sourcelist_model_row_drop_possible):
545         Re-enable dragging of a set of tracks to the source list to create a
546         new static playlist.  Fixes #353893.
548 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
550         * widgets/bacon-volume.c: (cb_button_timeout):
551         Actually drop the GDK lock, rather than returning while holding it.
552         Fixes #353895.
554 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
556         * plugins/generic-player/rb-generic-player-source.c:
557         (rb_generic_player_source_constructor),
558         (rb_generic_player_source_get_device_info), (impl_delete_thyself),
559         (rb_generic_player_source_load_songs), (load_playlist_file),
560         (default_load_playlists), (get_hal_context):
561         Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
562         Fixes #353483.
564 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
566         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
567         Canonicalise URIs received from gnome-vfs file monitor.
568         Fixes #353447.
570 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
572         * help/C/rhythmbox.xml: unbreak help build
573         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
574         Unbuffer the IO channel.  Fixes some weirdness for me.
576 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
578         * help/C/rhythmbox.xml:
579         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
580         (impl_activate), (impl_deactivate):
581         Add 'playpause' LIRC command.
583 2006-08-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
585         * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
586         (rb_source_finalize):
587         Remove idle callbacks in dispose, rather than finalize. Fixes crashes
588         when disconnecting generic audio players.
590 2006-08-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
592         patch by: Paolo Borelli  <pborelli@katamail.com>
594         * plugins/rb-python-plugin.c: (rb_python_object_get_type):
595         Fix a small leak.
597 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
599         * backends/gstreamer/rb-player-gst.c:
600         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
601         Don't actually disable the seek bar for non-seekable songs,
602         because we can't reliably tell yet.
604 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
606         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
607         (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
608         (db_entry_deleted_cb), (rb_daap_share_server_start),
609         (rb_daap_share_server_stop):
610         * rhythmdb/rhythmdb-private.h:
611         * rhythmdb/rhythmdb-tree.c: (save_entry):
612         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
613         (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
614         (rhythmdb_entry_get_ulong):
615         * rhythmdb/rhythmdb.h:
616         Give db entries a numeric ID property, replacing the daap server's
617         entry->id map.  From #347665.
619 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
621         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
622         * widgets/rb-header.c: (rb_header_class_init),
623         (rb_header_set_property), (rb_header_get_property),
624         (rb_header_set_playing_entry), (rb_header_sync),
625         (rb_header_sync_time):
626         * widgets/rb-header.h:
627         Add a 'seekable' property on RBHeader, and use it to make the seek bar
628         insensitive when the player backend tells us we can't seek in the
629         current song.  From #330410.
631 2006-08-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
633         * widgets/rb-song-info.c: (rb_song_info_update_buttons):
634         Don't try to unref previous/next entries if they aren't there.
635         Fixes #351806.
637 2006-08-15  James Livingston  <doclivingston@gmail.com>
639         * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
640         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
641         mountpoint into a RBRefString and compare equality of those, rather
642         than doign lots of strcmp()s.
644         * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
645         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
646         status notification as well as the visibility update in an idle
647         callback. Makes it take much less time to update after a volume
648         mount/unmount event.
650 2006-08-15  James Livingston  <doclivingston@gmail.com>
652         patch by: Christian Becke  <christianbecke@web.de>
654         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
655         multiple selections in the Import Folder dialog. Fixes #351414.
657 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
659         * shell/rb-shell.c: (construct_widgets):
660         * shell/rb-statusbar.c: (rb_statusbar_class_init),
661         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
662         (rb_statusbar_get_property), (rb_statusbar_new):
663         * shell/rb-statusbar.h:
664         Use the connect-proxy signal from the UI manager, which covers all
665         action groups, rather than just one.  Fixes #351280.
667 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
669         * widgets/rb-library-browser.c: (rebuild_child_model):
670         Fix query model reference counts (bug #349601).
672 2006-08-15  James Livingston  <doclivingston@gmail.com>
674         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
675         Error signals be non-recursive. Fixes a highly-unlikely issue that
676         could have caused #322972.
678 2006-08-14  James Livingston  <doclivingston@gmail.com>
680         * sources/rb-auto-playlist-source.c:
681         (rb_auto_playlist_source_init):
682         * sources/rb-static-playlist-source.c:
683         (rb_static_playlist_source_init):
685 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
687         * sources/rb-browser-source.c:
688         * sources/rb-import-errors-source.c:
689         * sources/rb-iradio-source.c:
690         * sources/rb-library-source.c:
691         * sources/rb-missing-files-source.c:
692         * sources/rb-play-queue-source.c:
693         * sources/rb-playlist-source.c:
694         * sources/rb-podcast-source.c:
695         * sources/rb-source.c:
696         Make entry-type a property on RBSource, rather than on most of its
697         subclasses.  Fixes #347288.
699 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
701         * remote/dbus/rb-client.c: (parse_pattern),
702         (create_rb_shell_proxies), (main):
703         Actually implement %ag and %aG (genre) for --print-playing-format
705 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
707         * lib/rb-debug.c: (rb_debug_real):
708         No point allocating a buffer for the timestamp when we can just put it
709         on the stack.
711 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
713         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
714         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
716 2006-08-11  James Livingston  <doclivingston@gmail.com>
718         * podcast/rb-podcast-manager.c:
719         (rb_podcast_manager_update_synctime): fix accidental commit in the
720         last, which caused a warning.
722 2006-08-11  James Livingston  <doclivingston@gmail.com>
724         * data/rhythmbox.schemas:
725         * podcast/rb-podcast-manager.c:
726         (rb_podcast_manager_update_synctime): change the schema's
727         update-inteval value from 0 to 1, which causes it to update on
728         startup, rather than never. Should fixs #343818.
730 2006-08-11  James Livingston  <doclivingston@gmail.com>
732         * configure.ac:
733         * data/Makefile.am:
734         - data/rhythmbox.desktop.in:
735         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
736         the @VERSION@ can be substituted in. Fix some issues with newer
737         bug-buddy versions. Fixes #348853.
739 2006-08-10  William Jon McCann  <mccann@jhu.edu>
741         * data/rhythmbox.schemas:
742         * plugins/Makefile.am:
743         * plugins/artdisplay/Makefile.am:
744         * plugins/audioscrobbler/Makefile.am:
745         * plugins/cd-recorder/Makefile.am:
746         * plugins/generic-player/Makefile.am:
747         * plugins/ipod/Makefile.am:
748         * plugins/lirc/Makefile.am:
749         * plugins/lyrics/Makefile.am:
750         * plugins/pythonconsole/Makefile.am:
751         * plugins/rb-module.c:
752         * plugins/rb-module.h:
753         * plugins/rb-plugin-manager.c: (configure_button_cb),
754         (plugin_manager_view_cell_cb), (cursor_changed_cb),
755         (plugin_manager_populate_lists), (plugin_manager_set_active),
756         (plugin_manager_toggle_active),
757         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
758         (rb_plugin_manager_finalize):
759         * plugins/rb-plugin-manager.h:
760         * plugins/rb-plugin.c: (rb_get_plugin_paths),
761         (rb_plugin_find_file):
762         * plugins/rb-plugin.h:
763         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
764         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
765         (rb_plugins_engine_init), (rb_plugin_info_free),
766         (load_plugin_module), (rb_plugins_engine_activate_plugin),
767         (rb_plugins_engine_deactivate_plugin),
768         (rb_plugins_engine_plugin_is_active),
769         (rb_plugins_engine_plugin_is_visible),
770         (rb_plugins_engine_plugin_is_configurable),
771         (rb_plugins_engine_configure_plugin),
772         (rb_plugins_engine_get_plugin_name),
773         (rb_plugins_engine_get_plugin_description),
774         (rb_plugins_engine_get_plugin_authors),
775         (rb_plugins_engine_get_plugin_website),
776         (rb_plugins_engine_get_plugin_copyright),
777         (rb_plugins_engine_get_plugin_icon):
778         * plugins/rb-plugins-engine.h:
779         * plugins/rb-python-module.c: (rb_python_module_init_python),
780         (rb_python_module_load), (rb_python_module_unload),
781         (rb_python_module_class_init), (rb_python_module_new),
782         (finalise_collect_cb), (rb_python_shutdown):
783         * plugins/rb-python-module.h:
784         * plugins/rb-python-plugin.c: (call_python_method),
785         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
786         (impl_is_configurable), (rb_python_object_get_type):
787         * plugins/rb-python-plugin.h:
788         * plugins/rb/Makefile.am:
790         Use TRUE/FALSE in schemas to make it easier to read.  Remove
791         spurious whitespace.  Don't use libgnome explicitly.  Replace the
792         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
793         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
794         special case loading of dirs.  Install plugins to subdirectors of
795         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
796         not DATADIR.  Fixes #350352
798 2006-08-10  James Livingston  <doclivingston@gmail.com>
800         * daapsharing/rb-daap-connection.c: (connection_connected),
801         (connection_disconnected), (connection_operation_done):
802         * daapsharing/rb-daap-share.c: (name_collision_cb):
803         * plugins/generic-player/rb-generic-player-source.c:
804         (rb_generic_player_source_load_playlists):
805         * podcast/rb-podcast-manager.c:
806         (rb_podcast_manager_download_entry),
807         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
808         (end_job), (rb_podcast_manager_event_loop):
809         * rhythmdb/rhythmdb-property-model.c:
810         (rhythmdb_property_model_perform_sync):
811         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
812         (rhythmdb_query_model_process_update), (idle_process_update),
813         (rhythmdb_query_model_reapply_query_cb):
814         * shell/rb-play-order.c: (sync_playing_entry_cb):
815         * shell/rb-removable-media-manager.c:
816         (rb_removable_media_manager_load_media):
817         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
818         (rb_shell_clipboard_sync),
819         (rb_shell_clipboard_entryview_changed_cb),
820         (rb_shell_clipboard_entries_changed_cb),
821         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
822         (rebuild_playlist_menu_idle),
823         (rb_shell_clipboard_playlist_added_cb):
824         * shell/rb-shell-player.c: (notify_playing_idle),
825         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
826         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
827         (rb_shell_quit):
828         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
829         * sources/rb-library-source.c: (add_child_sources_idle):
830         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
831         (burn_cd_idle):
832         * sources/rb-source.c: (update_visibility_idle):
833         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
834         (cb_button_press):
835         * widgets/rb-druid.c: (idle_set_sensitive):
836         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
837         take the GDK lock when we should be, from #348588
839 2006-08-09  James Livingston  <doclivingston@gmail.com>
841         * rhythmdb/rhythmdb-property-model.c:
842         (rhythmdb_property_model_get_path),
843         (rhythmdb_property_model_get_value),
844         (rhythmdb_property_model_iter_next): don't attempt to verify the
845         iterator if it's the All value, since it isn't valid. Fixes a
846         potential crasher.
848 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
850         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
851         (rb_podcast_manager_download_file_info_cb),
852         (rb_podcast_manager_abort_download), (download_info_free),
853         (download_info_new):
854         Use gnome_vfs_async_get_file_info to figure out the local filename for
855         a podcast episode, so we get the filename from the target of any
856         redirects, rather than the source.  When creating the GnomeVFSURI, hide
857         the query string, then append it later, to stop gnome-vfs from
858         converting 'http://' to 'http:/'.  If the local filename ends with the
859         query string, remove it.  Fixes #330766 and #321991.
861 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
863         * sources/rb-library-source.c: (impl_want_uri):
864         * sources/rb-static-playlist-source.c: (impl_want_uri):
865         Treat sftp:// URIs as likely indicators of songness.
867 2006-08-07  James Livingston  <doclivingston@gmail.com>
869         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
870         remote tracks with GStreamer 0.10, and remember their visibility like
871         local ones.
873 2006-08-07  James Livingston  <doclivingston@gmail.com>
875         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
876         apparently it's a borrowed reference. Should fix #347072.
878 2006-08-06  James Livingston  <doclivingston@gmail.com>
880         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
881         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
882         (rb_shuffle_play_order_get_previous),
883         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
884         (remove_from_history), (add_randomly_to_history),
885         (rb_shuffle_sync_history_with_query_model),
886         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
887         (query_model_and_history_contents_match): remove the tentatative
888         history stuff, which is from older code, like we did for -random a few
889         weeks ago.
891 2006-08-06  James Livingston  <doclivingston@gmail.com>
893         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
894         (rb_queue_play_order_get_previous):
895         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
896         (rb_random_play_order_go_next),
897         (rb_random_play_order_get_previous), (rb_random_db_changed):
898         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
899         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
900         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
901         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
902         (rb_shuffle_entry_removed),
903         (query_model_and_history_contents_match):
904         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
905         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
906         (default_has_next), (default_has_previous),
907         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
908         various play orders, after reviewing the code. Should fix #349601.
910 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
912         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
913         Pass the items_per_notification parameter to
914         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
915         with some versions of python.
917 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
919         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
920         Don't try to draw the icon if the drawable area is too small.
921         Fixes #349838.
923 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
925         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
927         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
929 2006-08-05  James Livingston  <doclivingston@gmail.com>
931         * configure.ac: tell libtool not to check for C++/fortran/ etc
932         compilers
934         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
935         watch, to fix some gconf warnings.
937 2006-08-04  James Livingston  <doclivingston@gmail.com>
939         patch by: William Jon McCann  <mccann@jhu.edu>
941         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
943 2006-08-04  James Livingston  <doclivingston@gmail.com>
945         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
946         actually fix #349722 this time
948 2006-08-04  James Livingston  <doclivingston@gmail.com>
950         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
951         to seach for local art from http:// URIs, or those gnome-vfs doesn't
952         know about. Fixes #348571.
954 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
956         various fixes for valgrind complaints:
957         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
958         (init_rb_tree_dnd_data):
959           free the associated target list, too
960         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
961           initialize allocation.{x,y,width,height} correctly
962         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
963         (rb_entry_view_constructor):
964           free strings when no longer needed
966 2006-08-03  James Livingston  <doclivingston@gmail.com>
968         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
969         real GtkTreeModel not the filter. Fixes #349722
971 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
973         * backends/gstreamer/rb-player-gst.c:
974         Only use DAAP seek hacks for GStreamer 0.8 builds.
976         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
977         (rb_daap_src_open):
978         * daapsharing/rb-daap-src.h:
979         Implement normal GStreamer seeking for GStreamer 0.10 builds.
981         * sources/rb-daap-source.c: (rb_daap_source_class_init),
982         (rb_daap_source_get_headers):
983         * sources/rb-daap-source.h:
984         Reimplement rb_daap_source_get_headers for the case where we've
985         already got the byte offset.  Add a small hack to
986         rb_daap_source_class_init to prevent the linker from dropping
987         rb-daap-src.o entirely.
989         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
991 2006-08-02  James Livingston  <doclivingston@gmail.com>
993         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
994         (handle_song_listing), (handle_playlist_entries),
995         (rb_daap_connection_dispose):
996         * sources/rb-daap-source.c: (_add_location_to_playlist),
997         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
998         for playlist URIs, not pointless duplicate strings. From #347425.
1000 2006-08-02  James Livingston  <doclivingston@gmail.com>
1002         * data/rhythmbox.schemas:
1003         * lib/rb-preferences.h:
1004         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
1005         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
1006         (plugin_manager_set_active), (plugin_manager_toggle_active),
1007         (plugin_manager_get_selected_plugin), (name_search_cb),
1008         (plugin_manager_construct_tree), (rb_plugin_manager_new),
1009         (rb_plugin_manager_finalize):
1010         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
1011         (rb_plugins_engine_load_all), (rb_plugin_info_free),
1012         (rb_plugins_engine_plugin_is_visible),
1013         (rb_plugins_engine_plugin_visible_cb):
1014         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
1015         per-user plugins, and 2) hide plugins from the manager UI. From #349395
1017 2006-08-02  James Livingston  <doclivingston@gmail.com>
1019         * sources/rb-sourcelist-model.c:
1020         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
1021         drop on a source. Fixes #349580.
1023 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1025         * configure.ac:
1026         * daapsharing/rb-daap-dialog.c:
1027         * daapsharing/rb-daap-dialog.h:
1028         * shell/Makefile.am:
1029         * sources/Makefile.am:
1030         * sources/rb-daap-source.c: (connection_auth_cb),
1031         (rb_daap_source_connection_cb), (rb_daap_source_activate):
1032         Add gnome-keyring support for DAAP passwords and use
1033         gnome-password-dialog instead of our own.  
1034         Patch mostly by James Livingston.  Fixes bug #330346.
1036 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1038         * shell/rb-shell-player.c:
1039         (rb_shell_player_set_playing_source_internal),
1040         (rb_shell_player_sync_with_selected_source):
1041         Remove call to rb_source_have_url, as we never did anything with the
1042         result.
1044         * sources/rb-browser-source.c: (rb_browser_source_class_init):
1045         * sources/rb-import-errors-source.c:
1046         (rb_import_errors_source_class_init):
1047         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1048         (impl_song_properties), (impl_want_uri), (impl_add_uri):
1049         * sources/rb-library-source.c: (rb_library_source_class_init),
1050         (impl_want_uri), (impl_add_uri):
1051         * sources/rb-missing-files-source.c:
1052         (rb_missing_files_source_class_init):
1053         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
1054         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1055         (impl_want_uri), (impl_add_uri):
1056         * sources/rb-source.c: (rb_source_class_init),
1057         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
1058         * sources/rb-source.h:
1059         * sources/rb-static-playlist-source.c:
1060         (rb_static_playlist_source_class_init), (search_action_changed),
1061         (impl_want_uri):
1062         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
1063         When adding a URI, want_uri gets called for each source; the one that
1064         wants it most gets the URI passed to its add_uri method.
1065         
1066         * shell/rb-shell.h:
1067         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
1068         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
1069         (handle_playlist_entry_cb), (rb_shell_load_uri):
1070         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
1071         Use want_uri and add_uri to simplify and make generic
1072         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
1074         If a source that returns TRUE from try_playlist wants all the URIs in
1075         the playlist, give it the playlist URI instead.  This retains the
1076         existing behaviour for adding iradio playlists.
1078         * bindings/python/rb.defs: Update for above changes.
1080         From bug #347097.
1082 2006-07-31  James Livingston  <doclivingston@gmail.com>
1084         * data/Makefile.am:
1085         * data/generate-keys.sh: fix the build I broke with the last commit.
1086         Oops.
1088 2006-07-31  James Livingston  <doclivingston@gmail.com>
1090         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
1091         in a long time. Fixes #349179.
1093 2006-07-30  James Livingston  <doclivingston@gmail.com>
1095         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
1096         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1097         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
1099 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1101         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1102         Don't tell the browser the query is still pending when doing a subset
1103         search.  Fixes #348617 again.
1105 2006-07-30  James Livingston  <doclivingston@gmail.com>
1107         * bindings/python/rb.override: remove an extraneous _wrap_ from the
1108         override definition. Fixes #348893.
1110 2006-07-30  James Livingston  <doclivingston@gmail.com>
1112         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
1113         rb_error_dialog, as it's above this in the stack.
1115         * lib/rb-util.c: (rb_gvalue_compare):
1116         * lib/rb-util.h: change the return type to int, as we're returning
1117         -1/0/1
1119         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
1120         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1121         (rb_query_creator_set_sorting): minor leak fixes
1123 2006-07-28  James Livingston  <doclivingston@gmail.com>
1125         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1126         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
1127         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
1128         (get_or_create_genre), (remove_entry_from_album),
1129         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1130         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
1131         (rhythmdb_tree_entry_lookup_by_location),
1132         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1133         (rhythmdb_hash_tree_foreach),
1134         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
1135         threadsafe. Fix a nasty problem if the _foreach callback function
1136         caused the addition/removal of entries.
1138 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1140         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
1141         Clear selection before changing our idea of the model.  Fixes crashes
1142         on model changes while playing.
1144 2006-07-27  James Livingston  <doclivingston@gmail.com>
1146         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
1147         a missing rb_refstring_unref.
1149         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1150         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
1151         oops. should hopefully fix the crash reported on #347425.
1153 2006-07-27  James Livingston  <doclivingston@gmail.com>
1155         * backends/gstreamer/rb-encoder-gst.c:
1156         (get_profile_from_mime_type): fix encoding error issue, from #310774.
1158         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
1159         thread-safety issue.
1161 2006-07-27  James Livingston  <doclivingston@gmail.com>
1163         * rhythmdb/rb-refstring.c: (rb_refstring_find):
1164         * rhythmdb/rb-refstring.h: add a new function which returns the
1165         RBRefString that matches a string, but never creates a new one.
1167         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
1168         (monitor_entry_file), (rhythmdb_check_changed_file),
1169         (rhythmdb_directory_change_cb):
1170         * rhythmdb/rhythmdb-private.h:
1171         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1172         (unparent_entries), (free_unknown_entries),
1173         (rhythmdb_tree_parser_start_element),
1174         (rhythmdb_tree_parser_end_element), (save_entry),
1175         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
1176         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1177         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
1178         (rhythmdb_tree_entry_type_registered):
1179         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
1180         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
1181         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
1182         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1183         (rhythmdb_process_metadata_load),
1184         (rhythmdb_process_file_created_or_modified),
1185         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
1186         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
1187         (action_thread_main), (rhythmdb_entry_set_internal),
1188         (rhythmdb_entry_move_to_trash_set_error),
1189         (rhythmdb_entry_move_to_trash),
1190         (rhythmdb_entry_lookup_by_location),
1191         (rhythmdb_entry_lookup_by_location_refstring),
1192         (default_sync_metadata), (rhythmdb_entry_get_string),
1193         (rhythmdb_entry_get_refstring):
1194         * rhythmdb/rhythmdb.h:
1195         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
1196         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1197         (rb_playlist_source_row_deleted),
1198         (rb_playlist_source_entry_added_cb),
1199         (rb_playlist_source_location_in_map),
1200         (rb_playlist_source_add_to_map): Make the LOCATION field of
1201         RhythmDBEntry be a RBRefString instead, which reduces some of the
1202         memory-fragmentation on startup and saves RBStaticPlaylistSource
1203         duplicating all the strings.
1205 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1207         * rhythmdb/rhythmdb-query-model.c:
1208         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
1209         * rhythmdb/rhythmdb-query-model.h:
1210         Add function to copy contents from one query model to another,
1211         filtered by the destination model's query.
1213         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1214         Use the above to create a new query model for subset searches, rather
1215         than filtering the existing model. Fixes #348617.
1217 2006-07-25  James Livingston  <doclivingston@gmail.com>
1219         * rhythmdb/rhythmdb-query-model.c:
1220         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
1221         lost from static playlists. Yet again. Fixes #323095.
1223         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
1224         case for the above, so that we should know if a change will break it
1225         again.
1227 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1229         * data/rhythmbox.schemas: Fix for last commit.
1231         * podcast/rb-podcast-manager.c:
1232         (rb_podcast_manager_download_entry),
1233         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
1234         (rb_podcast_manager_db_entry_deleted_cb):
1235         * rhythmdb/rhythmdb-property-model.c:
1236         (rhythmdb_property_model_set_query_model_internal),
1237         (rhythmdb_property_model_set_property),
1238         (rhythmdb_property_model_finalize),
1239         (rhythmdb_property_model_drag_data_get):
1240         * rhythmdb/rhythmdb-query-model.c:
1241         (rhythmdb_query_model_set_query_internal),
1242         (rhythmdb_query_model_set_property),
1243         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
1244         * rhythmdb/rhythmdb-query-model.h:
1245         * sources/rb-browser-source.c: (rb_browser_source_dispose),
1246         (rb_browser_source_do_query):
1247         * sources/rb-import-errors-source.c:
1248         (rb_import_errors_source_constructor):
1249         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1250         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
1251         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
1252         (impl_search), (impl_get_status),
1253         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
1254         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
1255         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
1256         * sources/rb-missing-files-source.c:
1257         (rb_missing_files_source_constructor),
1258         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
1259         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
1260         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1261         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
1262         (rb_playlist_source_save_playlist),
1263         (rb_playlist_source_new_from_xml),
1264         (rb_playlist_source_save_to_xml),
1265         (rb_playlist_source_setup_entry_view),
1266         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
1267         (rb_playlist_source_get_query_model),
1268         (rb_playlist_source_mark_dirty),
1269         (rb_playlist_source_location_in_map),
1270         (rb_playlist_source_add_to_map):
1271         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
1272         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
1273         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
1274         (impl_delete), (rb_podcast_source_state_prefs_sync),
1275         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
1276         (impl_get_config_widget), (rb_podcast_source_add_feed),
1277         (rb_podcast_source_cmd_download_post),
1278         (rb_podcast_source_cmd_cancel_download),
1279         (rb_podcast_source_cmd_delete_feed),
1280         (rb_podcast_source_cmd_update_feed),
1281         (rb_podcast_source_cmd_update_all),
1282         (rb_podcast_source_cb_interval_changed_cb),
1283         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
1284         (rb_podcast_source_entry_activated_cb):
1285         * sources/rb-source.c: (rb_source_finalize),
1286         (rb_source_set_query_model_internal), (rb_source_set_property),
1287         (default_get_status):
1288         * sources/rb-static-playlist-source.c:
1289         (rb_static_playlist_source_dispose),
1290         (rb_static_playlist_source_finalize),
1291         (rb_static_playlist_source_constructor),
1292         (rb_static_playlist_source_do_query):
1293         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
1294         (rb_entry_view_set_shell_player_internal),
1295         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
1296         (rb_entry_view_set_model), (rb_entry_view_append_column),
1297         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
1298         (rb_entry_view_set_state):
1299         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
1300         (rb_library_browser_finalize), (rb_library_browser_new),
1301         (update_browser_property_visibilty), (view_selection_reset_cb),
1302         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
1303         (restore_selection), (rebuild_child_model),
1304         (rb_library_browser_set_selection), (rb_library_browser_set_model):
1305         * widgets/rb-property-view.c:
1306         (rb_property_view_set_model_internal),
1307         (rb_property_view_set_selection_mode), (rb_property_view_reset),
1308         (rb_property_view_get_model), (rb_property_view_set_model),
1309         (rb_property_view_get_num_properties),
1310         (rb_property_view_set_selection),
1311         (rb_property_view_append_column_custom),
1312         (rb_property_view_set_search_func):
1313         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
1314         From #347446
1316 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1318         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
1319         Work around a small n-c-b API change.
1321 2006-07-25  James Livingston  <doclivingston@gmail.com>
1323         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
1325         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
1326         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
1327         aborting entry-emission on finalise
1329 2006-07-25  James Livingston  <doclivingston@gmail.com>
1331         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
1332         warning when entry is NULL.
1334 2006-07-25  James Livingston  <doclivingston@gmail.com>
1336         * help/sv/.cvsignore:
1337         * lib/.cvsignore:
1338         * plugins/generic-player/.cvsignore:
1339         * remote/.cvsignore:
1340         * remote/dbus/.cvsignore:
1341         * shell/.cvsignore:
1342         * tests/.cvsignore: more .cvsignore updates
1344 2006-07-24  James Livingston  <doclivingston@gmail.com>
1346         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
1347         (transparent_expose_event), (make_transparent_again),
1348         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
1349         apply a patch for EggTrayIcon so that it handled transparent panels
1350         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
1351         Fixes #348208.
1353 2006-07-24  James Livingston  <doclivingston@gmail.com>
1355         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
1356         queries rather than taking ownership when parsing a subquery. Fixed a
1357         crash exposed by the recent leak fixes.
1359         * doc/reference/tmpl/disclosure-widget.sgml:
1360         * doc/reference/tmpl/rb-debug.sgml:
1361         * doc/reference/tmpl/rb-metadata.sgml:
1362         * doc/reference/tmpl/rb-play-order.sgml:
1363         * doc/reference/tmpl/rb-playlist-manager.sgml:
1364         * doc/reference/tmpl/rb-playlist-source.sgml:
1365         * doc/reference/tmpl/rb-shell-player.sgml:
1366         * doc/reference/tmpl/rb-shell.sgml:
1367         * doc/reference/tmpl/rb-song-display-box.sgml:
1368         * doc/reference/tmpl/rhythmbox-unused.sgml:
1369         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
1371 2006-07-24  James Livingston  <doclivingston@gmail.com>
1373         * lib/.cvsignore:
1374         * plugins/artdisplay/.cvsignore:
1375         * plugins/artdisplay/artdisplay/.cvsignore:
1376         * plugins/lyrics/.cvsignore:
1377         * plugins/pythonconsole/.cvsignore:
1378         * plugins/rb/.cvsignore: add/update various .cvsignore files
1380 2006-07-24  James Livingston  <doclivingston@gmail.com>
1382         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1383         (rb_refstring_ref): don't emit critical warnings when the refstring
1384         is NULL, as that happens often for podcast metadata.
1386         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
1387         missing rhythmdb_entry_ref call
1389 2006-07-23  William Jon McCann  <mccann@jhu.edu>
1391         * bindings/python/rb.override:
1392         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
1393         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1394         (playlist_row_inserted_cb):
1395         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
1396         * plugins/rb-plugin-manager.c:
1397         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
1398         (rb_podcast_manager_copy_post),
1399         (rb_podcast_manager_db_entry_deleted_cb),
1400         (rb_podcast_manager_insert_feed):
1401         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1402         (rb_refstring_ref), (rb_refstring_get_sort_key):
1403         * rhythmdb/rhythmdb-private.h:
1404         * rhythmdb/rhythmdb-property-model.c:
1405         (rhythmdb_property_model_set_property),
1406         (rhythmdb_property_model_get_property),
1407         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
1408         (rhythmdb_property_model_row_inserted_cb),
1409         (rhythmdb_property_model_prop_changed_cb),
1410         (rhythmdb_property_model_compare),
1411         (rhythmdb_property_model_insert),
1412         (rhythmdb_property_model_iter_from_string),
1413         (rhythmdb_property_model_get_column_type),
1414         (rhythmdb_property_model_get_iter),
1415         (rhythmdb_property_model_get_value),
1416         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
1417         (rhythmdb_property_model_enable_drag):
1418         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
1419         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
1420         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
1421         (rhythmdb_query_model_chain),
1422         (rhythmdb_query_model_entry_added_cb),
1423         (rhythmdb_query_model_entry_changed_cb),
1424         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
1425         (rhythmdb_query_model_add_entry),
1426         (rhythmdb_query_model_insert_into_main_list),
1427         (rhythmdb_query_model_insert_into_limited_list),
1428         (rhythmdb_query_model_remove_from_main_list),
1429         (rhythmdb_query_model_remove_from_limited_list),
1430         (rhythmdb_query_model_update_limited_entries),
1431         (rhythmdb_query_model_emit_reorder),
1432         (rhythmdb_query_model_do_reorder),
1433         (rhythmdb_query_model_do_insert),
1434         (rhythmdb_query_model_move_entry),
1435         (rhythmdb_query_model_remove_entry),
1436         (rhythmdb_query_model_entry_to_iter),
1437         (rhythmdb_query_model_iter_to_entry),
1438         (rhythmdb_query_model_get_previous_from_entry),
1439         (rhythmdb_query_model_row_draggable),
1440         (rhythmdb_query_model_drag_data_delete),
1441         (rhythmdb_query_model_drag_data_get),
1442         (rhythmdb_query_model_drag_data_received),
1443         (rhythmdb_query_model_row_drop_possible),
1444         (rhythmdb_query_model_row_drop_position),
1445         (rhythmdb_query_model_add_results),
1446         (rhythmdb_query_model_query_complete),
1447         (rhythmdb_query_model_get_column_type),
1448         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
1449         (rhythmdb_query_model_iter_nth_child),
1450         (apply_updated_entry_sequence),
1451         (rhythmdb_query_model_child_index_to_base_index),
1452         (rhythmdb_query_model_get_entry_index),
1453         (rhythmdb_query_model_base_row_inserted),
1454         (rhythmdb_query_model_base_row_deleted),
1455         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
1456         (rhythmdb_query_model_location_sort_func),
1457         (rhythmdb_query_model_title_sort_func),
1458         (rhythmdb_query_model_album_sort_func),
1459         (rhythmdb_query_model_artist_sort_func),
1460         (rhythmdb_query_model_track_sort_func),
1461         (rhythmdb_query_model_double_ceiling_sort_func),
1462         (rhythmdb_query_model_ulong_sort_func),
1463         (rhythmdb_query_model_date_sort_func),
1464         (rhythmdb_query_model_string_sort_func),
1465         (rhythmdb_query_model_within_limit):
1466         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
1467         (rhythmdb_tree_parser_start_element),
1468         (rhythmdb_tree_parser_end_element),
1469         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
1470         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
1471         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
1472         (save_entry_uint64), (save_entry_double), (save_entry),
1473         (set_entry_album), (rhythmdb_tree_entry_new),
1474         (get_genres_hash_for_type), (get_or_create_genre),
1475         (get_or_create_artist), (get_or_create_album), (remove_child),
1476         (remove_entry_from_album), (rhythmdb_tree_entry_set),
1477         (rhythmdb_tree_entry_delete), (remove_one_song),
1478         (rhythmdb_tree_entry_delete_by_type),
1479         (rhythmdb_tree_evaluate_query), (search_match_properties),
1480         (evaluate_conjunctive_subquery), (do_conjunction),
1481         (conjunctive_query_songs), (clone_remove_ptr_array_index),
1482         (conjunctive_query_albums), (conjunctive_query_artists),
1483         (conjunctive_query_genre), (conjunctive_query),
1484         (split_query_by_disjunctions), (do_query_recurse),
1485         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
1486         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1487         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
1488         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
1489         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
1490         (extract_gtype_from_enum_entry),
1491         (extract_nice_name_from_enum_entry), (rhythmdb_init),
1492         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
1493         (rhythmdb_event_free), (rhythmdb_finalize),
1494         (rhythmdb_set_property), (rhythmdb_get_property),
1495         (rhythmdb_thread_create), (free_entry_changes),
1496         (emit_entry_changed), (sync_entry_changed),
1497         (process_added_entries_cb), (process_deleted_entries_cb),
1498         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
1499         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
1500         (rhythmdb_entry_insert), (rhythmdb_entry_new),
1501         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
1502         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
1503         (rhythmdb_entry_is_editable), (set_props_from_metadata),
1504         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1505         (rhythmdb_process_metadata_load),
1506         (rhythmdb_process_file_created_or_modified),
1507         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
1508         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
1509         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
1510         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
1511         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
1512         (record_entry_change), (rhythmdb_entry_set_internal),
1513         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
1514         (rhythmdb_entry_move_to_trash_cb),
1515         (rhythmdb_entry_move_to_trash_set_error),
1516         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
1517         (rhythmdb_nice_elt_name_from_propid),
1518         (rhythmdb_propid_from_nice_elt_name),
1519         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
1520         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
1521         (rhythmdb_compute_status_normal), (default_sync_metadata),
1522         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
1523         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
1524         (podcast_get_playback_uri), (podcast_data_destroy),
1525         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
1526         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
1527         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
1528         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
1529         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
1530         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
1531         * rhythmdb/rhythmdb.h:
1532         * shell/rb-play-order-linear-loop.c:
1533         (rb_linear_play_order_loop_get_next),
1534         (rb_linear_play_order_loop_get_previous):
1535         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
1536         (rb_linear_play_order_get_previous):
1537         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
1538         * shell/rb-play-order-random.c: (get_query_model_contents):
1539         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
1540         (get_query_model_contents):
1541         * shell/rb-play-order.c: (rb_play_order_constructor),
1542         (rb_play_order_finalize),
1543         (rb_play_order_set_playing_entry_internal),
1544         (rb_play_order_set_property), (rb_play_order_new),
1545         (rb_play_order_get_player), (rb_play_order_get_source),
1546         (rb_play_order_get_db), (rb_play_order_get_query_model),
1547         (rb_play_order_player_is_playing),
1548         (rb_play_order_set_playing_entry),
1549         (rb_play_order_get_playing_entry),
1550         (rb_play_order_playing_source_changed),
1551         (rb_play_order_query_model_changed),
1552         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1553         (default_has_next), (default_has_previous),
1554         (sync_playing_entry_cb), (default_playing_entry_removed),
1555         (rb_play_order_has_next), (rb_play_order_get_next),
1556         (rb_play_order_go_next), (rb_play_order_has_previous),
1557         (rb_play_order_get_previous), (rb_play_order_go_previous),
1558         (rb_play_order_model_not_empty),
1559         (rb_play_order_update_have_next_previous):
1560         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
1561         (rb_playlist_manager_save_playlists),
1562         (rb_playlist_manager_set_automatic_playlist),
1563         (rb_playlist_manager_cmd_edit_automatic_playlist),
1564         (_queue_track_cb), (rb_playlist_manager_get_playlists),
1565         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
1566         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
1567         * shell/rb-shell-player.c: (rb_shell_player_constructor),
1568         (volume_pre_unmount_cb), (reemit_playing_signal),
1569         (notify_playing_idle), (rb_shell_player_open_playlist_url),
1570         (rb_shell_player_handle_eos_unlocked),
1571         (rb_shell_player_handle_eos), (rb_shell_player_init),
1572         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
1573         (playlist_entry_cb), (rb_shell_player_open_entry),
1574         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
1575         (rb_shell_player_set_play_order),
1576         (rb_shell_player_set_playback_state),
1577         (rb_shell_player_sync_play_order),
1578         (rb_shell_player_play_order_update_cb),
1579         (rb_shell_player_jump_to_current), (swap_playing_source),
1580         (rb_shell_player_do_previous), (rb_shell_player_do_next),
1581         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
1582         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
1583         (rb_shell_player_entry_activated_cb),
1584         (rb_shell_player_property_row_activated_cb),
1585         (rb_shell_player_entry_changed_cb),
1586         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
1587         (rb_shell_player_pause),
1588         (rb_shell_player_get_playing_song_duration),
1589         (rb_shell_player_error), (error_cb), (tick_cb),
1590         (info_available_cb), (buffering_cb),
1591         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
1592         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
1593         (rb_shell_jump_to_current):
1594         * sources/rb-auto-playlist-source.c:
1595         (rb_auto_playlist_source_finalize), (impl_receive_drag),
1596         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
1597         (rb_auto_playlist_source_get_query):
1598         * sources/rb-auto-playlist-source.h:
1599         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1600         * sources/rb-import-errors-source.c:
1601         (rb_import_errors_source_constructor):
1602         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
1603         * sources/rb-library-source.c: (filepath_parse_pattern):
1604         * sources/rb-missing-files-source.c:
1605         (rb_missing_files_source_constructor):
1606         * sources/rb-play-queue-source.c:
1607         (rb_play_queue_source_clear_queue),
1608         (rb_play_queue_source_track_info_cell_data_func):
1609         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
1610         (rb_playlist_source_get_property), (playlist_iter_func),
1611         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
1612         (rb_playlist_source_track_cell_data_func):
1613         * sources/rb-podcast-source.c: (construct_query_from_selection),
1614         (rb_podcast_source_post_status_cell_data_func),
1615         (rb_podcast_source_post_feed_cell_data_func),
1616         (rb_podcast_source_feed_title_search_func),
1617         (rb_podcast_source_post_date_cell_data_func):
1618         * sources/rb-source.c: (default_get_status),
1619         (rb_source_get_status), (rb_source_browser_toggled),
1620         (rb_source_update_play_statistics), (rb_source_search),
1621         (rb_source_get_config_widget), (default_add_to_queue),
1622         (rb_source_add_to_queue), (rb_source_receive_drag),
1623         (rb_source_gather_hash_keys):
1624         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
1625         (rb_sourcelist_model_is_row_visible),
1626         (rb_sourcelist_model_row_is_separator),
1627         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
1628         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
1629         (rb_sourcelist_model_drag_data_get):
1630         * sources/rb-sourcelist.c: (rb_sourcelist_append),
1631         (match_source_to_iter), (rb_sourcelist_source_to_iter),
1632         (rb_sourcelist_visible_source_to_iter),
1633         (rb_sourcelist_edit_source_name), (set_source_playing),
1634         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
1635         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
1636         (drop_received_cb), (row_activated_cb), (emit_show_popup),
1637         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
1638         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
1639         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
1640         (rb_static_playlist_source_add_location_internal),
1641         (rb_static_playlist_source_row_inserted):
1642         * widgets/rb-entry-view.c: (type_ahead_search_func),
1643         (rb_entry_view_finalize), (rb_entry_view_set_model),
1644         (rb_entry_view_playing_cell_data_func),
1645         (rb_entry_view_rating_cell_data_func),
1646         (rb_entry_view_long_cell_data_func),
1647         (rb_entry_view_play_count_cell_data_func),
1648         (rb_entry_view_duration_cell_data_func),
1649         (rb_entry_view_year_cell_data_func),
1650         (rb_entry_view_quality_cell_data_func),
1651         (rb_entry_view_location_cell_data_func),
1652         (rb_entry_view_string_cell_data_func),
1653         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
1654         (rb_entry_view_get_sorting_order),
1655         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
1656         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
1657         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
1658         (rb_entry_view_playing_song_changed), (harvest_entries),
1659         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
1660         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
1661         (set_column_visibility):
1662         * widgets/rb-entry-view.h:
1663         * widgets/rb-header.c: (rb_header_new),
1664         (rb_header_set_playing_entry), (rb_header_set_title):
1665         * widgets/rb-library-browser.c: (rebuild_child_model),
1666         (rb_library_browser_set_model):
1667         * widgets/rb-property-view.c:
1668         (rb_property_view_set_model_internal), (rb_property_view_finalize),
1669         (rb_property_view_set_property), (rb_property_view_get_property),
1670         (rb_property_view_reset), (rb_property_view_get_model),
1671         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
1672         (rb_property_view_button_press_cb):
1673         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1674         (rb_query_creator_get_property), (rb_query_creator_load_query),
1675         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
1676         (rb_query_creator_get_query), (rb_query_creator_get_limit),
1677         (rb_query_creator_get_sort_order), (limit_toggled_cb),
1678         (lookup_row_by_widget), (remove_button_click_cb),
1679         (add_button_click_cb), (create_property_option_menu):
1680         * widgets/rb-song-info.c: (rb_song_info_constructor),
1681         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
1682         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
1683         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
1684         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
1686 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1688         * shell/rb-shell-player.c: (rb_shell_player_class_init),
1689         (rb_shell_player_get_property):
1690         Add a property providing access to the player backend object.
1692 2006-07-23  James Livingston  <doclivingston@gmail.com>
1694         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
1695         (get_history), (rb_random_filter_history),
1696         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
1697         remove the tentative history, since it appears to be a remanent from
1698         older play order code. The only thing it was doing was using up
1699         CPU-time and memory. From #345857
1701 2006-07-23  James Livingston  <doclivingston@gmail.com>
1703         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
1705         * shell/main.c: (main):
1706         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
1707         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
1708         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
1709         (rb_playlist_manager_load_playlists),
1710         (rb_playlist_manager_save_data):
1711         * shell/rb-playlist-manager.h:
1712         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
1713         (rb_shell_get_property), (rb_shell_sync_state),
1714         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
1715         (construct_sources), (idle_handle_load_complete):
1716         * shell/rb-shell.h: Add a command-line option for changing the
1717         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
1719 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1721         * daapsharing/rb-daap-share.c: (databases_cb):
1722         Make sure we set status codes on HTTP responses.
1724 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1726         * configure.ac:
1727         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1728         (chunked_message_finished), (send_chunked_file),
1729         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
1730         Use GMappedFile to send local files to DAAP clients where possible.  
1731         iTunes can't seek properly in files sent using chunked transfer 
1732         encoding.  Also remove the useless bitrate calculation code, as we
1733         never even used the result anyway.  From #330410.
1735 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1737         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
1739         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
1740         Enable multiple selection for 'import file'.  Fixes #347478.
1742 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
1744         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
1745         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
1746         deprecated dbus_connection_disconnect () with dbus_connection_close ().
1747         Fixes #348098.
1749 2006-07-20  James Livingston  <doclivingston@gmail.com>
1751         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
1752         aren't NULL before calling strstr. Fixes #347998.
1754 2006-07-19  James Livingston  <doclivingston@gmail.com>
1756         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
1758         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
1759         MB that only have years. Fixes #347906.
1761 2006-07-19  James Livingston  <doclivingston@gmail.com>
1763         * rhythmdb/rhythmdb-private.h:
1764         * rhythmdb/rhythmdb.c: (rhythmdb_init),
1765         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
1766         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
1767         (rhythmdb_finalize), (timeout_rhythmdb_commit),
1768         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
1769         (rhythmdb_execute_stat), (queue_stat_uri),
1770         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
1771         (rhythmdb_load), (rhythmdb_entry_register_type),
1772         (rhythmdb_entry_register_type_alias): Keep track of outstanding
1773         asynchronous vfs operations, and cancel them when shutting down the
1774         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
1776         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
1777         (test_rhythmdb_shutdown): wait until the db has been finalised before
1778         continuing on to the next test.
1780 2006-07-19  James Livingston  <doclivingston@gmail.com>
1782         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
1783         right thing in the #ifdef. From #347832.
1785 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1787         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1788         Fix compile warning.
1790 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1792         * rhythmdb/rhythmdb-query-model.c:
1793         (rhythmdb_query_model_set_property),
1794         (rhythmdb_query_model_reapply_query_cb):
1795         Ignore old query == new query case.
1796         Fixes auto playlists with time-relative queries.
1798         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
1799         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
1800         (rhythmdb_query_to_string):
1801         * rhythmdb/rhythmdb.h:
1802         Add debug helper for printing queries in case someone needs it again.
1804 2006-07-18  James Livingston  <doclivingston@gmail.com>
1806         patch by: Ståle Lyngaas  <staale@lyngaas.com>
1807         * sources/rb-audiocd-source.c: store the MB track ids in the database.
1808         Fixes #347832
1810         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
1811         write then into files.
1813 2006-07-17  William Jon McCann  <mccann@jhu.edu>
1815         * daapsharing/rb-daap-connection.c:
1816         (rb_daap_connection_set_property):
1817         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
1818         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
1819         (add_playlist_to_mlcl), (databases_cb):
1820         * daapsharing/rb-daap-sharing.c: (create_share):
1821         * iradio/rb-new-station-dialog.c:
1822         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
1823         * iradio/rb-station-properties-dialog.c:
1824         (rb_station_properties_dialog_finalize),
1825         (rb_station_properties_dialog_set_property),
1826         (rb_station_properties_dialog_get_current_entry):
1827         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
1828         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
1829         * plugins/generic-player/rb-generic-player-source.c:
1830         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
1831         (handle_playlist_entry_cb):
1832         * plugins/generic-player/rb-nokia770-source.c:
1833         (rb_nokia770_source_new), (hal_udi_is_nokia770):
1834         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
1835         (visit_playlist_dirs), (hal_udi_is_psp):
1836         * podcast/rb-podcast-manager.c:
1837         * podcast/rb-podcast-properties-dialog.c:
1838         (rb_podcast_properties_dialog_finalize),
1839         (rb_podcast_properties_dialog_set_entry_view),
1840         (rb_podcast_properties_dialog_set_property):
1841         * rhythmdb/rhythmdb-property-model.c:
1842         * rhythmdb/rhythmdb-query-model.c:
1843         (rhythmdb_query_model_set_property),
1844         (rhythmdb_query_model_reapply_query_cb):
1845         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
1846         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
1847         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1848         (rhythmdb_event_free), (rhythmdb_shutdown),
1849         (rhythmdb_thread_create), (action_thread_main),
1850         (rhythmdb_do_full_query_async_parsed),
1851         (rhythmdb_do_full_query_internal):
1852         * shell/main.c: (main):
1853         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
1854         * shell/rb-play-order.c: (rb_play_order_finalize),
1855         (rb_play_order_set_player),
1856         (rb_play_order_set_playing_entry_internal),
1857         (rb_play_order_set_property),
1858         (rb_play_order_playing_source_changed),
1859         (rb_play_order_query_model_changed):
1860         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
1861         (rb_playlist_manager_set_source),
1862         (rb_playlist_manager_set_shell_internal),
1863         (rb_playlist_manager_set_property):
1864         * shell/rb-removable-media-manager.c:
1865         (rb_removable_media_manager_set_property),
1866         (rb_removable_media_manager_set_uimanager),
1867         (rb_removable_media_manager_cmd_eject_medium),
1868         (rb_removable_media_manager_cmd_copy_tracks):
1869         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
1870         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
1871         (rb_shell_clipboard_set),
1872         (rb_shell_clipboard_cmd_add_to_playlist_new),
1873         (rb_shell_clipboard_playlist_add_cb),
1874         (rb_shell_clipboard_playlist_renamed_cb),
1875         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
1876         (rebuild_playlist_menu):
1877         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
1878         (rb_shell_player_set_queue_source_internal),
1879         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
1880         (rb_shell_player_entry_activated_cb),
1881         (rb_shell_player_property_row_activated_cb),
1882         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
1883         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
1884         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
1885         (rb_shell_finalize), (construct_widgets),
1886         (rb_shell_playing_from_queue_cb),
1887         (rb_shell_player_stream_song_changed_cb),
1888         (rb_shell_player_volume_changed_cb):
1889         * shell/rb-statusbar.c: (rb_statusbar_new):
1890         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
1891         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
1892         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
1893         * sources/rb-auto-playlist-source.c:
1894         (rb_auto_playlist_source_class_init),
1895         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
1896         (rb_auto_playlist_source_constructor), (impl_receive_drag),
1897         (rb_auto_playlist_source_do_query),
1898         (rb_auto_playlist_source_set_query),
1899         (rb_auto_playlist_source_browser_changed_cb),
1900         (search_action_changed):
1901         * sources/rb-auto-playlist-source.h:
1902         * sources/rb-browser-source.c: (rb_browser_source_finalize),
1903         (search_action_changed), (rb_browser_source_constructor),
1904         (rb_browser_source_cmd_choose_artist), (impl_delete),
1905         (rb_browser_source_browser_changed_cb),
1906         (rb_browser_source_do_query):
1907         * sources/rb-daap-source.c: (rb_daap_source_dispose),
1908         (rb_daap_source_finalize), (rb_daap_source_class_init),
1909         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
1910         (rb_daap_sources_init), (rb_daap_sources_shutdown),
1911         (rb_daap_source_connection_cb), (rb_daap_source_activate),
1912         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
1913         (rb_daap_source_get_headers):
1914         * sources/rb-import-errors-source.c:
1915         (rb_import_errors_source_constructor),
1916         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
1917         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
1918         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
1919         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
1920         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
1921         (impl_paste), (impl_receive_drag):
1922         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
1923         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
1924         (impl_song_properties):
1925         * sources/rb-library-source.c: (rb_library_source_constructor),
1926         (rb_library_source_new), (impl_paste),
1927         (rb_library_source_add_child_source):
1928         * sources/rb-missing-files-source.c: (impl_delete),
1929         (impl_get_status):
1930         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
1931         (rb_play_queue_source_class_init),
1932         (rb_play_queue_source_constructor):
1933         * sources/rb-playlist-source.c: (rb_playlist_source_init),
1934         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
1935         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
1936         (rb_playlist_source_new_from_xml),
1937         (rb_playlist_source_save_to_xml):
1938         * sources/rb-podcast-source.c: (rb_podcast_source_init),
1939         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
1940         (search_action_changed), (rb_podcast_source_constructor),
1941         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
1942         (construct_query_from_selection),
1943         (rb_podcast_source_cmd_download_post),
1944         (rb_podcast_source_cmd_cancel_download),
1945         (rb_podcast_source_cmd_delete_feed),
1946         (rb_podcast_source_start_download_cb),
1947         (rb_podcast_source_finish_download_cb),
1948         (rb_podcast_source_feed_updates_avaliable_cb),
1949         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
1950         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
1951         (impl_get_status):
1952         * sources/rb-removable-media-source.c: (impl_delete_thyself):
1953         * sources/rb-source.c: (rb_source_get_property),
1954         (default_add_to_queue), (default_move_to_trash),
1955         (_rb_source_show_popup), (rb_source_gather_selected_properties),
1956         (_rb_source_register_action_group):
1957         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
1958         (rb_sourcelist_model_is_row_visible),
1959         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
1960         (rb_sourcelist_model_row_draggable),
1961         (rb_sourcelist_model_drag_data_get):
1962         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
1963         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
1964         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
1965         (visibility_notify_cb):
1966         * sources/rb-static-playlist-source.c:
1967         (rb_static_playlist_source_class_init),
1968         (rb_static_playlist_source_init),
1969         (rb_static_playlist_source_finalize),
1970         (rb_static_playlist_source_constructor), (impl_delete),
1971         (rb_static_playlist_source_browser_changed_cb),
1972         (rb_static_playlist_source_add_location_internal),
1973         (search_action_changed):
1974         * sources/rb-static-playlist-source.h:
1975         * widgets/rb-druid.c:
1976         * widgets/rb-entry-view.c:
1977         (rb_entry_view_set_shell_player_internal),
1978         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
1979         (rb_entry_view_get_property), (rb_entry_view_new),
1980         (rb_entry_view_button_press_cb):
1981         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
1982         (rb_library_browser_set_property),
1983         (rb_library_browser_get_property):
1984         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
1985         (get_entry_for_property), (get_property_index_from_proptype):
1986         * widgets/rb-song-info.c: (rb_song_info_constructor),
1987         (rb_song_info_finalize), (rb_song_info_set_source_internal),
1988         (rb_song_info_set_property), (rb_song_info_get_property):
1990         More leak and reference counting fixes.  From bug #347446.
1992 2006-07-17  James Livingston  <doclivingston@gmail.com>
1994         * sources/rb-auto-playlist-source.c:
1995         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
1996         rather than setting the base model, as that lets us not import all the
1997         entries from the base model. This fixes some issues whether the search
1998         box wasn't filting automatic playlists.
2000 2006-07-17  James Livingston  <doclivingston@gmail.com>
2002         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
2003         error, which caused blacklist creation to fail.
2005 2006-07-17  James Livingston  <doclivingston@gmail.com>
2007         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
2008         running with -n, because we don't start it then. Fixes a crash on
2009         exit.
2011 2006-07-17  James Livingston  <doclivingston@gmail.com>
2013         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2015         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
2016         Save not Open for the button. Fixes #345816
2018 2006-07-17  James Livingston  <doclivingston@gmail.com>
2020         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2022         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
2023         when track transfer is disabled. Fixes #347705
2025 2006-07-17  James Livingston  <doclivingston@gmail.com>
2027         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2029         * sources/rb-library-source.c: (impl_get_config_widget): fix build
2030         with track transfer disabled. Fixes #347705
2032 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2034         * rhythmdb/rhythmdb-query-model.c:
2035         (rhythmdb_query_model_set_property):
2036         * shell/main.c: (main):
2037         * shell/rb-shell-clipboard.c: (unset_source_internal),
2038         (rb_shell_clipboard_finalize),
2039         (rb_shell_clipboard_set_source_internal),
2040         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
2041         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2042         (rb_shell_player_set_db_internal),
2043         (rb_shell_player_set_queue_source_internal),
2044         (rb_shell_player_finalize), (rb_shell_player_set_property):
2045         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
2046         * sources/rb-auto-playlist-source.c:
2047         (rb_auto_playlist_source_constructor),
2048         (rb_auto_playlist_source_new_from_xml):
2049         * sources/rb-daap-source.c: (create_pixbufs):
2050         * sources/rb-ipod-source.c:
2051         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
2052         * sources/rb-library-source.c:
2053         (rb_library_source_add_child_source):
2054         * sources/rb-play-queue-source.c:
2055         (rb_play_queue_sync_playing_state),
2056         (rb_play_queue_source_track_info_cell_data_func):
2057         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
2058         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2059         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2060         (impl_can_add_to_queue), (impl_add_to_queue):
2061         * sources/rb-source.c: (rb_source_set_property):
2062         * sources/rb-sourcelist.c: (rb_sourcelist_append):
2063         * sources/rb-static-playlist-source.c:
2064         (rb_static_playlist_source_constructor),
2065         (rb_static_playlist_source_load_from_xml):
2066         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
2067         * widgets/rb-entry-view.c: (rb_entry_view_init),
2068         (rb_entry_view_finalize), (rb_entry_view_append_column),
2069         (rb_entry_view_constructor):
2070         * widgets/rb-song-info.c: (rb_song_info_set_property):
2071         Fix leaks.  From bug #347446.
2073 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2075         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
2076         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
2077         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
2078         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
2079         (add_decoding_pipeline), (profile_bin_find_encoder),
2080         (get_profile_from_mime_type), (extract_track), (transcode_track),
2081         (rb_encoder_gst_encode):
2082         * backends/gstreamer/rb-encoder-gst.h:
2083         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
2084         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
2085         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
2086         (rb_player_gst_construct):
2087         * backends/gstreamer/rb-player-gst.h:
2088         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
2089         * backends/rb-encoder.h:
2090         * backends/rb-player.c: (_rb_player_emit_tick):
2091         * backends/rb-player.h:
2092         * daapsharing/rb-daap-connection.c: (build_message),
2093         (actual_http_response_handler), (http_response_handler),
2094         (http_get), (entry_set_string_prop), (emit_progress_idle),
2095         (handle_server_info), (handle_database_info),
2096         (handle_song_listing), (handle_playlists),
2097         (handle_playlist_entries), (rb_daap_connection_new),
2098         (connected_cb), (rb_daap_connection_do_something),
2099         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
2100         (rb_daap_connection_get_property):
2101         * daapsharing/rb-daap-connection.h:
2102         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
2103         (rb_daap_collision_dialog_new_run):
2104         * daapsharing/rb-daap-dialog.h:
2105         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
2106         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
2107         (DigestToString), (rb_daap_hash_generate):
2108         * daapsharing/rb-daap-hash.h:
2109         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
2110         (resolve_cb), (browse_cb):
2111         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
2112         (resolve_cb), (rb_daap_mdns_browser_resolve),
2113         (rb_daap_mdns_browser_start), (resolver_free):
2114         * daapsharing/rb-daap-mdns-browser.h:
2115         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
2116         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
2117         (publish_cb):
2118         * daapsharing/rb-daap-mdns-publisher.h:
2119         * daapsharing/rb-daap-share.c: (name_collision_cb),
2120         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
2121         (message_set_from_rb_daap_structure), (content_codes_cb),
2122         (session_id_validate), (logout_cb), (update_cb),
2123         (add_entry_to_mlcl), (add_playlist_to_mlcl),
2124         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
2125         (rb_daap_share_server_start), (rb_daap_share_server_stop),
2126         (rb_daap_share_publish_start):
2127         * daapsharing/rb-daap-share.h:
2128         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
2129         (share_password_changed_cb), (rb_daap_sharing_shutdown):
2130         * daapsharing/rb-daap-sharing.h:
2131         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
2132         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
2133         (rb_daap_src_open):
2134         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
2135         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
2136         (rb_daap_structure_parse_container_buffer),
2137         (rb_daap_structure_parse), (gnode_find_node),
2138         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
2139         (print_rb_daap_item):
2140         * daapsharing/rb-daap-structure.h:
2141         * iradio/rb-new-station-dialog.c:
2142         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
2143         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
2144         (rb_new_station_dialog_text_changed):
2145         * iradio/rb-station-properties-dialog.c:
2146         (rb_station_properties_dialog_init),
2147         (rb_station_properties_dialog_new),
2148         (rb_station_properties_dialog_response_cb),
2149         (rb_station_properties_dialog_get_current_entry),
2150         (rb_station_properties_dialog_rated_cb),
2151         (rb_station_properties_dialog_update_rating),
2152         (rb_station_properties_dialog_update_playback_error),
2153         (rb_station_properties_dialog_sync_entries):
2154         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
2155         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
2156         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
2157         (rb_metadata_can_save), (rb_metadata_save):
2158         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
2159         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
2160         (_handle_message), (_new_connection), (main):
2161         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
2162         (rb_metadata_dbus_read_from_message):
2163         * metadata/rb-metadata-dbus.h:
2164         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
2165         (rb_add_id3_tagger), (rb_metadata_init),
2166         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
2167         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
2168         (rb_metadata_gst_new_decoded_pad_cb),
2169         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
2170         * metadata/sj-error.c: (sj_error_quark):
2171         * metadata/sj-error.h:
2172         * metadata/sj-metadata-musicbrainz.c:
2173         (sj_metadata_musicbrainz_instance_init),
2174         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
2175         (get_rdf), (lookup_cd):
2176         * metadata/sj-metadata.c: (sj_metadata_get_type):
2177         * metadata/sj-structures.c:
2178         * metadata/sj-structures.h:
2179         * metadata/test-metadata.c: (load_metadata_cb), (main):
2180         * podcast/rb-feed-podcast-properties-dialog.c:
2181         (rb_feed_podcast_properties_dialog_init),
2182         (rb_feed_podcast_properties_dialog_update_title):
2183         * podcast/rb-feed-podcast-properties-dialog.h:
2184         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
2185         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
2186         (rb_new_podcast_dialog_text_changed):
2187         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
2188         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
2189         (rb_podcast_manager_set_property),
2190         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
2191         (rb_podcast_manager_download_entry),
2192         (rb_podcast_manager_update_feeds),
2193         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
2194         (rb_podcast_manager_copy_post),
2195         (rb_podcast_manager_thread_parse_feed),
2196         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
2197         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
2198         (download_info_free), (download_info_new), (start_job),
2199         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
2200         (download_progress_cb), (download_progress_update_cb),
2201         (rb_podcast_manager_remove_feed),
2202         (rb_podcast_manager_db_entry_deleted_cb),
2203         (rb_podcast_manager_cancel_download),
2204         (rb_podcast_manager_update_synctime),
2205         (rb_podcast_manager_set_remove_files),
2206         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
2207         (rb_podcast_manager_abort_subscribe),
2208         (rb_podcast_manager_get_podcast_dir):
2209         * podcast/rb-podcast-manager.h:
2210         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
2211         (rb_validate_channel_propert), (rb_validate_item_propert),
2212         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
2213         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
2214         (rb_podcast_parse_date), (rb_podcast_parse_time),
2215         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
2216         * podcast/rb-podcast-parse.h:
2217         * podcast/rb-podcast-properties-dialog.c:
2218         (rb_podcast_properties_dialog_init),
2219         (rb_podcast_properties_dialog_get_current_entry),
2220         (rb_podcast_properties_dialog_update_title),
2221         (rb_podcast_properties_dialog_update_duration),
2222         (rb_podcast_properties_dialog_update_date):
2223         * podcast/rb-podcast-properties-dialog.h:
2224         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
2225         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
2226         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
2227         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
2228         (g_sequence_search), (g_sequence_set_aggregate_data),
2229         (g_sequence_node_update_fields), (g_sequence_node_rotate),
2230         (find_min), (g_sequence_node_find_by_pos),
2231         (g_sequence_node_find_closest), (g_sequence_node_free),
2232         (g_sequence_node_split), (g_sequence_node_insert_before),
2233         (g_sequence_node_get_length), (g_sequence_node_remove),
2234         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
2235         (g_sequence_calc_tree_height):
2236         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
2237         (rb_refstring_get):
2238         * rhythmdb/rb-refstring.h:
2239         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
2240         (rhythmdb_gda_init), (dump_model), (execute_query),
2241         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
2242         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
2243         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
2244         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
2245         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
2246         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
2247         * rhythmdb/rhythmdb-gda.h:
2248         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
2249         (rhythmdb_finalize_monitoring), (monitor_entry_file),
2250         (monitor_library_directory), (rhythmdb_check_changed_file),
2251         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
2252         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
2253         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
2254         * rhythmdb/rhythmdb-private.h:
2255         * rhythmdb/rhythmdb-property-model.c:
2256         (rhythmdb_property_model_set_property),
2257         (rhythmdb_property_model_row_inserted_cb),
2258         (rhythmdb_property_model_prop_changed_cb),
2259         (rhythmdb_property_model_compare),
2260         (rhythmdb_property_model_get_value),
2261         (rhythmdb_property_model_iter_nth_child),
2262         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
2263         (rhythmdb_property_model_drag_data_get),
2264         (rhythmdb_property_model_enable_drag),
2265         (rhythmdb_property_model_column_get_type):
2266         * rhythmdb/rhythmdb-property-model.h:
2267         * rhythmdb/rhythmdb-query-model.c:
2268         (rhythmdb_query_model_class_init),
2269         (rhythmdb_query_model_set_property),
2270         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
2271         (rhythmdb_query_model_has_pending_changes),
2272         (rhythmdb_query_model_entry_changed_cb),
2273         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2274         (rhythmdb_query_model_add_entry),
2275         (rhythmdb_query_model_remove_from_main_list),
2276         (rhythmdb_query_model_remove_entry),
2277         (rhythmdb_query_model_drag_data_received),
2278         (rhythmdb_query_model_row_drop_possible),
2279         (rhythmdb_query_model_compute_status_normal),
2280         (rhythmdb_query_model_set_sort_order),
2281         (rhythmdb_query_model_get_entry_index),
2282         (rhythmdb_query_model_base_row_inserted),
2283         (rhythmdb_query_model_base_row_deleted),
2284         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2285         (rhythmdb_query_model_date_sort_func),
2286         (rhythmdb_query_model_within_limit):
2287         * rhythmdb/rhythmdb-query-model.h:
2288         * rhythmdb/rhythmdb-query-results.c:
2289         (rhythmdb_query_results_query_complete):
2290         * rhythmdb/rhythmdb-query-results.h:
2291         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
2292         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
2293         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
2294         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
2295         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
2296         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
2297         (rhythmdb_tree_parser_start_element),
2298         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
2299         (save_entry), (save_entry_type), (save_unknown_entry_type),
2300         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
2301         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
2302         (get_or_create_genre), (remove_entry_from_album),
2303         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2304         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
2305         (search_match_properties), (evaluate_conjunctive_subquery),
2306         (clone_remove_ptr_array_index), (conjunctive_query_albums),
2307         (conjunctive_query_artists), (conjunctive_query_genre),
2308         (conjunctive_query), (split_query_by_disjunctions),
2309         (do_query_recurse), (rhythmdb_tree_entry_foreach),
2310         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2311         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
2312         (rhythmdb_hash_tree_foreach),
2313         (rhythmdb_tree_entry_type_registered):
2314         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
2315         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
2316         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2317         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2318         (rhythmdb_shutdown), (rhythmdb_finalize),
2319         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
2320         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2321         (rhythmdb_entry_example_new),
2322         (set_metadata_string_default_unknown), (is_ghost_entry),
2323         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2324         (rhythmdb_process_metadata_load),
2325         (rhythmdb_process_queued_entry_set_event),
2326         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
2327         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
2328         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
2329         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
2330         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
2331         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2332         (rhythmdb_entry_delete_by_type),
2333         (rhythmdb_propid_from_nice_elt_name),
2334         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
2335         (rhythmdb_compute_status_normal),
2336         (rhythmdb_entry_register_type_alias),
2337         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
2338         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
2339         (rhythmdb_entry_import_error_get_type),
2340         (rhythmdb_entry_podcast_post_get_type),
2341         (rhythmdb_entry_podcast_feed_get_type),
2342         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2343         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
2344         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
2345         * rhythmdb/rhythmdb.h:
2346         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
2347         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
2348         (rb_history_limit_size):
2349         * shell/rb-history.h:
2350         * shell/rb-play-order-linear-loop.c:
2351         (rb_linear_play_order_loop_get_next):
2352         * shell/rb-play-order-linear-loop.h:
2353         * shell/rb-play-order-linear.c:
2354         * shell/rb-play-order-linear.h:
2355         * shell/rb-play-order-queue.c:
2356         (rb_queue_play_order_playing_entry_removed):
2357         * shell/rb-play-order-queue.h:
2358         * shell/rb-play-order-random-by-age-and-rating.c:
2359         * shell/rb-play-order-random-by-age-and-rating.h:
2360         * shell/rb-play-order-random-by-age.c:
2361         (rb_random_by_age_get_entry_weight):
2362         * shell/rb-play-order-random-by-age.h:
2363         * shell/rb-play-order-random-by-rating.c:
2364         * shell/rb-play-order-random-by-rating.h:
2365         * shell/rb-play-order-random-equal-weights.c:
2366         * shell/rb-play-order-random-equal-weights.h:
2367         * shell/rb-play-order-random.c: (rb_random_filter_history),
2368         (rb_random_get_total_weight), (rb_random_play_order_get_next),
2369         (rb_random_db_changed), (rb_random_playing_entry_changed),
2370         (rb_random_db_entry_deleted):
2371         * shell/rb-play-order-shuffle.c: (remove_from_history),
2372         (add_randomly_to_history), (get_query_model_contents),
2373         (rb_shuffle_playing_entry_changed):
2374         * shell/rb-play-order-shuffle.h:
2375         * shell/rb-play-order.c: (rb_play_order_class_init),
2376         (rb_play_order_set_property),
2377         (rb_play_order_playing_source_changed),
2378         (rb_play_order_query_model_changed_cb),
2379         (rb_play_order_query_model_changed),
2380         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
2381         * shell/rb-play-order.h:
2382         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2383         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
2384         (rb_playlist_manager_set_property),
2385         (rb_playlist_manager_parse_file),
2386         (rb_playlist_manager_load_playlists),
2387         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
2388         (rb_playlist_manager_save_playlists),
2389         (rb_playlist_manager_new_playlist),
2390         (rb_playlist_manager_new_playlist_from_selection_data),
2391         (rb_playlist_manager_cmd_new_automatic_playlist),
2392         (rb_playlist_manager_cmd_edit_automatic_playlist),
2393         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
2394         (save_playlist_response_cb), (export_set_extension_cb),
2395         (filter_get_export_filter_label), (setup_format_menu),
2396         (rb_playlist_manager_cmd_save_playlist),
2397         (rb_playlist_manager_get_playlists),
2398         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
2399         (rb_playlist_manager_delete_playlist),
2400         (rb_playlist_manager_export_playlist):
2401         * shell/rb-playlist-manager.h:
2402         * shell/rb-removable-media-manager.c:
2403         (rb_removable_media_manager_class_init),
2404         (rb_removable_media_manager_dispose),
2405         (rb_removable_media_manager_finalize),
2406         (rb_removable_media_manager_set_property),
2407         (split_drive_from_cdda_uri),
2408         (rb_removable_media_manager_playing_uri_changed_cb),
2409         (rb_removable_media_manager_load_media),
2410         (rb_removable_media_manager_volume_mounted_cb),
2411         (remove_volume_by_source),
2412         (rb_removable_media_manager_source_deleted_cb),
2413         (rb_removable_media_manager_volume_unmounted_cb),
2414         (rb_removable_media_manager_mount_volume),
2415         (rb_removable_media_manager_set_uimanager),
2416         (rb_removable_media_manager_scan), (do_transfer),
2417         (rb_removable_media_manager_cmd_copy_tracks):
2418         * shell/rb-removable-media-manager.h:
2419         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
2420         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
2421         (rb_shell_clipboard_sync),
2422         (rb_shell_clipboard_idle_poll_deletions),
2423         (rb_shell_clipboard_cmd_add_to_playlist_new),
2424         (rb_shell_clipboard_playlist_add_cb),
2425         (rb_shell_clipboard_playlist_deleted_cb),
2426         (rb_shell_clipboard_playlist_renamed_cb),
2427         (rb_shell_clipboard_playlist_visible_cb),
2428         (rb_shell_clipboard_playlist_added_cb):
2429         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2430         (rb_shell_player_constructor), (volume_pre_unmount_cb),
2431         (rb_shell_player_init), (rb_shell_player_set_property),
2432         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
2433         (rb_shell_player_open_location),
2434         (rb_shell_player_set_playing_entry),
2435         (rb_shell_player_play_order_update_cb),
2436         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
2437         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
2438         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
2439         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
2440         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2441         (gconf_song_position_slider_visibility_changed),
2442         (rb_shell_player_entry_activated_cb),
2443         (rb_shell_player_property_row_activated_cb),
2444         (rb_shell_player_entry_changed_cb),
2445         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2446         (actually_set_playing_source),
2447         (rb_shell_player_set_playing_source_internal),
2448         (rb_shell_player_get_playing_song_duration), (eos_cb),
2449         (rb_shell_player_error), (error_cb), (info_available_cb),
2450         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
2451         (rb_shell_player_error_get_type):
2452         * shell/rb-shell-player.h:
2453         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
2454         (rb_shell_preferences_append_page),
2455         (share_check_button_toggled_cb),
2456         (password_check_button_toggled_cb), (add_daap_preferences),
2457         (rb_shell_preferences_column_check_changed_cb),
2458         (rb_shell_preferences_sync_column_button),
2459         (rb_shell_preferences_sync),
2460         (rb_shell_preferences_browser_views_activated_cb):
2461         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
2462         (rb_shell_set_property), (rb_shell_get_property),
2463         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
2464         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
2465         (rb_shell_get_visibility), (rb_shell_set_visibility),
2466         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
2467         (rb_shell_register_entry_type_for_source),
2468         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
2469         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
2470         (rb_shell_player_stream_song_changed_cb),
2471         (rb_shell_set_window_title),
2472         (rb_shell_view_smalldisplay_changed_cb),
2473         (rb_shell_view_queue_as_sidebar_changed_cb),
2474         (rb_shell_cmd_plugins), (add_to_library_response_cb),
2475         (rb_shell_cmd_add_folder_to_library),
2476         (rb_shell_cmd_add_file_to_library),
2477         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
2478         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
2479         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
2480         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
2481         (handle_playlist_entry_cb), (rb_shell_load_uri),
2482         (rb_shell_add_to_queue), (rb_shell_present),
2483         (rb_shell_get_song_properties), (rb_shell_set_song_property),
2484         (rb_shell_volume_widget_changed_cb),
2485         (rb_shell_player_volume_changed_cb),
2486         (rb_shell_ui_location_get_type):
2487         * shell/rb-shell.h:
2488         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
2489         (rb_source_header_init), (rb_source_header_set_source_internal),
2490         (rb_source_state_sync), (rb_source_header_clear_search),
2491         (rb_source_header_view_browser_changed_cb):
2492         * shell/rb-source-header.h:
2493         * shell/rb-statusbar.c: (rb_statusbar_construct),
2494         (rb_statusbar_init), (rb_statusbar_finalize),
2495         (rb_statusbar_set_property), (rb_statusbar_set_progress),
2496         (rb_statusbar_source_status_changed_cb):
2497         * shell/rb-statusbar.h:
2498         * shell/rb-tray-icon.c: (rb_tray_icon_init),
2499         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
2500         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
2501         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
2502         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
2503         (rb_audiocd_create_track_entry):
2504         * sources/rb-auto-playlist-source.c:
2505         (rb_auto_playlist_source_class_init),
2506         (rb_auto_playlist_source_constructor),
2507         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
2508         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
2509         (rb_auto_playlist_source_query_complete_cb),
2510         (rb_auto_playlist_source_do_query),
2511         (rb_auto_playlist_source_set_query),
2512         (rb_auto_playlist_source_browser_changed_cb),
2513         (search_action_to_prop):
2514         * sources/rb-auto-playlist-source.h:
2515         * sources/rb-browser-source.c: (rb_browser_source_init),
2516         (rb_browser_source_dispose), (search_action_to_prop),
2517         (rb_browser_source_constructor),
2518         (rb_browser_source_cmd_choose_genre),
2519         (rb_browser_source_cmd_choose_artist),
2520         (rb_browser_source_cmd_choose_album), (impl_search),
2521         (rb_browser_source_browser_changed_cb),
2522         (rb_browser_source_do_query):
2523         * sources/rb-browser-source.h:
2524         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2525         (rb_daap_source_init), (rb_daap_source_dispose),
2526         (rb_daap_source_set_property), (start_browsing),
2527         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2528         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2529         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
2530         (rb_daap_source_get_headers), (rb_daap_source_get_status):
2531         * sources/rb-daap-source.h:
2532         * sources/rb-import-errors-source.h:
2533         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2534         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
2535         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
2536         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
2537         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
2538         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
2539         (ipod_mkdir_with_parents), (build_ipod_dir_name),
2540         (generate_ipod_filename), (ipod_path_from_unix_path),
2541         (impl_delete_thyself):
2542         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2543         (rb_iradio_source_init), (rb_iradio_source_constructor),
2544         (rb_iradio_source_new), (guess_uri_scheme),
2545         (rb_iradio_source_add_station),
2546         (rb_iradio_source_async_update_play_statistics),
2547         (genre_selection_reset_cb), (rb_iradio_source_do_query),
2548         (stations_view_drag_data_received_cb),
2549         (rb_iradio_source_cmd_new_station):
2550         * sources/rb-iradio-source.h:
2551         * sources/rb-library-source.c: (rb_library_source_dispose),
2552         (rb_library_source_constructor),
2553         (rb_library_source_location_button_clicked_cb),
2554         (impl_get_config_widget), (rb_library_source_library_location_cb),
2555         (sanitize_path), (filepath_parse_pattern),
2556         (layout_example_label_update),
2557         (rb_library_source_layout_filename_changed), (build_filename),
2558         (impl_can_paste), (impl_paste),
2559         (rb_library_source_add_child_source),
2560         (rb_library_source_sync_child_sources):
2561         * sources/rb-library-source.h:
2562         * sources/rb-missing-files-source.h:
2563         * sources/rb-play-queue-source.c:
2564         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
2565         * sources/rb-play-queue-source.h:
2566         * sources/rb-playlist-source-recorder.c:
2567         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
2568         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
2569         (rb_playlist_source_recorder_init),
2570         (rb_playlist_source_recorder_new):
2571         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2572         (rb_playlist_source_save_playlist),
2573         (rb_playlist_source_entry_added_cb),
2574         (rb_playlist_source_set_query_model),
2575         (rb_playlist_source_add_to_map):
2576         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2577         (rb_podcast_source_init), (rb_podcast_source_dispose),
2578         (rb_podcast_source_finalize), (search_action_to_prop),
2579         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
2580         (rb_podcast_source_get_property), (rb_podcast_source_new),
2581         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2582         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
2583         (rb_podcast_source_show_browser), (construct_query_from_selection),
2584         (rb_podcast_source_do_query), (impl_get_config_widget),
2585         (rb_podcast_source_btn_file_change_cb),
2586         (posts_view_drag_data_received_cb),
2587         (rb_podcast_source_cmd_download_post),
2588         (rb_podcast_source_cmd_cancel_download),
2589         (rb_podcast_source_cmd_delete_feed),
2590         (rb_podcast_source_cmd_properties_feed),
2591         (rb_podcast_source_cmd_update_feed),
2592         (rb_podcast_source_post_status_cell_data_func),
2593         (rb_podcast_source_post_feed_cell_data_func),
2594         (rb_podcast_source_post_date_cell_data_func),
2595         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
2596         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
2597         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2598         (impl_get_status):
2599         * sources/rb-podcast-source.h:
2600         * sources/rb-removable-media-source.c:
2601         (rb_removable_media_source_constructor):
2602         * sources/rb-removable-media-source.h:
2603         * sources/rb-source.h:
2604         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
2605         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
2606         (rb_sourcelist_model_row_is_separator),
2607         (rb_sourcelist_model_drag_data_received),
2608         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
2609         (rb_sourcelist_model_row_drop_position),
2610         (rb_sourcelist_model_get_drag_target),
2611         (rb_sourcelist_model_row_draggable),
2612         (rb_sourcelist_model_drag_data_get),
2613         (rb_sourcelist_model_row_inserted_cb),
2614         (rb_sourcelist_model_get_group_path):
2615         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2616         (match_source_to_iter), (rb_sourcelist_source_to_iter),
2617         (rb_sourcelist_visible_source_to_iter),
2618         (rb_sourcelist_edit_source_name),
2619         (rb_sourcelist_selection_changed_cb), (button_press_cb),
2620         (key_release_cb), (name_notify_cb), (icon_notify_cb),
2621         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2622         * sources/rb-static-playlist-source.c:
2623         (rb_static_playlist_source_class_init),
2624         (rb_static_playlist_source_constructor),
2625         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
2626         (impl_search), (rb_static_playlist_source_do_query),
2627         (rb_static_playlist_source_browser_changed_cb),
2628         (impl_receive_drag), (impl_save_contents_to_xml),
2629         (rb_static_playlist_source_add_location_swapped),
2630         (search_action_to_prop):
2631         * sources/rb-static-playlist-source.h:
2632         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
2633         * widgets/eggtrayicon.c: (egg_tray_icon_init),
2634         (egg_tray_icon_get_orientation_property),
2635         (egg_tray_icon_send_manager_message),
2636         (egg_tray_icon_update_manager_window),
2637         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
2638         (egg_tray_icon_send_message), (egg_tray_icon_notify):
2639         * widgets/eggtrayicon.h:
2640         * widgets/rb-cell-renderer-pixbuf.c:
2641         (rb_cell_renderer_pixbuf_get_property),
2642         (rb_cell_renderer_pixbuf_set_property),
2643         (rb_cell_renderer_pixbuf_get_size),
2644         (rb_cell_renderer_pixbuf_render),
2645         (rb_cell_renderer_pixbuf_activate):
2646         * widgets/rb-cell-renderer-rating.c:
2647         (rb_cell_renderer_rating_class_init),
2648         (rb_cell_renderer_rating_get_property),
2649         (rb_cell_renderer_rating_set_property),
2650         (rb_cell_renderer_rating_get_size),
2651         (rb_cell_renderer_rating_render),
2652         (rb_cell_renderer_rating_activate):
2653         * widgets/rb-dialog.c:
2654         * widgets/rb-dialog.h:
2655         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
2656         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
2657         (rb_druid_page3_finish_cb):
2658         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
2659         (rb_entry_view_init), (rb_entry_view_set_property),
2660         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
2661         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
2662         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
2663         (rb_entry_view_set_sorting_order),
2664         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
2665         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2666         (rb_entry_view_playing_song_changed),
2667         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
2668         (rb_entry_view_scroll_to_entry), (set_column_visibility),
2669         (rb_entry_view_set_fixed_column_width),
2670         (rb_entry_view_get_time_date_column_sample),
2671         (rb_entry_view_state_get_type):
2672         * widgets/rb-entry-view.h:
2673         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
2674         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
2675         (changed_idle_callback), (rb_header_elapsed_changed_cb):
2676         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
2677         (update_browser_property_visibilty),
2678         (rb_library_browser_construct_query), (restore_selection),
2679         (rebuild_child_model), (rb_library_browser_set_selection),
2680         (rb_library_browser_set_model):
2681         * widgets/rb-library-browser.h:
2682         * widgets/rb-property-view.c: (rb_property_view_class_init),
2683         (rb_property_view_set_property), (rb_property_view_reset),
2684         (rb_property_view_get_model), (rb_property_view_constructor),
2685         (rb_property_view_set_selection),
2686         (rb_property_view_selection_changed_cb),
2687         (rb_property_view_button_press_cb),
2688         (rb_property_view_set_search_func):
2689         * widgets/rb-query-creator-private.h:
2690         * widgets/rb-query-creator-properties.c:
2691         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
2692         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
2693         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
2694         (relativeTimeCriteriaCreateWidget),
2695         (relativeTimeCriteriaSetWidgetData):
2696         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2697         (rb_query_creator_dispose), (rb_query_creator_load_query),
2698         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
2699         (get_property_index_from_proptype), (select_criteria_from_value),
2700         (create_property_option_menu), (create_criteria_option_menu),
2701         (sort_option_menu_changed), (setup_sort_option_menu):
2702         * widgets/rb-query-creator.h:
2703         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
2704         (rb_rating_render_stars):
2705         * widgets/rb-rating-helper.h:
2706         * widgets/rb-rating.c: (rb_rating_expose):
2707         * widgets/rb-rating.h:
2708         * widgets/rb-search-entry.c: (rb_search_entry_clear),
2709         (rb_search_entry_timeout_cb):
2710         * widgets/rb-search-entry.h:
2711         * widgets/rb-song-info.c: (rb_song_info_construct_single),
2712         (rb_song_info_constructor), (rb_song_info_new),
2713         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
2714         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
2715         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2716         (rb_song_info_query_model_changed_cb),
2717         (rb_song_info_sync_entries_multiple),
2718         (rb_song_info_sync_entry_single):
2719         Strip all trailing whitespace.  Fixes #344293.
2721 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
2723         * doc/reference/Makefile.am: Fix GTK Doc Build
2725 2006-07-13  James Livingston  <doclivingston@gmail.com>
2727         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
2729         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
2730         instead of the LOCATION, and don't try to get the directory listing
2731         for http URI schemes
2733         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
2734         invalid utf8 in the error message, since apparently it can happen.
2736 2006-07-12  William Jon McCann  <mccann@jhu.edu>
2738         * sources/rb-import-errors-source.c:
2739         (rb_import_errors_source_class_init),
2740         (rb_import_errors_source_init),
2741         (rb_import_errors_source_constructor),
2742         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
2743         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
2744         * sources/rb-missing-files-source.c:
2745         (rb_missing_files_source_class_init),
2746         (rb_missing_files_source_init),
2747         (rb_missing_files_source_constructor),
2748         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
2749         (rb_missing_files_source_songs_sort_order_changed_cb),
2750         (impl_get_status):
2751         * sources/rb-source.c: (rb_source_class_init),
2752         (rb_source_finalize), (update_visibility_idle),
2753         (queue_update_visibility), (rb_source_set_hidden_when_empty),
2754         (rb_source_set_property), (rb_source_get_property),
2755         (default_get_status), (rb_source_update_play_statistics),
2756         (default_add_to_queue), (_rb_source_show_popup),
2757         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
2758         (rb_source_gather_selected_properties),
2759         (_rb_source_register_action_group):
2760         * sources/rb-source.h:
2761         * sources/rb-sourcelist.c: (visibility_notify_cb):
2762         Don't use a fake model for import-errors and missing-files
2763         sources.  Add a new source property "hidden-when-empty".
2764         Update source visibility in an idle.  Clean up some whitespace.
2765         From bug #346800
2767 2006-07-12  James Livingston  <doclivingston@gmail.com>
2769         * bindings/python/rb.defs:
2770         * bindings/python/rb.override: bind rb_error_dialog
2772         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
2773         the current working directory for uninstalled plugins, and add the
2774         class name to the method name.
2776 2006-07-12  James Livingston  <doclivingston@gmail.com>
2778         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
2779         the sources EOF type if it's NULL. Fixes #346284.
2781 2006-07-12  James Livingston  <doclivingston@gmail.com>
2783         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
2784         I accidently committed. Nothing to see here, move along...
2786 2006-07-11  James Livingston  <doclivingston@gmail.com>
2788         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2789         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
2790         Unknown.
2792 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2794         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
2796 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2798         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
2799         Don't try to set mtime if we've deleted the entry.
2801 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2803         * bindings/python/rhythmdb.defs:
2804         * rhythmdb/rhythmdb.c:
2805         * rhythmdb/rhythmdb.h:
2806         * rhythmdb/rhythmdb-private.h:
2807         * rhythmdb/rhythmdb-query.c:
2808         Move data structures holding registered entry types inside the
2809         RhythmDB object, and add a vfunc called when new types are registered.
2810         Add a flag to RhythmDBEntryType specifying whether entries of the type
2811         should be saved to the on-disk database.
2813         * sources/rb-audiocd-source.c:
2814         * sources/rb-daap-source.c:
2815         * sources/rb-ipod-source.c:
2816         * plugins/generic-player/rb-generic-player-source.c:
2817         * plugins/generic-player/rb-nokia770-source.c:
2818         * plugins/generic-player/rb-psp-source.c:
2819         Adjust to the above changes.
2821         * rhythmdb/rhythmdb-tree.c:
2822         If the type for an entry hasn't been registered yet, store the entry's
2823         properties as-is, and convert them to a real entry when the type is
2824         registered.  If the type doesn't get registered, save the entry back
2825         to the database unmodified.  From #330226.
2827 2006-07-10  James Livingston  <doclivingston@gmail.com>
2829         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
2830         os.path.unlink to os.unlink, so removing stuff works.
2832 2006-07-10  James Livingston  <doclivingston@gmail.com>
2834         patch by: Ed Catmur  <ed@catmur.co.uk>
2835               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
2837         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2838         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
2839         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
2840         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
2841         internals of the cover database and Amazon lookup engine, and add
2842         support for loading art from the local file system. Fixes #345688.
2844         * plugins/rb/Coroutine.py:
2845         * plugins/rb/Makefile.am:
2846         * plugins/rb/__init__.py: Add the Coroutine class to the common python
2847         plugin classes.
2849 2006-07-10  James Livingston  <doclivingston@gmail.com>
2851         * tests/Makefile.am: don't run the benchmark when doing "make check"
2853         * po/POTFILES.in: more build fixes, from Matti Lindell
2854         <feenixx@hotmail.com>. Fixes #347049.
2857 2006-07-10  James Livingston  <doclivingston@gmail.com>
2859         * plugins/cd-recorder/Makefile.am: build fixes
2861         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
2862         attempt to change properties if we couldn't create an entry.
2864         * shell/rb-source-header.c: (rb_source_header_init),
2865         (rb_source_header_view_browser_changed_cb),
2866         (rb_source_header_sync_control_state):
2867         * shell/rb-tray-icon.c:
2868         * widgets/Makefile.am:
2869         * widgets/disclosure-widget.c:
2870         * widgets/disclosure-widget.h: remove the remanents of the disclosure
2871         widget, as it hasn't been used for a while.
2873 2006-07-09  William Jon McCann  <mccann@jhu.edu>
2875         * Makefile.am:
2876         * configure.ac:
2877         * data/ui/rhythmbox-ui.xml:
2878         * plugins/Makefile.am:
2879         * plugins/cd-recorder/.cvsignore:
2880         * plugins/cd-recorder/Makefile.am:
2881         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
2882         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
2883         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
2884         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
2885         (source_burn), (cmd_burn_source), (playlist_entries_changed),
2886         (playlist_row_inserted_cb), (update_source),
2887         (shell_selected_source_notify_cb), (impl_activate),
2888         (impl_deactivate):
2889         * shell/Makefile.am:
2890         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
2891         (rb_playlist_manager_cmd_save_playlist):
2892         * shell/rb-shell.c: (rb_shell_select_source):
2893         * sources/Makefile.am:
2894         * sources/rb-playlist-source-recorder.c:
2895         (rb_playlist_source_recorder_new):
2896         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
2897         (rb_playlist_source_add_to_map):
2898         * sources/rb-playlist-source.h:
2899         Move cd burning into a plugin.  Fixes #344300.
2901 2006-07-10  James Livingston  <doclivingston@gmail.com>
2903         * lib/eel-gconf-extensions.c:
2904         * shell/rb-shell.c: remove some ununsed gnomeui includes
2906         * widgets/Makefile.am:
2907         * widgets/rb-song-display-box.c:
2908         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
2909         since it isn't acutally used anywhere. Fixes #346926
2911 2006-07-09  James Livingston  <doclivingston@gmail.com>
2913         * bindings/python/rb.defs:
2914         * bindings/python/rb.override:
2915         * lib/rb-debug.c: (rb_debug_real):
2916         * lib/rb-debug.h:
2917         * plugins/rb/__init__.py: don't print out an extra newline when
2918         diverting python print statements to RB's debug log.
2920 2006-07-09  James Livingston  <doclivingston@gmail.com>
2922         * rhythmdb/rhythmdb-property-model.c:
2923         (rhythmdb_property_model_drag_data_get):
2924         * sources/rb-sourcelist-model.c:
2925         (rb_sourcelist_model_row_draggable),
2926         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
2927         from the row reference is still valid. Fixes #346709.
2929 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2931         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
2933         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
2934         If all selected entries have the same rating, use that as the initial
2935         rating for the multiple song info dialog.  Fixes #345970.
2937 2006-07-09  James Livingston  <doclivingston@gmail.com>
2939         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
2940         to prevent #343345:
2941                 - don't ever scale to 1x1, just hide the image in that case
2942                 - don't fade when the window is minimised
2943                 - use the last-good allocation width, not the current one - as
2944                   it sometimes get weird values.
2946 2006-07-08  William Jon McCann  <mccann@jhu.edu>
2948         * data/ui/rhythmbox-ui.xml:
2949         * shell/rb-shell.c:
2950         Remove Import audio CD from menu.  Fixes #339732
2952 2006-07-08  James Livingston  <doclivingston@gmail.com>
2954         * metadata/test-metadata.c: (print_metadata_string),
2955         (load_metadata_cb): print out all the metadata we have read, not just
2956         a few.
2958         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
2959         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
2961 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2963         * plugins/lyrics/lyrics.py:
2964         Change the lyrics cache location to match Quod Libet's,
2965         and fix the '&' -> 'and' substitution to require spaces.
2967 2006-07-08  James Livingston  <doclivingston@gmail.com>
2969         * bindings/python/rb.defs:
2970         * bindings/python/rb.override: bind rb_debug_real to rb._debug
2972         * configure.ac:
2973         * plugins/Makefile.am:
2974         * plugins/rb-python-module.c: (rb_python_module_init_python):
2975         * plugins/rb/Makefile.am: add a place to put common python classes.
2976         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
2977         rb module/
2979         * plugins/lyrics/Makefile.am:
2980         * plugins/lyrics/Loader.py:
2981         * plugins/artdisplay/artdisplay/Makefile.am:
2982         * plugins/artdisplay/artdisplay/Loader.py:
2983         * plugins/rb/Loader.py: move the loader class to rb.Loader
2985         * plugins/rb/__init__.py: redirect stdout from python (e.g.
2986         "print ...") to rb_debug. error output (e.g. exceptions) are still
2987         printed on stderr.
2989         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2990         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
2991         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
2992         instead of Loader.
2994         Fixes #346895.
2996 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2998         * shell/rb-shell-player.xml:
2999         * shell/rb-shell-player.h:
3000         Correct the details of the playing-song-property-changed signal.
3002 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3004         * lib/rb-marshal.list:
3005         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3006         (rb_shell_player_entry_changed_cb):
3007         * shell/rb-shell-player.h:
3008         * shell/rb-shell-player.xml:
3009         Emit a dbus signal when a property is changed on the playing entry.
3010         Fixes #332461.
3012 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3014         * rhythmdb/rhythmdb-private.h:
3015         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3016         Fix build break with gcc 4.1 by changing RBRefString pointers into
3017         gpointers.
3019 2006-07-07  James Livingston  <doclivingston@gmail.com>
3021         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
3022         remove an extraneous !, which caused it not to monitor folders in the
3023         library with no tracks in them. Fixes #346759.
3025 2006-07-07  James Livingston  <doclivingston@gmail.com>
3027         * rhythmdb/rhythmdb-private.h:
3028         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
3029         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
3030         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
3031         (rhythmdb_entry_get_string):
3032         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
3033         flags for the affected properties. _sync_mirrored will get run
3034         automatically when a dirty property is accessed, which improves
3035         performance a bit (especially during startup) as we don't need to sync
3036         every time they change. From #325215.
3038         * tests/bench-rhythmdb-load.c
3039         * tests/Makefile.am: add a RhythmDB loading benchmark.
3041 2006-07-06  James Livingston  <doclivingston@gmail.com>
3043         * bindings/python/rb.defs:
3044         * bindings/python/rb.override: some more fixes, so that
3045         python classes derived from RBSource work correctly.
3047 2006-07-06  James Livingston  <doclivingston@gmail.com>
3049         * configure.ac: bump pygtk requirements to 2.8, since we're already
3050         using some features of it, and weird things will happen if people are
3051         actually trying to use pygtk 2.6.
3053         * bindings/python/rb.override:
3054         * bindings/python/rhythmdb.defs:
3055         * bindings/python/rhythmdb.override: allow python to set
3056         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
3058         * sources/rb-browser-source.c: remove some left over member variables
3060 2006-07-06  James Livingston  <doclivingston@gmail.com>
3062         * rhythmdb/rhythmdb.c:
3063         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
3064         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
3065         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
3066         former is pointless (as rhythmdb already knows which it should use)
3067         and the latter doesn't seem useful at all, and possibly bad. From
3068         #330226.
3070         * bindings/python/rhythmdb.defs:
3071         * bindings/python/rhythmdb.override:
3072         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
3073         (handle_song_listing):
3074         * podcast/rb-podcast-manager.c:
3075         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
3076         (rb_podcast_manager_insert_feed):
3077         * sources/rb-audiocd-source.c: (entry_set_string_prop),
3078         (rb_audiocd_create_track_entry):
3079         * sources/rb-ipod-source.c: (entry_set_string_prop),
3080         (add_ipod_song_to_db):
3081         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
3082         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
3084 2006-07-05  James Livingston  <doclivingston@gmail.com>
3086         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
3087         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
3088         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
3089         totem-plparser gives us, or the file name if it doesn't give us
3090         anything. Set the default file name when saving too. Fixes #345261
3092 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3094         patch by: Ed Catmur  <ed@catmur.co.uk>
3096         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
3097         Skip all hidden directories, not just trash, and skip unreadable
3098         files.  Fixes #346322.
3100 2006-07-04  James Livingston  <doclivingston@gmail.com>
3102         * plugins/rb-module.h:
3103         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
3104         (rb_module_new):
3105         * plugins/rb-plugin.h:
3106         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
3107         (rb_plugin_finalise), (rb_plugin_set_property),
3108         (rb_plugin_get_property), (rb_plugin_activate),
3109         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
3110         (rb_plugin_find_file):
3111         * plugins/rb-plugins-engine.c: (load_plugin_module):
3112         * plugins/rb-python-module.c: (rb_python_module_new_object),
3113         (rb_python_module_new):
3114         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
3115         rb_plugin_find_file method for locating plugin-specific data. Fixes
3116         346473.
3118         * bindings/python/rb.defs:
3119         * plugins/Makefile.am:
3120         * plugins/generic-player/rb-generic-player-plugin.c:
3121         (create_source_cb):
3122         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
3124 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3126         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
3127         (rb_metadata_can_save), (rb_metadata_save):
3128         Protect the dbus connection with a mutex.
3130 2006-07-03  James Livingston  <doclivingston@gmail.com>
3132         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
3133         case of the parser/tagger not being able to be created.
3135 2006-07-03  James Livingston  <doclivingston@gmail.com>
3137         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3139         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
3140         window resizable, as it used to be. Fixes #345940.
3142 2006-07-01  James Livingston  <doclivingston@gmail.com>
3144         Patch from Ståle Lyngaas  <staale@lyngaas.com>
3146         * rhythmdb/rhythmdb.h:
3147         * rhythmdb/rhythmdb-private.h:
3148         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3149         (rhythmdb_tree_parser_end_element), (save_entry):
3150         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
3151         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
3152         (set_props_from_metadata), (rhythmdb_entry_set_internal),
3153         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
3154         MusicBrainz track IDs in the database, and bump the on-disk version
3155         number to trigger a metadata reload.
3157         * backends/gstreamer/rb-player-gst.c: (process_tag):
3158         * metadata/rb-metadata-common.c:
3159         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
3160         (rb_metadata_gst_field_to_gst_tag):
3161         * metadata/rb-metadata.h: grab MB track IDs and use them.
3163         * plugins/audioscrobbler/rb-audioscrobbler.c:
3164         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
3165         (rb_audioscrobbler_timeout_cb),
3166         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
3167         the other metadata. Fixes #343491.
3169 2006-06-30  James Livingston  <doclivingston@gmail.com>
3171         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
3172         method.
3174 2006-06-30  James Livingston  <doclivingston@gmail.com>
3176         * bindings/python/rb.defs:
3177         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3178         (rb_browser_source_songs_show_popup_cb),
3179         (default_show_entry_popup):
3180         * sources/rb-browser-source.h:
3181         * sources/rb-library-source.c: (rb_library_source_class_init),
3182         (rb_library_source_constructor), (impl_show_popup): allow
3183         RBBrowserSource-derived sources to override the entry context menu
3184         properly - by making it a virtual function, rather than relying on
3185         signal handler order (which doesn't really work).
3187 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3189         * rhythmdb/rhythmdb-query-model.c:
3190         (rhythmdb_query_model_reapply_query_cb):
3191         Use the original query, not the preprocessed query, when redoing
3192         the query to pick up entries that previously didn't match.
3193         Preprocessing the query twice is bad.  Fixes #346186.
3195 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3197         * plugins/audioscrobbler/rb-audioscrobbler.c:
3198         (rb_audioscrobbler_song_changed_cb):
3199         Just check if the elapsed time has been reset, rather
3200         than checking if it's a different track.  Fixes #344827.
3202 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3204         * backends/gstreamer/rb-player-gst.c:
3205         Set cdda source read-speed to 1.  Fixes gaps in playback while the
3206         drive spins up, #344576.
3208 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3210         * plugins/audioscrobbler/rb-audioscrobbler.c:
3211         (rb_audioscrobbler_perform):
3212         Use HTTP/1.1.  Fixes #345895.
3214 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3216         * lib/rb-preferences.h:
3217         * lib/rb-proxy-config.c: (rb_proxy_config_init),
3218         (check_auto_proxy_config), (get_proxy_config):
3219         Don't try to use a HTTP proxy if no proxy host is specified.
3220         Alert the user to the fact that we don't support automatic proxy
3221         configuration as infrequently as possible.  From #345712.
3223 2006-06-25  James Livingston  <doclivingston@gmail.com>
3225         * rhythmdb/rhythmdb-property-model.c:
3226         (rhythmdb_property_model_set_property): connect to the
3227         "post-entry-delete" signal, rather than "entry-deleted". This ensures
3228         things get removed correctly, fixes #338183.
3230 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3232         * rhythmdb/rhythmdb-query-model.c:
3233         (rhythmdb_query_model_drag_data_received):
3234         Fix build break.
3236 2006-06-25  James Livingston  <doclivingston@gmail.com>
3238         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3240         * widgets/rb-search-entry.c: (rb_search_entry_init),
3241         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
3242         search box have a pale yellow background when it's in use, except for
3243         when the user has an "accessability" theme. Code based heavily on
3244         Epiphany's. Fixes #344416.
3246 2006-06-25  James Livingston  <doclivingston@gmail.com>
3248         * plugins/lyrics/lyrics.py:
3249         * plugins/pythonconsole/pythonconsole.py:
3250         * plugins/sample-python/sample-python.py: don't import gettext stuff
3251         as _, as the C code does this for us. Fixes i18n for python plugins,
3252         #343081
3254 2006-06-25  James Livingston  <doclivingston@gmail.com>
3256         * rhythmdb/rhythmdb-query-model.c:
3257         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
3258         a model use a reorder rather then deleting and re-adding the entry.
3259         This means it does do weird things like stop playback of a track that
3260         is dragged, fixing #337657.
3262 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3264         * metadata/rb-metadata-dbus-service.c:
3265         Add missing #include <glib/gi18n.h> from previous commit.
3267 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3269         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3271         * metadata/rb-metadata-dbus-service.c: (main):
3272         Initialize gettext in the metadata helper.
3273         * metadata/rb-metadata-gst.c:
3274         Make some strings translatable.  Fixes #345286.
3276 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3278         * configure.ac:
3279         * lib/Makefile.am:
3280         * lib/rb-stock-icons.c: (rb_stock_icons_init):
3281         Inline the custom icons so they can always be loaded, but are still
3282         themable.  Fixes #345796.
3284 2006-06-23  James Livingston  <doclivingston@gmail.com>
3286         * sources/rb-auto-playlist-source.c:
3287         (rb_auto_playlist_source_do_query): stop the search box being applied
3288         for limits in auto playlists. Fixes #345307.
3290 2006-06-23  James Livingston  <doclivingston@gmail.com>
3292         * shell/rb-shell-clipboard.c:
3293         (rb_shell_clipboard_set_source_internal),
3294         (rb_shell_clipboard_sync), (add_playlist_to_menu),
3295         (rebuild_playlist_menu): don't use the add-to-playlist menu for
3296         non-library tracks, as we don't supprot it yet. From #345248.
3298 2006-06-23  James Livingston  <doclivingston@gmail.com>
3300         patch by: Brian Cameron  <brian.cameron@sun.com>
3302         * plugins/generic-player/rb-generic-player-plugin.c:
3303         * plugins/generic-player/rb-generic-player-source.c:
3304         * plugins/generic-player/rb-nokia770-source.c:
3305         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
3306         Fixes 345673.
3308 2006-06-22  James Livingston  <doclivingston@gmail.com>
3310         * backends/rb-player.c: (rb_player_interface_init):
3311         * lib/rb-marshal.list:
3312         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3313         * rhythmdb/rhythmdb-query-model.c:
3314         (rhythmdb_query_model_class_init):
3315         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
3316         * shell/rb-shell-player.c: (rb_shell_player_class_init):
3317         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
3318         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
3319         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3320         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
3321         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
3322         possible not.
3324 2006-06-20  James Livingston  <doclivingston@gmail.com>
3326         patch by Alex Lancaster  <alexl@users.sourceforge.net>
3328         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
3329         metadata to clients. Fixes #345276.
3331 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3333         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
3334         (rb_add_id3_tagger):
3335         Fix plugin/element version detection for id3v2mux.
3337 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3339         * sources/rb-source.c: (rb_source_finalize),
3340         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
3341         (_autohide_update_visibility),
3342         (_rb_autohide_source_post_entry_deleted_cb),
3343         (_rb_autohide_source_row_inserted_cb),
3344         (_rb_source_hide_when_empty):
3345         Use post-entry-delete signal to update status and autohide sources.
3347 2006-06-20  James Livingston  <doclivingston@gmail.com>
3349         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
3350         "selection changed" idle callback, if present.
3352 2006-06-19  James Livingston  <doclivingston@gmail.com>
3354         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3356         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
3357         don't try to translate the empty string. Fixes #345285.
3359 2006-06-19  James Livingston  <doclivingston@gmail.com>
3361         * bindings/python/rhythmdb.override: more python binding fixes
3363 2006-06-19  James Livingston  <doclivingston@gmail.com>
3365         * lib/rb-util.c: (rb_copy_function):
3366         * lib/rb-util.h: add a function that returns the same pointer it was
3367         passed.
3369         * rhythmdb/rhythmdb.h:
3370         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
3371         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
3372         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
3373         and RhythmDBEntryType into boxed types. This allows them to be used
3374         from python. Note that entry-types aren't actually reference counted
3375         (yet).
3377         * bindings/python/rb.defs:
3378         * bindings/python/rhythmdb.defs:
3379         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
3380         return types of some bindings.
3382         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
3383         (process_added_entries_cb), (rhythmdb_entry_finalize),
3384         (rhythmdb_entry_delete):
3385         * daapsharing/rb-daap-connection.c:
3386         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
3387         (rb_daap_connection_get_property):
3388         * plugins/generic-player/rb-generic-player-source.c:
3389         (rb_generic_player_source_load_songs), (load_playlist_file):
3390         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3391         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
3392         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
3393         (idle_process_update), (rhythmdb_query_model_add_entry),
3394         (rhythmdb_query_model_insert_into_main_list),
3395         (rhythmdb_query_model_insert_into_limited_list),
3396         (rhythmdb_query_model_remove_from_main_list),
3397         (rhythmdb_query_model_remove_from_limited_list),
3398         (rhythmdb_query_model_drag_data_received),
3399         (rhythmdb_query_model_add_results),
3400         (rhythmdb_query_model_get_column_type),
3401         (rhythmdb_query_model_get_value):
3402         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3403         (rhythmdb_tree_entry_delete), (remove_one_song):
3404         * shell/rb-play-order-linear-loop.c:
3405         (rb_linear_play_order_loop_get_next),
3406         (rb_linear_play_order_loop_get_previous):
3407         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
3408         (rb_linear_play_order_get_previous):
3409         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
3410         (rb_queue_play_order_get_previous):
3411         * shell/rb-play-order-random.c: (rb_random_play_order_init),
3412         (rb_random_filter_history), (rb_random_play_order_get_next),
3413         (rb_random_play_order_go_next), (rb_random_db_changed),
3414         (rb_random_playing_entry_changed):
3415         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
3416         (remove_from_history), (add_randomly_to_history),
3417         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
3418         * shell/rb-play-order.c: (rb_play_order_class_init),
3419         (rb_play_order_set_property), (rb_play_order_get_property),
3420         (rb_play_order_update_have_next_previous):
3421         * shell/rb-play-order.h:
3422         * shell/rb-shell-clipboard.c:
3423         (rb_shell_clipboard_process_deletions),
3424         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
3425         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
3426         * sources/rb-auto-playlist-source.c:
3427         (rb_auto_playlist_source_constructor):
3428         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3429         (rb_browser_source_set_property), (rb_browser_source_get_property),
3430         (rb_browser_source_do_query):
3431         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
3432         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
3433         * sources/rb-ipod-source.c: (add_rb_playlist),
3434         (add_ipod_song_to_db), (impl_paste):
3435         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3436         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
3437         * sources/rb-library-source.c: (layout_example_label_update):
3438         * sources/rb-missing-files-source.c:
3439         (rb_missing_files_source_class_init),
3440         (rb_missing_files_source_set_property),
3441         (rb_missing_files_source_get_property),
3442         (rb_missing_files_source_new):
3443         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3444         (rb_playlist_source_set_property),
3445         (rb_playlist_source_get_property):
3446         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3447         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
3448         (construct_query_from_selection):
3449         * sources/rb-removable-media-source.c: (impl_delete_thyself):
3450         * sources/rb-static-playlist-source.c:
3451         (rb_static_playlist_source_constructor),
3452         (rb_static_playlist_source_add_location_internal):
3453         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3454         * widgets/rb-header.c: (rb_header_class_init),
3455         (rb_header_set_property), (rb_header_get_property):
3456         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
3457         (rb_library_browser_set_property),
3458         (rb_library_browser_get_property):
3459         * widgets/rb-song-info.c: (rb_song_info_class_init),
3460         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
3461         change, do s/pointer/boxed/ in many places and free entry-types
3462         properly.
3464 2006-06-18  James Livingston  <doclivingston@gmail.com>
3466         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
3467         unushed GThreadPool non-exclusive threads every now and then.
3469         * rhythmdb/rhythmdb-private.h:
3470         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
3471         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
3472         threads. Fixes #341593
3474 2006-06-19  James Livingston  <doclivingston@gmail.com>
3476         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3477         the "Track number" checkbox actually work for playlists. From #329986.
3479 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3481         * plugins/generic-player/rb-generic-player-source.c:
3482         Get playlist and audio folder information from HAL.  Fixes #333845.
3484 2006-06-18  James Livingston  <doclivingston@gmail.com>
3486         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
3488         * widgets/rb-entry-view.h:
3489         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3490         (rb_entry_view_append_column_custom),
3491         (rb_entry_view_insert_column_custom): add support for inserting custom
3492         columns at arbitrary locations, rather than just appending to the end.
3494         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3495         the playlists "track number" column go at the start, and add a normal
3496         track number column. Fixes #329986.
3498 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
3500         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
3501         a mnemonic conflict.  Add ellipses to the edit button.
3502         * sources/rb-library-source.c:
3503         (rb_library_source_edit_profile_clicked_cb),
3504         (impl_get_config_widget):  Hide dialog separator.  Assign a 
3505         mnemonic widget to the labels. Fixes #344114.
3507 2006-06-18  James Livingston  <doclivingston@gmail.com>
3509         * configure.ac: bump version
3510         * NEWS: add NEWS for 0.9.5
3512 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3514         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
3515         (rb_uri_handle_recursively):
3516         Don't attempt to recurse into directories we can't open.  
3517         Fixes #341485.
3519 2006-06-18  James Livingston  <doclivingston@gmail.com>
3521         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
3523         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
3524         #344610.
3526 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3528         * bindings/python/rb.defs:
3529         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
3530         * shell/rb-shell-player.h:
3531         * shell/rb-shell.c: (rb_shell_play_entry):
3532         Add source parameter to rb_shell_player_play_entry, using the selected
3533         source if not specified.
3535         * shell/rb-play-order.c: (rb_play_order_class_init),
3536         (rb_play_order_finalize), (rb_play_order_query_model_changed),
3537         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
3538         (default_playing_entry_removed):
3539         * shell/rb-play-order.h:
3540         Move entry removal handling back to the row-deleted signal, as we need
3541         the entry to be present in the model.  When changing to the next entry
3542         after the playing entry is deleted, set the new entry as the playing
3543         entry and then sync it to the player in an idle handler, so we don't
3544         end up playing it if it was removed too.
3545         * shell/rb-play-order-queue.c:
3546         (rb_queue_play_order_playing_entry_changed),
3547         (rb_queue_play_order_playing_entry_removed):
3548         Use the playing-entry-removed handler from the play order class,
3549         setting a flag so we don't try to remove the already-removed entry
3550         from the model.
3552         This makes removal of the playing entry from playlists etc. work more
3553         or less correctly for all play orders.  Fixes #344627.
3555 2006-06-17  James Livingston  <doclivingston@gmail.com>
3557         patch by: Elijah Newren  <newren@gmail.com>
3559         * tests/test-rhythmdb.c: fix the build with older versions of check
3560         (again). Fixes #343718.
3562 2006-06-17  James Livingston  <doclivingston@gmail.com>
3564         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
3565         name for capsfilter's "caps" property. Fixes #344968.
3567 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3569         * shell/rb-shell-player.c: (rb_shell_player_playpause):
3570         Don't leak the selected entry list when finding an entry to play.
3572 2006-06-17  James Livingston  <doclivingston@gmail.com>
3574         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
3575         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
3576         as a O(1) one works fine, and it will get called often when the user
3577         deleted multiple tracks. Part of #344922.
3579 2006-06-17  James Livingston  <doclivingston@gmail.com>
3581         * shell/rb-shell-player.c: (rb_shell_player_stop): make
3582         rb_shell_player_stop and rb_shell_player_playpause not mutually
3583         recursive. Fixed #336912.
3585 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3587         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
3588         Treat nested elements inside properties as unknown.  Fixes parsing of
3589         podcast feeds with unescaped HTML in description tags, bug #344532.
3591 2006-06-15  William Jon McCann  <mccann@jhu.edu>
3593         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
3594         when quitting.  Fixes #344875.
3596 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3598         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
3599         Move the playing-entry-removed handling to after the normal entry
3600         delete handling, since we're called after the entry has been removed
3601         from the query model now.  Fixes crashes described in #344627.
3603 2006-06-13  William Jon McCann  <mccann@jhu.edu>
3605         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
3606         (rb_rating_get_rating_from_widget):
3607         * widgets/rb-rating.c: (rb_rating_class_init),
3608         (rb_rating_finalize), (rb_rating_get_property),
3609         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
3610         (rb_rating_button_press_cb):
3611         Don't crash when ratings icons can't be found.  Fixes #344533.
3613 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3615         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
3617 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3619         * Makefile.am:
3620         * configure.ac:
3621         * remote/Makefile.am:
3622         * remote/dbus/Makefile.am:
3623         * remote/dbus/rb-client.c:
3624         * shell/Makefile.am:
3625         New dbus client program providing --play/--next etc. arguments.
3626         Fixes #340863, #155763.
3628 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3630         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
3631         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
3633 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
3635         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
3637         * rhythmdb/rhythmdb-query-model.c:
3638         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
3639         to Library incorrectly
3641 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3643         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
3644         Return input string untouched if gnome_vfs_uri_new returns NULL.
3645         * sources/rb-static-playlist-source.c: (impl_receive_drag),
3646         (rb_static_playlist_source_add_list_uri):
3647         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
3648         URIs don't break it.  Fixes #339033.
3650 2006-06-08  James Livingston  <doclivingston@gmail.com>
3652         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
3653         for sources on the edge (i.e. the queue). Fixes #328409.
3655         * sources/rb-ipod-source.c: fix typo
3657 2006-06-08  James Livingston  <doclivingston@gmail.com>
3659         * configure.ac:
3660         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
3661         --enable-ipod-writing to enable the ipod syncing code.
3663 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3665         * sources/rb-library-source.c: (layout_example_label_update):
3666         add missing comma so we don't generate broken markup.
3668 2006-06-08  James Livingston  <doclivingston@gmail.com>
3670         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
3671         tag-merging with id3v2mux as well as id3mux. From #342330.
3673 2006-06-07  James Livingston  <doclivingston@gmail.com>
3675         * tests/test-rhythmdb.c: #define fail_if for old version of check
3676         which don't have it. Hopefully fixes #343718.
3678 2006-06-07  James Livingston  <doclivingston@gmail.com>
3680         * shell/rb-playlist-manager.c:
3681         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
3682         g_value_array_free with NULL. Fixes #341053.
3684 2006-06-07  James Livingston  <doclivingston@gmail.com>
3686         * shell/rb-playlist-manager.c:
3687         (rb_playlist_manager_playlist_entries_changed),
3688         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
3689         instead of "row-removed", which fixes updating "burn playlist"
3690         sensitivity. Fixes #331119.
3692 2006-06-07  James Livingston  <doclivingston@gmail.com>
3694         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
3695         rather than restarting if the source uses _RETRY and there is an
3696         actual error (like an undecodable stream) rather than it just dropping
3697         out and causing EOS.
3699 2006-06-07  James Livingston  <doclivingston@gmail.com>
3701         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
3702         free the pixbufs if they couldn't be loaded. Fixed #343852.
3704 2006-06-07  James Livingston  <doclivingston@gmail.com>
3706         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
3707         the close button on the dialog work. Fixes #335346.
3709 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3711         * sources/rb-sourcelist-model.c: (path_is_droppable),
3712         (path_is_reorderable):
3713         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
3714         (row_activated_cb), (emit_show_popup), (key_release_cb),
3715         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3716         Ignore group marker rows in the source list.  Fixes #344089, a couple
3717         of other crashers, and some weird UI glitches too.
3719 2006-06-07  James Livingston  <doclivingston@gmail.com>
3721         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
3722         the seeking query fails. This is needed because many gst elements
3723         don't implement the seeking query yet. Should fix 329977.
3725 2006-06-06  James Livingston  <doclivingston@gmail.com>
3727         * configure.ac: bump version for a prerelease, turn on track transfer
3728         by default.
3730         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
3731         ipod transfer stuff, since it has big issues and we'll hopefully land
3732         real support (bug 310774) after 0.9.5
3734 2006-06-06  James Livingston  <doclivingston@gmail.com>
3736         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
3737         id3v2mux once we've detected it.
3739 2006-06-06  James Livingston  <doclivingston@gmail.com>
3741         * lib/Makefile.am:
3742         * tests/test-rhythmdb.c: undo accidental commit which caused
3743         rb-thread.c to be built (which it isn't normally)
3745 2006-06-06  James Livingston  <doclivingston@gmail.com>
3747         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
3748         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
3749         fail_{if/unless} calls, as some versions of check need them (they are
3750         optional in others). Should fix bug 343718.
3752 2006-06-06  James Livingston  <doclivingston@gmail.com>
3754         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
3755         343836.
3756         
3757         * lib/Makefile.am:
3758         * lib/rb-thread.c: (process_actions):
3759         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
3760         tests that don't pass.
3762 2006-06-05  James Livingston  <doclivingston@gmail.com>
3764         * data/glade/Makefile.am:
3765         * data/glade/load-failure.glade:
3766         * data/rhythmbox.schemas: remove the remainder of the old load-failure
3767         dialog.
3769 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3771         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
3772         checked in.
3774 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3776         * bindings/python/rb.defs:
3777         * sources/rb-source.h:
3778         * sources/rb-source.c: (rb_source_class_init),
3779         (rb_source_set_property), (rb_source_get_property),
3780         (rb_sourcelist_group_get_type):
3781         Add 'sourcelist-group' property on the RBSource class, describing how
3782         sources should be grouped in the source list.
3784         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
3785         (rb_sourcelist_model_new), (real_row_is_separator),
3786         (rb_sourcelist_model_is_row_visible),
3787         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
3788         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
3789         (rb_sourcelist_model_row_draggable),
3790         (rb_sourcelist_model_row_inserted_cb),
3791         (rb_sourcelist_model_row_deleted_cb),
3792         (rb_sourcelist_model_get_group_path):
3793         * sources/rb-sourcelist-model.h:
3794         * sources/rb-sourcelist.c: (rb_sourcelist_init),
3795         (rb_sourcelist_append):
3796         Add group marker rows for each sourcelist group, and use these to
3797         insert sources in the right place.  Sort transient sources (DAAP
3798         shares) by name.  Show the group marker rows as separators when the
3799         next visible row is a source.  Make persistant sources (playlists) and
3800         removable sources reorderable using drag and drop, restricting them
3801         within the source groups.
3802         
3803         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
3804         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
3805         * sources/rb-daap-source.c: (rb_daap_source_new):
3806         * sources/rb-ipod-source.c: (rb_ipod_source_new):
3807         * sources/rb-static-playlist-source.c:
3808         (rb_static_playlist_source_new):
3809         * plugins/generic-player/rb-generic-player-source.c:
3810         (rb_generic_player_source_new):
3811         * plugins/generic-player/rb-nokia770-source.c:
3812         (rb_nokia770_source_new):
3813         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
3814         Add source list group information to existing source classes.
3816         Fixes #318754 and #336492.
3818 2006-06-04  James Livingston  <doclivingston@gmail.com>
3820         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
3821         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
3822         win32 build fixes.
3824 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3826         * rhythmdb/rhythmdb-query-model.c:
3827         (rhythmdb_query_model_class_init),
3828         (rhythmdb_query_model_remove_from_main_list):
3829         * rhythmdb/rhythmdb-query-model.h:
3830         Add a new 'post-entry-delete' signal, emitted when the entry has been
3831         removed from the model's data structures.
3833         * shell/rb-play-order.c: (rb_play_order_finalize),
3834         (rb_play_order_query_model_changed),
3835         (rb_play_order_post_entry_delete_cb):
3836         Use the new signal to update the play order, so the queue play order
3837         doesn't try to scroll to entries that don't exist in a way that causes
3838         the tree view to crash.  Fixes #340216.
3840 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3842         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
3843         Fix rb_debug call I missed previously.
3845 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3847         * metadata/rb-metadata-gst.c:
3848         Don't use NULL as the error message for ignored files, as it crashes
3849         with some C libraries.  Fixes #343713.
3851 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3853         * widgets/rb-dialog.c: (rb_error_dialog):
3854         * widgets/rb-dialog.h:
3855         Mark rb_error_dialog as taking printf-like arguments, and use a format
3856         string for the primary message rather than passing in the message
3857         directly.
3859         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
3860         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
3861         (info_available_cb):
3862         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
3863         * shell/rb-removable-media-manager.c:
3864         (rb_removable_media_manager_eject_medium_cb):
3865         Make sure all calls to rb_error_dialog use string constants for the
3866         format string rather than passing the error message directly.  Remove
3867         an extra %s from the message used when playback fails.  Fixes #343562.
3869         * lib/rb-debug.h:
3870         * sources/rb-audiocd-source.c:
3871         * plugins/audioscrobbler/rb-audioscrobbler.c:
3872         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
3873         Mark rb_debug as taking printf-like arguments and fix a few resulting
3874         warnings.
3876 2006-06-02  James Livingston  <doclivingston@gmail.com>
3878         * configure.ac:
3879         + macros/check.m4: add support for using check for unit tests, the .m4
3880         files is so autogen can run without check being installed
3882         * tests/Makefile.am:
3883         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
3884         some of the old tests, and add some new ones. Currently
3885         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
3886         yet (the query doesn't return any entries).
3888         - tests/deserialization-test1.xml:
3889         - tests/deserialization-test2.xml:
3890         - tests/deserialization-test3.xml:
3891         - tests/test-rhythmdb-indexing.c:
3892         - tests/test-rhythmdb-simple.c:
3893         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
3894         have been ported
3896         - tests/test-cd.c:
3897         - tests/test-cmdline.c: remove obsolete tests
3899 2006-06-02  James Livingston  <doclivingston@gmail.com>
3901         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
3902         (rb_add_id3_tagger), (rb_metadata_init): add support for using
3903         id3v2mux, and check whether we are using a version of id3mux that has
3904         the correct merge-mode behaviour.
3906         * plugins/sample-python/Makefile.am: fix distcheck.
3908         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
3909         the changed-files source was added before trying to remove it.
3911         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
3912         *old* bug which would crash if a query with top-level disjunctions
3913         tried to check later disjunctive parts. Hooray for unit-testing.
3915 2006-06-02  William Jon McCann  <mccann@jhu.edu>
3917         * player/rb-recorder-gst.c (rb_recorder_set_device):
3918         Check for a null drive.
3920 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3922         * lib/Makefile.am:
3923         * lib/rb-stock-icons.c: (rb_stock_icons_init):
3924         Register the app icon as a builtin if the icon theme can't find it.
3926 2006-05-31  James Livingston  <doclivingston@gmail.com>
3928         * player/rb-recorder-gst.c: add missing include.
3930 2006-05-30  William Jon McCann  <mccann@jhu.edu>
3932         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
3933         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
3934         (tick_timeout_cb), (rb_recorder_sync_pipeline),
3935         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
3936         (rb_recorder_set_device), (rb_recorder_get_default_device):
3937         * shell/main.c: (main):
3938         * shell/rb-removable-media-manager.c:
3939         (rb_removable_media_manager_finalize),
3940         (get_nautilus_burn_drive_for_path),
3941         (rb_removable_media_manager_playing_uri_changed_cb),
3942         (rb_removable_media_manager_load_media),
3943         (nautilus_burn_drive_get_device),
3944         (rb_removable_media_manager_scan):
3945         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
3947         Update for libnautilus-burn 2.15.3 API changes.
3948         Fixes #342604
3950 2006-05-30  James Livingston  <doclivingston@gmail.com>
3952         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
3953         "return" to that it asks for the password again if it was wrong.
3955 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3957         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
3958         typefind element.
3960 2006-05-30  James Livingston  <doclivingston@gmail.com>
3962         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
3963         (download_progress_cb): don't do wonky things if the transfer
3964         "suceeds" without transferring any data.
3966 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3968         * sources/rb-library-source.c: (layout_example_label_update),
3969         (build_filename):  Fix crash when no audio profile is selected.
3970         Fixes #341447.
3972 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3974         * shell/rb-shell.c: (rb_shell_clear_queue):
3975         * shell/rb-shell.h:
3976         * shell/rb-shell.xml:
3977         * sources/rb-play-queue-source.c:
3978         (rb_play_queue_source_clear_queue),
3979         (rb_play_queue_source_cmd_clear):
3980         * sources/rb-play-queue-source.h:
3981         Add clearQueue dbus method.
3983 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3985         * shell/main.c: (main):  Implement --quit option.
3987 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3989         * rhythmdb/rhythmdb-private.h:
3990         * rhythmdb/rhythmdb-tree.h:
3991         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
3992         (rhythmdb_entry_insert), (rhythmdb_entry_set),
3993         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
3994         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
3995         (rhythmdb_entry_get_boolean):
3996         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
3997         bitmask, giving the db backend anything past the first 16 bits for 
3998         its own private use.
4000         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4001         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
4002         Add a 'loading' flag to indicate that an entry is being loaded from
4003         disk, and use that to ignore entry_set operations on such entries
4004         rather than the 'inserted' flag, which doesn't quite mean the same
4005         thing.  Fixes #342694.
4007 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4009         * shell/rb-shell.xml: Remove visibility property, since it causes
4010         crashes (dbus bug 7057) and doesn't do much else.
4012 2006-05-28  James Livingston  <doclivingston@gmail.com>
4014         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
4016         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4017         * po/POTFILES.in: fix some more i18n issues.
4019 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4021         * bindings/python/rb.defs:
4022         * shell/rb-shell-player.c: (rb_shell_player_playpause),
4023         (filter_mmkeys):
4024         * shell/rb-shell-player.h:
4025         Deprecate the useless 'ignore_stop' parameter to
4026         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
4027         API.  From bug #334829.
4029 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4031         * plugins/generic-player/rb-generic-player-source.c:
4032         (visit_playlist_dirs), (default_transform_playlist_uri):
4033         When playlist parsing fails, unref the playlist, not the parent
4034         source.  Fix memory leak in playlist uri transform.
4035         * plugins/generic-player/rb-nokia770-source.c:
4036         (impl_transform_playlist_uri):
4037         Fix memory leak in playlist uri transform.
4039 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
4041         * doc/reference/Makefile.am: fix grk-doc build
4043 2006-05-27  James Livingston  <doclivingston@gmail.com>
4045         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4047         * plugins/lyrics/lyrics.py:
4048         * po/POTFILES.in: Make strings in plugins translatable. From bug
4049         343081.
4051 2006-05-27  James Livingston  <doclivingston@gmail.com>
4053         * backends/Makefile.am:
4054         * backends/gstreamer/Makefile.am:
4055         * lib/Makefile.am:
4056         * plugins/audioscrobbler/Makefile.am:
4057         * plugins/generic-player/Makefile.am:
4058         * po/POTFILES.in:
4059         * rhythmdb/rhythmdb-monitor.c:
4060         * rhythmdb/rhythmdb.c:
4061         * sources/Makefile.am:
4062         * widgets/Makefile.am: fix compilation after some CVS surgery was
4063         done.
4065 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4067         * bindings/python/rhythmdb.defs:
4068         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
4069         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
4070         (rhythmdb_query_deserialize):
4071         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
4072         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
4073         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
4074         (rhythmdb_entry_register_type_alias),
4075         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
4076         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
4077         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
4078         (rhythmdb_entry_podcast_feed_get_type),
4079         (rhythmdb_entry_import_error_get_type),
4080         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
4081         * rhythmdb/rhythmdb.h:
4082         Allocate a specified amount of extra memory for each db entry, to be
4083         used to store fields specific to the entry type.  Optionally associate
4084         a name with each entry type, to be used when saving entries and
4085         auto playlists to disk.  Allow entry types to have multiple names
4086         to handle older playlist files that used '0' to represent 'song'.
4087         Use private data to store podcast fields.
4089         * rhythmdb/rhythmdb-private.h:
4090         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4091         (rhythmdb_tree_parser_end_element), (save_entry),
4092         (rhythmdb_tree_entry_set):
4093         Simplify property handling by using existing code to convert
4094         properties from strings to GValues and to set properties on entries.
4095         Other assorted changes due to the above.
4097         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4098         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
4099         * sources/rb-generic-player-source.c:
4100         (rb_generic_player_source_new):
4101         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4102         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
4103         * sources/rb-psp-source.c: (rb_psp_source_new):
4104         Update for changes to rhythmdb_entry_register_type.  None of these
4105         entry types need names or use private data.
4107         Fixes #337429.
4109 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4111         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
4112         Fix creation of ignored-file db entries - need to check for
4113         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
4115 2006-05-25  James Livingston  <doclivingston@gmail.com>
4117         * AUTHORS:
4118         * MAINTAINERS: update my email address
4120 2006-05-25  James Livingston  <doclivingston@gmail.com>
4122         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
4123         "(... mix)" when searching for lyrics. Cache the lyrics under
4124         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
4126 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4128         * sources/rb-import-errors-source.c:
4129         (rb_import_errors_source_class_init):
4130         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
4131         * sources/rb-browser-source.c: (rb_browser_source_class_init):
4132         * sources/rb-source.c: (rb_source_class_init),
4133         (default_move_to_trash):
4134         Implement the basic move-to-trash operation once in rb-source.c, 
4135         rather than in each source type that supports it.
4137         * plugins/ipod/rb-ipod-plugin.c:
4138         * shell/rb-removable-media-manager.c:
4139         * shell/rb-shell.c: (rb_shell_constructor):
4140         Only scan removable media once after loading plugins.  Add a flag
4141         plugins can use to check if the initial scan has been done.
4143         * data/rhythmbox.schemas:
4144         Enable ipod and generic-player plugins by default.
4145         
4146         * configure.ac:
4147         * data/ui/Makefile.am:
4148         * data/ui/generic-player-ui.xml:
4149         * data/ui/rhythmbox-ui.xml:
4150         * plugins/Makefile.am:
4151         * plugins/generic-player/Makefile.am:
4152         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
4153         * plugins/generic-player/rb-generic-player-plugin.c:
4154         * sources/Makefile.am:
4155         * sources/rb-generic-player-source.c:
4156         * sources/rb-generic-player-source.h:
4157         * sources/rb-nokia770-source.c:
4158         * sources/rb-nokia770-source.h:
4159         * sources/rb-psp-source.c: (visit_playlist_dirs):
4160         * sources/rb-psp-source.h:
4161         Pluginise generic player (and nokia770 and PSP) support and add
4162         move-to-trash for players not mounted read-only.
4163         Fixes #342868.
4165 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4167         * daapsharing/rb-daap-connection.c (handle_song_listing):
4168         Lower bound check for batch commit.  Fixes #342848
4170         * sources/rb-daap-source.c (rb_daap_source_get_status):
4171         Always set output variables if provided.
4173 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4175         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
4176         (rhythmdb_tree_entry_delete), (remove_one_song):
4177         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
4178         Fix two db entry reference counting problems.
4179         The initial reference on the entry is held by the db backend, but it
4180         was never being dropped.  The reference count was incremented when
4181         adding an entry to the deleted_entries map and to the
4182         deleted_entries_to_emit list, but only decremented for one of those.
4184 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4186         * daapsharing/rb-daap-connection.c (http_response_handler) 
4187         (rb_daap_connection_dispose):
4188         Call soup_session_abort to make sure there are no outstanding
4189         requests when we dispose of the connection.  Ignore cancelled
4190         messages in the callback.
4192 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4194         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
4195         (rb_daap_source_disconnect): Set a flag when disconnecting
4196         the source.  Check this flag in connection callback
4197         to see if we should release the connection.
4199 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4201         * daapsharing/Makefile.am:
4202         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
4203         (rb_daap_connection_class_init), (connection_connected),
4204         (connection_disconnected), (connection_operation_done),
4205         (build_message), (connection_set_error_message),
4206         (actual_http_response_handler), (http_get),
4207         (entry_set_string_prop), (emit_progress_idle),
4208         (handle_server_info), (handle_login), (handle_update),
4209         (handle_database_info), (handle_song_listing), (handle_playlists),
4210         (handle_playlist_entries), (handle_logout),
4211         (rb_daap_connection_new), (rb_daap_connection_is_connected),
4212         (connection_response_data_free), (connected_cb),
4213         (rb_daap_connection_connect), (disconnected_cb),
4214         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
4215         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
4216         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
4217         (rb_daap_connection_get_property):
4218         * daapsharing/rb-daap-connection.h:
4219         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
4220         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
4221         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
4222         (rb_daap_hash_generate):
4223         * daapsharing/rb-daap-hash.h:
4224         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4225         (rb_daap_get_icon), (remove_source), (stop_browsing),
4226         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
4227         (connection_connecting_cb), (connection_disconnected_cb),
4228         (release_connection), (rb_daap_source_connection_cb),
4229         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
4230         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
4232         Adds a better async API for connect and disconnect.  Doesn't share
4233         callback data for every async call.  Adds a connect signal.  Uses
4234         an operation-done signal to trigger the callbacks.  Displays an
4235         error when connections fail.  A few refcounting fixes to fix
4236         crashes.  Uses a weak pointer to set the connection to NULL so we
4237         don't clobber references.  Wait for each disconnect when shutting
4238         down sources.  Split out DAAP hash stuff into its own file.  Fix
4239         typo in header.
4241         Fixes #342643
4242         
4243 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4245         * sources/rb-auto-playlist-source.c:
4246         (rb_auto_playlist_source_new_from_xml):
4247         Initialize the gvalue used to hold the size limit correctly.
4248         Fixes #342744.
4250 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4252         * shell/rb-shell.c: (rb_shell_window_delete_cb),
4253         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
4254         * shell/rb-shell.h:
4255         * shell/rb-shell.xml:
4256         Convert rb_shell_quit into a dbus method, and add visibility dbus
4257         property.
4259 2006-05-22  James Livingston  <doclivingston@gmail.com>
4261         * rhythmdb/rhythmdb.h:
4262         * rhythmdb/rhythmdb.c: (sync_entry_changed),
4263         (rhythmdb_entry_is_editable), (action_thread_main),
4264         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
4265         vfuncs for can_sync_metadata, and sync_metadata. The default is always
4266         false, and syncing into the file.
4268         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
4269         (rhythmdb_entry_iradio_get_type),
4270         (rhythmdb_entry_import_error_get_type):
4271         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
4272         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
4273         change the DB.
4275 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4277         * rhythmdb/Makefile.am:
4278         * rhythmdb/rhythmdb-monitor.c:
4279         * rhythmdb/rhythmdb-private.h:
4280         * rhythmdb/rhythmdb-query.c:
4281         * rhythmdb/rhythmdb.c:
4282         Split up rhythmdb.c a bit.
4284 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4286         * data/glade/audioscrobbler-prefs.glade:
4287         Add a link to the last.fm server status page.
4289 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4291         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
4292         Capitalization fix.
4293         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
4294         (impl_create_configure_dialog):  UI layout fixes, remove
4295         dialog separator, and capitalization fix for window title.
4296         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
4297         and remove dialog separator.
4298         * data/glade/plugins.glade:  UI layout fixes.
4299         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
4300         and capitalization fix.  Fixes #342438.
4302 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4304         * data/glade/podcast-properties.glade:  Fix layout of the download 
4305         location.  Fixes #342431.
4307 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4309         * data/ui/rhythmbox-ui.xml:
4310         We only need one copy of the 'add to queue' action in the edit menu.
4312 2006-05-20  James Livingston  <doclivingston@gmail.com>
4314         * data/ui/rhythmbox-ui.xml:
4315         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
4316         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
4317         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
4318         (rb_shell_clipboard_sync),
4319         (rb_shell_clipboard_cmd_add_to_playlist_new),
4320         (rb_shell_clipboard_cmd_queue_song_info),
4321         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
4322         (rb_shell_clipboard_playlist_deleted_cb),
4323         (rb_shell_clipboard_playlist_renamed_cb),
4324         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
4325         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
4326         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
4327         dynamically generated with all the static playlists. Fixes bug 323364.
4329         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
4330         right child, so it doesn't go weird when art appears and disappears.
4332 2006-05-20  James Livingston  <doclivingston@gmail.com>
4334         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
4336         * rhythmdb/rhythmdb-query-model.c:
4337         (rhythmdb_query_model_set_property),
4338         (rhythmdb_query_model_finalize),
4339         (rhythmdb_query_model_reapply_query_cb):
4340         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
4341         (rhythmdb_query_append_prop_multiple),
4342         (rhythmdb_query_is_time_relative):
4343         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
4344         time-based criteria, fixes bug 341131.
4346 2006-05-20  James Livingston  <doclivingston@gmail.com>
4348         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
4349         we have already changed playing entries. Interpolate the art size so
4350         it doesn't jump when the old and new images have different aspect
4351         ratios.
4353 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4355         * rhythmdb/rhythmdb-private.h:
4356         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4357         (save_entry):
4358         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
4359         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
4360         (rhythmdb_entry_get_ulong):
4361         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
4362         and elsewhere, use them on the stack rather than allocating on 
4363         the heap.  From bug #342333.
4365 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4367         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
4368         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
4369         (add_track), (eos_cb), (error_signal_idle),
4370         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
4371         (rb_recorder_construct), (recorder_track_free),
4372         (rb_recorder_finalize):
4373         * sources/rb-playlist-source-recorder.c:
4374         Support libnautilus-burn size -> capacity API change.  Add
4375         some braces to blocks.
4377 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4379         * metadata/sj-metadata-musicbrainz.c:
4380         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
4381         Sync with sound-juicer in CVS.  Fixes #342177
4382         * sources/rb-audiocd-source.c: Don't declare variables
4383         in the middle of a block (c99ism).  Fix order of #includes.
4384         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
4385         one variable per line.  Update copyright date.
4387 2006-05-19  James Livingston  <doclivingston@gmail.com>
4389         patch by: Hendrik Richter  <hendi@gnome-de.org>
4391         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
4392         "translator_credits" to a hyphen, so it doesn't cause problems for
4393         tools that check access keys. Fixes bug 341832.
4395 2006-05-19  James Livingston  <doclivingston@gmail.com>
4397         * po/POTFILES.in: remove references to files that don't exist any more
4398         (fixes make distcheck).
4400 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
4402         * plugins/lyrics/lyrics.py:  Fix layout close button in 
4403         Song Lyrics dialog. Fixes bug 342322.
4405 2006-05-19  James Livingston  <doclivingston@gmail.com>
4407         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
4409         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
4410         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
4411         version checks not break when libnotify goes to 1.0.0. Fixes bug
4412         342244.
4414 2006-05-18  James Livingston  <doclivingston@gmail.com>
4416         * shell/rb-shell-clipboard.c:
4417         * shell/rb-shell.c:
4418         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
4420 2006-05-17  William Jon McCann  <mccann@jhu.edu>
4422         * sources/rb-playlist-source-recorder.c (get_song_description):
4423         Reverse artist and title in song description.  This
4424         is useful because at least the title will be visible
4425         when there is limited space.
4427 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4429         * daapsharing/rb-daap-connection.c: (connection_get_password):
4430         Take gdk lock before emitting authenticate signal.
4431         * sources/rb-daap-source.c: (connection_connecting_cb):
4432         Get rid of the unnecessary idle handler (it's already called from one)
4433         Fixes #342047 once more.
4435 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4437         * shell/rb-shell.c: (rb_shell_class_init):
4438         * shell/rb-shell.h:
4439         * widgets/rb-song-info.c: (rb_song_info_class_init),
4440         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
4441         (rb_song_info_constructor), (rb_song_info_get_property),
4442         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
4443         (rb_song_info_forward_clicked_cb):
4444         * widgets/rb-song-info.h:
4445         * data/glade/song-info-multiple.glade:
4446         * lib/rb-marshal.list:
4447         * bindings/python/Makefile.am:
4448         * bindings/python/rb.defs:
4449         * bindings/python/rb.override:
4450         Allow plugins to add pages to the notebooks used in song info windows,
4451         and to track the current song displayed in single-entry windows.
4452         
4453         * configure.ac:
4454         * plugins/Makefile.am:
4455         * plugins/lyrics/Loader.py:
4456         * plugins/lyrics/Makefile.am:
4457         * plugins/lyrics/lyrics.py:
4458         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
4459         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
4460         as a separate window (for the playing song) or as a page in the song
4461         info window.  A few TODO items left, but this fixes #319320.
4463 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4465         Patch by:  Roozbeh Pournader
4467         * configure.ac:
4468         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
4469         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
4471 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4472         
4473         * sources/rb-daap-source.c: (update_connection_status):
4474         Correct return value.  Fixes #342047 again.
4476 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4478         * sources/rb-daap-source.c: (update_connection_status),
4479         (connection_connecting_cb):
4480         Update status in an idle handler so we don't rely on the gdk lock
4481         being recursive (because it isn't any more).  Fixes #342047.
4483 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4485         * lib/rb-util.c: (rb_make_duration_string),
4486         (rb_make_elapsed_time_string):
4487         * lib/rb-util.h:
4488         Add a function for formatting an elapsed time string.
4490         * shell/rb-shell-player.c: (rb_shell_player_init),
4491         (rb_shell_player_sync_with_source),
4492         (rb_shell_player_get_playing_time_string), (tick_cb):
4493         Store elapsed time in the private data structure, and use the above
4494         function.
4495         
4496         * widgets/rb-header.c:
4497         * widgets/rb-header.h:
4498         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
4499         object, so everything has the same idea of the elapsed time.
4500         Fixes #339693.
4502 2006-05-16  James Livingston  <doclivingston@gmail.com>
4504         * bindings/python/rhythmdb.defs:
4505         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
4506         some parametre defaults, so you don't have to pass None, False for the
4507         sorting order.
4509 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4511         * bindings/python/rhythmdb.defs:
4512         * rhythmdb/rhythmdb-query-model.c:
4513         (rhythmdb_query_model_compute_status_normal):
4514         * rhythmdb/rhythmdb-query-model.h:
4515         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
4516         * rhythmdb/rhythmdb.h:
4517         Change the various compute_status methods to accept a singular/plural
4518         pair to use in the status string.
4519         
4520         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4521         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
4522         * sources/rb-source.c: (default_get_status):
4523         Call entries 'songs' by default, and 'episodes' in the podcast source.
4524         Fixes #340227.
4526 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4528         patch by:  Paul Drain
4530         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
4531         Fixes #341817.
4533 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4535         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
4536         Generate reorder maps correctly.
4537         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
4538         Scroll to the first entry from the old selection.
4539         Fixes #322992.
4541 2006-05-15  William Jon McCann  <mccann@jhu.edu>
4543         * data/ui/rhythmbox-ui.xml:
4544         * lib/rb-preferences.h:
4545         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4546         (rb_shell_playlist_created_cb),
4547         (rb_shell_view_sidepane_changed_cb),
4548         (rb_shell_sync_sidepane_visibility),
4549         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
4550         (sidepane_visibility_changed_cb):
4551         * sources/rb-podcast-source.c:
4552         Convert sourcelist visibility to side-pane visbility.
4553         Fixes #339733
4555 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4557         * widgets/rb-header.c:
4558         * widgets/rb-header.h: Stop RBHeader from referring to itself as
4559         'player', and make it use the private data structure allocated for it.
4561 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4563         * configure.ac: enable metadata helper with dbus < 0.35.
4565 2006-05-15  James Livingston  <doclivingston@gmail.com>
4567         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4569         * data/glade/song-info.glade:
4570         * widgets/rb-song-info.c: (rb_song_info_construct_single),
4571         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
4572         (rb_song_info_update_filesize): Add the file size into the song info
4573         window. Fixes bug 340861.
4575 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4577         * bindings/python/rhythmdb.defs:
4578         * rhythmdb/rhythmdb-query-model.c:
4579         (rhythmdb_query_model_set_property),
4580         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
4581         * rhythmdb/rhythmdb-query-model.h:
4582         Add a new method to chain query models without importing entries from
4583         the parent into the child.  This is useful when the subset of entries
4584         in the child can be more easily determined by running a query than by
4585         filtering entries from the parent.
4587         * bindings/python/rb.defs:
4588         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4589         (rb_library_browser_set_property),
4590         (rb_library_browser_get_property), (rb_library_browser_new),
4591         (rebuild_child_model):
4592         * widgets/rb-library-browser.h:
4593         * sources/rb-auto-playlist-source.c:
4594         (rb_auto_playlist_source_constructor):
4595         * sources/rb-static-playlist-source.c:
4596         (rb_static_playlist_source_constructor):
4597         * sources/rb-browser-source.c: (rb_browser_source_constructor):
4598         Use more efficient queries for constructing the browser query model
4599         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
4600         backend to optimise the query) and run new queries rather than
4601         filtering entries from the parent.  Fixes #341402.
4603         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
4605 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4607         * configure.ac:
4608         * shell/Makefile.am:
4609         * shell/main.c: (main), (load_uri_args), (send_present_message),
4610         (unregister_dbus_handler), (handle_dbus_message),
4611         (register_dbus_handler):
4612         Add minimal support for dbus 0.31 - 0.35.
4614         * doc/reference/Makefile.am:
4615         * doc/reference/rhythmbox.types:
4616         * data/Makefile.am:
4617         * data/GNOME_Rhythmbox.server.in:
4618         * data/rhythmbox.pc.in:
4619         * remote/*:
4620         * remote/bonobo/*:
4621         Remove remaining bonobo and generic remote interface files.
4623 2006-05-14  James Livingston  <doclivingston@gmail.com>
4625         * shell/rb-shell.c: (construct_widgets):
4626         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
4627         resize the browser and queue-sidebar section of their panes, unless
4628         the other section is below the minimum size. Fixes bug 331927.
4630 2006-05-13  James Livingston  <doclivingston@gmail.com>
4632         * rhythmdb/rhythmdb-query-model.c:
4633         (rhythmdb_query_model_class_init),
4634         (rhythmdb_query_model_set_property),
4635         (rhythmdb_query_model_get_property),
4636         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
4637         (rhythmdb_query_model_insert_into_main_list),
4638         (rhythmdb_query_model_insert_into_limited_list),
4639         (rhythmdb_query_model_do_reorder),
4640         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
4641         (rhythmdb_query_model_location_sort_func),
4642         (rhythmdb_query_model_title_sort_func),
4643         (rhythmdb_query_model_album_sort_func),
4644         (rhythmdb_query_model_artist_sort_func),
4645         (rhythmdb_query_model_genre_sort_func),
4646         (rhythmdb_query_model_track_sort_func),
4647         (rhythmdb_query_model_double_ceiling_sort_func),
4648         (rhythmdb_query_model_ulong_sort_func),
4649         (rhythmdb_query_model_date_sort_func),
4650         (rhythmdb_query_model_string_sort_func):
4651         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
4652         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
4653         "data destroy" property. Fixed bug 341543.
4655         * bindings/python/rhythmdb.defs:
4656         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
4657         rhythmdb_query_model_set_sorting_order
4659         * rhythmdb/rhythmdb-property-model.c:
4660         (rhythmdb_property_model_drag_data_get):
4661         * sources/rb-import-errors-source.c:
4662         (rb_import_errors_source_constructor):
4663         * sources/rb-missing-files-source.c:
4664         (rb_missing_files_source_constructor):
4665         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
4666         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
4667         * widgets/rb-entry-view.h: adapt to the above change.
4669 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4671         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4672         (rhythmdb_tree_load):
4673         Commit loaded entries in batches, rather than individually.  
4674         More startup time reduction.
4676 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
4678         * doc/reference/Makefile.am: fix gtk-doc compilation
4680 2006-05-12  William Jon McCann  <mccann@jhu.edu>
4682         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4683         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4684         * plugins/artdisplay/artdisplay/Loader.py:
4685         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
4686         Only call the first artist the best match when album==Unknown.
4687         Don't perform each query twice if album doesn't include "Vol N".
4688         Fix searching for compilations.  Fix blacklisting.
4689         Part of bug #307848
4691 2006-05-12  William Jon McCann  <mccann@jhu.edu>
4693         * Makefile.am:
4694         * bindings/python/Makefile.am:
4695         * bindings/python/rb.defs:
4696         * bindings/python/rb.override:
4697         * configure.ac:
4698         * doc/reference/Makefile.am:
4699         * plugins/Makefile.am:
4700         * plugins/audioscrobbler/Makefile.am:
4701         * plugins/ipod/Makefile.am:
4702         * plugins/lirc/Makefile.am:
4703         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
4704         (impl_activate), (impl_deactivate):
4705         * plugins/sample/Makefile.am:
4706         * remote/Makefile.am:
4707         * shell/Makefile.am:
4708         * shell/main.c: (main), (main_shell_weak_ref_cb):
4709         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
4710         (rb_shell_get_property), (rb_shell_window_state_cb),
4711         (idle_hide_mainwindow), (rb_shell_set_visibility),
4712         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
4713         (rb_shell_set_song_property):
4714         * shell/rb-shell.h:
4715         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
4716         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
4717         (rb_tray_icon_get_property), (rb_tray_icon_new),
4718         (rb_tray_icon_button_press_event_cb),
4719         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
4720         (rb_tray_icon_show_window_changed_cb):
4721         * shell/rb-tray-icon.h:
4723         Remove bonobo, require DBUS.
4724         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
4725         Fixes #339720
4727 2006-05-13  James Livingston  <doclivingston@gmail.com>
4729         * bindings/python/rb.override: fix some pointer-type warnings
4731 2006-05-12  James Livingston  <doclivingston@gmail.com>
4733         * lib/rb-util.c: (rb_value_free):
4734         * lib/rb-util.h: Add function to unset and free a GValue* that was
4735         allocated in the heap.
4737         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
4738         the metadata hastable values
4739         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
4740         leak the metadata hashtable structure
4741         * metadata/rb-metadata-dbus.c:
4742         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
4743         using g_strdup and then _take_string
4745         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
4746         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
4747         stat something.
4749         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
4750         leak the encoded string
4752         * widgets/rb-property-view.c:
4753         (rb_property_view_selection_changed_cb): set some variables to have
4754         inital values, because some code paths may not set them before we use
4755         them.
4757         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
4758         don't have python warning into a debug message".
4760 2006-05-10  William Jon McCann  <mccann@jhu.edu>
4762         * data/rhythmbox.schemas: Use zero instead of null for
4763         default burn speed.  Fixes #341283.
4765 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4767         * bindings/python/rb.defs:
4768         * widgets/rb-library-browser.c:
4769         (rb_library_browser_get_property_view):
4770         * widgets/rb-library-browser.h:
4771         Add a method to get the property view for a given property.
4773         * sources/rb-browser-source.c:
4774         (rb_browser_source_cmd_choose_genre),
4775         (rb_browser_source_cmd_choose_artist),
4776         (rb_browser_source_cmd_choose_album):
4777         Change the browser selection by changing the property view selection. 
4778         Makes the selection change visible, fixing #331740.
4780 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4782         * bindings/python/rb.defs:
4783         * bindings/python/rb.override:
4784         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
4785         * shell/rb-statusbar.c: (*),
4786         * sources/rb-import-errors-source.c: (impl_get_status):
4787         * sources/rb-iradio-source.c: (impl_get_status):
4788         * sources/rb-missing-files-source.c: (impl_get_status):
4789         * sources/rb-source.c: (default_get_status),
4790         (rb_source_get_status):
4791         * sources/rb-source.h:
4792         Allow sources to provide a progress value for the status bar.
4793         Simplify status bar processing (much less polling).
4794         Consider rhythmdb busy while it's still loading the database.
4796         * daapsharing/rb-daap-connection.c: (*)
4797         * daapsharing/rb-daap-connection.h:
4798         * lib/rb-marshal.list:
4799         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4800         (rb_daap_source_init), (connection_connecting_cb),
4801         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
4802         (rb_daap_source_get_status):
4803         Provide status information for DAAP connections, and move processing
4804         of large responses into a separate thread.
4805         Fixes bugs #322020 and #338978.
4807 2006-05-09  James Livingston  <doclivingston@gmail.com>
4809         Split the artdisplay plugin into several files.
4810         Fix loader and amazon-search re-use issues.
4811         Add some better search heuristics.
4813         * configure.ac:
4814         * plugins/artdisplay/Makefile.am:
4815         * plugins/artdisplay/artdisplay.py:
4816         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4817         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4818         * plugins/artdisplay/artdisplay/Loader.py:
4819         * plugins/artdisplay/artdisplay/Makefile.am:
4820         * plugins/artdisplay/artdisplay/__init__.py:
4822 2006-05-09  James Livingston  <doclivingston@gmail.com>
4824         * sources/rb-browser-source.h: remove the _has_first_added_column
4825         stuff since it isn't actually used anywhere. Sources that want it
4826         should just add it themselves, as the library already does
4828         * bindings/python/rb.defs:
4829         * sources/rb-daap-source.c: (rb_daap_source_class_init):
4830         * sources/rb-library-source.c: (rb_library_source_class_init):
4831         * sources/rb-removable-media-source.c:
4832         (rb_removable_media_source_class_init): Remove the remanants of the
4833         above.
4835 2006-05-09  James Livingston  <doclivingston@gmail.com>
4837         * bindings/python/rb.defs:
4838         * sources/rb-browser-source.h: remove a function that was declared in
4839         the header, but not defined anywhere.
4841 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4843         * plugins/artdisplay/.cvsignore:
4844         * plugins/ipod/.cvsignore: Added.
4846 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4848         * sources/rb-auto-playlist-source.c:
4849         (rb_auto_playlist_source_new_from_xml):
4850         Fix reading of older playlist files where all three limits were
4851         specified so we take the first nonzero limit.  From #341053.
4853 2006-05-09  James Livingston  <doclivingston@gmail.com>
4855         * bindings/python/Makefile.am:
4856         * bindings/python/rb.defs:
4857         * bindings/python/rb.override: bind RBBrowserSource,
4858         RBRemovableMediaSource and RBRemovableMediamanager.
4860 2006-05-09  James Livingston  <doclivingston@gmail.com>
4862         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
4864         * data/glade/plugins.glade: make the plugin dialog look a bit better.
4865         Fixes bug 339221.
4867 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4869         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
4870         Don't explode when trying to edit a query with no limit set.
4872 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4874         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
4875         Clear the should_queue flag when switching to a non-submittable entry,
4876         so we don't submit songs that played for three seconds before
4877         switching to a podcast episode.
4879         * rhythmdb/rhythmdb-query-model.c
4880         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
4881         in the drag data list.
4883 2006-05-08  James Livingston  <doclivingston@gmail.com>
4885         * lib/rb-util.c: (rb_value_array_append_data):
4886         * lib/rb-util.h: add function which is basically a combination of
4887         G_VALUE_COLLECT and g_value_array_append.
4889         * rhythmdb/rhythmdb-query-model.h:
4890         * rhythmdb/rhythmdb-query-model.c:
4891         (rhythmdb_query_model_class_init),
4892         (rhythmdb_query_model_set_property),
4893         (rhythmdb_query_model_get_property),
4894         (rhythmdb_query_model_finalize),
4895         (rhythmdb_query_model_update_limited_entries),
4896         (rhythmdb_query_model_set_sort_order),
4897         (rhythmdb_query_model_within_limit),
4898         (rhythmdb_query_model_limit_type_get_type): Make query model limits
4899         saner. Rather than having <count=N, time=N, size=N> we now have a
4900         <type, value> pair. This will also make it much easier to add new
4901         limit types in the future.
4903         * shell/rb-playlist-manager.c:
4904         (rb_playlist_manager_set_automatic_playlist),
4905         (rb_playlist_manager_cmd_edit_automatic_playlist):
4906         * sources/rb-auto-playlist-source.c:
4907         (rb_auto_playlist_source_finalize),
4908         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
4909         (_save_write_ulong), (_save_write_uint64),
4910         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
4911         (rb_auto_playlist_source_set_query),
4912         (rb_auto_playlist_source_get_query):
4913         * sources/rb-auto-playlist-source.h:
4914         * sources/rb-library-source.c:
4915         (rb_library_source_add_child_source):
4916         * sources/rb-psp-source.c: (visit_playlist_dirs):
4917         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
4918         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
4919         * widgets/rb-query-creator.h: Adapt to the above change.
4921 2006-05-08  James Livingston  <doclivingston@gmail.com>
4923         * shell/rb-playlist-manager.c:
4924         (rb_playlist_manager_cmd_edit_automatic_playlist):
4925         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
4926         (rb_auto_playlist_source_set_query),
4927         (rb_auto_playlist_source_get_query): copy the query in the _get method
4928         and free it in things calling that. Fixes a crasher.
4930 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4932         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
4933         Make entries on newly mounted volumes visible immediately, hiding them
4934         later if they turn out to be missing.  Fixes #340068.
4936 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4938         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
4939         Ignore zip files and ignore errors for files we've decided to ignore.
4941 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4943         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
4944         Add missing }, should fix #340844.
4946 2006-05-06  James Livingston  <doclivingston@gmail.com>
4948         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
4949         typo.
4951 2006-05-06  James Livingston  <doclivingston@gmail.com>
4953         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
4954         that we work with libnotify >= 0.4
4956 2006-05-06  James Livingston  <doclivingston@gmail.com>
4958         patch by: Joe Barnett  <thejoe@gmail.com>
4960         * configure.ac: check if we're using a version of libgpod that
4961         supports the Motorola ROKR
4963         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
4964         for the db path, if we using the newer version.
4966         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
4968 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4970         * rhythmdb/rhythmdb-query-model.c:
4971         (rhythmdb_query_model_drag_data_get):
4972         Use playback URI, not location, for drag data.  Fixes #322597.
4974 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
4976         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
4978 2006-05-03  James Livingston  <doclivingston@gmail.com>
4980         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
4981         (rb_add_id3_tagger), (rb_metadata_save):
4982         Set the tags on the tagging element when it is
4983         created, not during pipeline creation - which is required for
4984         dynamically created elements.
4986         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
4987         support for using the "vorbistag" element to re-tag ogg vorbis files.
4988         Fixes bug 339878.
4990 2006-05-03  James Livingston  <doclivingston@gmail.com>
4992         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
4994         * plugins/artdisplay/artdisplay.py:
4995         - Fix small bug callback of data loader getting overwritten on fast
4996         connections.
4997         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
4998         Jonathan Matthew)
4999         - Fix Rhythmbox UI blocking while loading/searching cover art
5000         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
5001         - Initial approach to allow additional "art search engines"
5002         - Further modularization in a couple of places
5003         - Minor fixes for empty entries (iradio, album, artist etc.)
5005 2006-05-03  James Livingston  <doclivingston@gmail.com>
5007         * shell/rb-playlist-manager.c:
5008         (rb_playlist_manager_playlist_entries_changed),
5009         (rb_playlist_manager_set_source): don't show the edit/delete/rename
5010         options for non-local sources, rather than showing disabled ones.
5012         * sources/rb-library-source.c: (add_child_sources_idle),
5013         (rb_library_source_constructor), (rb_library_source_new),
5014         (rb_library_source_library_location_changed),
5015         (rb_library_source_add_child_source),
5016         (rb_library_source_sync_child_sources): Create "child library" sources
5017         when the user has multiple library locations set. Fixes bug 100552.
5019 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5021         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
5022         * plugins/sample/sample.rb-plugin.desktop.in:
5023         Finish changing 'Author' to 'Authors'
5024         
5025         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
5026         (rhythmdb_entry_import_error_get_type):
5027         Implement get_playback_uri for import errors (returns NULL)
5029         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
5030         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
5031         entry, rather than doing entry type checks.
5033 2006-05-02  James Livingston  <doclivingston@gmail.com>
5035         patch from Alessandro Decina  <alessandro@nnva.org>
5037         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
5038         the signal emission in the case of fatal-on-init errors. From bug
5039         322268.
5041 2006-05-02  James Livingston  <doclivingston@gmail.com>
5043         * rhythmdb/rhythmdb.h:
5044         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
5045         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
5046         (rhythmdb_entry_podcast_post_get_type),
5047         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
5048         virtual function to entry-types for getting the playback URI. From bug
5049         330226.
5051         * backends/gstreamer/rb-encoder-gst.c:
5052         (create_pipeline_and_source), (extract_track):
5053         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
5054         to get the URI.
5056 2006-05-02  James Livingston  <doclivingston@gmail.com>
5058         patch by: Brian Cameron  <brian.cameron@sun.com>
5060         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
5061         340337.
5063 2006-05-01  William Jon McCann  <mccann@jhu.edu>
5065         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
5066         instead of clear.  Use regex matching to strip "disc N"
5067         from album.  Match titles in ProductName.  Perform
5068         fallback queries including various artist compilations.
5069         Include "us" locale.  Improve queries when artist or album
5070         is unknown.  Use medium size image if large is unavailable.
5072         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
5073         William Jon McCann  <mccann@jhu.edu>
5074         
5075 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5077         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
5078         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
5079         (conjunctive_query): Sanity check.
5080         (evaluate_conjunctive_subquery): 
5081         Don't return TRUE immediately when a relative-time query criterion
5082         matches.  Fixes #339972.
5084 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5086         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5087         Don't crash if primary or secondary are NULL.
5089 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5091         * doc/reference/Makefile.am: fix gtk-doc build yet again
5093 2006-04-28  James Livingston  <doclivingston@gmail.com>
5095         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
5096         python console. Fixes bug 339934.
5098 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5100         * rhythmdb/rhythmdb-property-model.c:
5101         (rhythmdb_property_model_drag_data_get):
5102         When creating uri list drag data, create a new query model based on
5103         the query model the property model is attached to.  Makes the
5104         resulting query use the right entry type and include the upstream
5105         query criteria.  Fixes half of #327540.
5107 2006-04-27  James Livingston  <doclivingston@gmail.com>
5109         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
5110         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
5111         build fixes.
5113 2006-04-27  James Livingston  <doclivingston@gmail.com>
5115         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
5117 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5119         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
5120         (rb_playlist_manager_save_data),
5121         (rb_playlist_manager_save_playlists):
5122         * shell/rb-playlist-manager.h:
5123         * shell/rb-shell.c: (rb_shell_sync_state),
5124         (idle_save_playlist_manager):
5125         Remove a bit more threading insanity from the playlist manager.
5127 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5129         * shell/rb-playlist-manager.c: 
5130         * shell/rb-playlist-manager.h:
5131         Remove dead code, add gtk-doc, remove threading insanity (mostly).
5132         
5133         * shell/rb-shell.c: (rb_shell_sync_state),
5134         (idle_save_playlist_manager), (construct_sources),
5135         (rb_shell_select_source), (rb_shell_sync_party_mode):
5136         Adjustments for above changes.
5138 2006-04-26  William Jon McCann  <mccann@jhu.edu>
5140         * sources/rb-browser-source.c (impl_browser_toggled):
5141         Reset browser when hidden.  Fixes #339617.
5143 2006-04-26  James Livingston  <doclivingston@gmail.com>
5145         * backends/Makefile.am:
5146         * backends/gstreamer/Makefile.am: work again with separated
5147         built-roots
5149 2006-04-26  James Livingston  <doclivingston@gmail.com>
5151         * shell/rb-removable-media-manager.c:
5152         (rb_removable_media_manager_set_uimanager): fix compilation with
5153         -Werror and --enable-track-transfer.
5155 2006-04-26  James Livingston  <doclivingston@gmail.com>
5157         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
5158         implementing class. In theory allows alternate player implementations
5159         to be selected at run-time rather than compile-time. Fixes bug 338667.
5161         * Makefile.am:
5162         * backends/Makefile.am:
5163         * backends/gstreamer/Makefile.am:
5164         * backends/gstreamer/rb-player-gst.h:
5165         * backends/rb-player.c: (rb_player_interface_init),
5166         (rb_player_get_type), (rb_player_open), (rb_player_opened),
5167         (rb_player_close), (rb_player_play), (rb_player_pause),
5168         (rb_player_playing), (rb_player_set_volume),
5169         (rb_player_get_volume), (rb_player_set_replaygain),
5170         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
5171         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
5172         (_rb_player_emit_buffering), (_rb_player_emit_error),
5173         (_rb_player_emit_tick), (rb_player_error_quark):
5174         * player/Makefile.am:
5175         * player/rb-player-gst.c: (rb_player_gst_class_init),
5176         (rb_player_init), (tick_timeout), (rb_player_gst_init),
5177         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
5178         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
5179         (process_tag), (found_tag_cb), (buffering_cb),
5180         (rb_player_gst_bus_cb), (rb_player_gst_construct),
5181         (rb_player_gst_new):
5182         * player/rb-player.h:
5183         * shell/Makefile.am:
5184         * sources/rb-audiocd-source.c:
5185         * widgets/Makefile.am:
5186         * widgets/rb-header.c: (rb_header_class_init):
5188 2006-04-26  James Livingston  <doclivingston@gmail.com>
5190         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
5191         don't try to download an episode if it couldn't be parsed. Fixes bug
5192         339712.
5194         * shell/rb-removable-media-manager.c:
5195         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
5196         Library" option when track transfer is disabled. Fixes bug 339728.
5198 2006-04-26  James Livingston  <doclivingston@gmail.com>
5200         * data/ui/Makefile.am:
5201         * data/ui/daap-ui.xml:
5202         * data/ui/rhythmbox-ui.xml:
5203         * sources/rb-daap-source.c: (rb_daap_sources_init),
5204         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
5205         way that the ipod ui is. Fixes bug 339743.
5207 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5209         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
5210         (process_added_entries_cb), (process_deleted_entries_cb),
5211         (rhythmdb_commit_internal): 
5212         Combine the idle functions to emit entry-added and entry-deleted,
5213         and combine as many invocations of same as possible.  Another
5214         significant reduction in startup time.
5215         
5216         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
5217         Delay the next call to rhythmdb_process_events if the queue is
5218         empty or if we can't process any of the events in the queue because
5219         the database is read only.
5221         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
5223 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5225         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
5227         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
5228         Don't special case errors quite so much.
5230 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5232         * data/rhythmbox.schemas: Remove default speed.
5234         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
5235         Add n-c-b 2.15 support.  Make the default speed to slowest since
5236         that is all that works reliably.
5238 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5240         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
5241         Fix compiler error from last commit.
5243 2006-04-25  James Livingston  <doclivingston@gmail.com>
5245         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
5246         transcoding-related issues. From bug 322268.
5248         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
5249         don't emit the signal, since the object is being finalised, which os a
5250         Bad Thing To Do.
5252         (profile_bin_find_encoder), (get_profile_from_mime_type),
5253         (transcode_track): find the encoding element by iterating looking for
5254         element in the class Codec/Encoder/Audio rather than the one named
5255         "enc".
5257 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5259         * shell/rb-shell-player.xml:
5260         * shell/rb-shell.xml:
5261         Add signal argument information.  
5262         Patch by Tim Moloney  <t.moloney@verizon.net>
5264         * shell/rb-shell.c: (rb_shell_window_state_cb):
5265         Use the right value for the visibility_changed signal.  Most of the
5266         time, anyway.
5268 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5270         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5271         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5272         (impl_create_configure_dialog):
5273         * data/glade/audioscrobbler-prefs.glade:
5274         * shell/rb-audioscrobbler.c (*):
5275         * lib/rb-preferences.h:
5276         * data/rhythmbox.schemas:
5277         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
5278         Add status information (# tracks submitted, # queued, last submit
5279         time, result of last submission) to the plugin config window.
5280         Remove 'enabled' setting, since it's easier to just disable the
5281         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
5282         nonexistant (so far) 'last.fm streaming' plugin.
5283         
5284         * help/C/rhythmbox.xml: Update documentation for last.fm profile
5285         plugin
5287         Fixes some of #325848.  We still don't provide a way to view the
5288         submission queue.
5290 2006-04-25  James Livingston  <doclivingston@gmail.com>
5292         patch by: Anders Petersson  <demitar@worldforge.org>
5294         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
5295         the YY-MM-DD format.
5297 2006-04-23  James Livingston  <doclivingston@gmail.com>
5299         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
5300         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
5301         * bindings/python/override_common.h:
5302         * bindings/python/rb.override: python binding fixes
5304 2006-04-23  James Livingston  <doclivingston@gmail.com>
5306         * shell/rb-statusbar.c: (rb_statusbar_finalize),
5307         (rb_statusbar_sync_with_source),
5308         (rb_statusbar_source_status_changed_cb): do the sync in an idle
5309         callback, rather than immediately every time. Takes ~5% off my warm-cache
5310         startup time.
5312         * bindings/python/rhythmdb.defs: fix the types using for
5313         RhythmDBEntryTypes.
5315 2006-04-22  James Livingston  <doclivingston@gmail.com>
5317         * data/ui/rhythmbox-ui.xml:
5318         * shell/rb-shell.c:
5319         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5320         (remove_source), (rb_daap_sources_init),
5321         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
5322         (rb_daap_source_disconnect):
5323         * sources/rb-source.c: (rb_source_class_init),
5324         (rb_source_deactivate):
5325         * sources/rb-source.h: move the "disconnect" functionality from into
5326         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
5328 2006-04-22  James Livingston  <doclivingston@gmail.com>
5330         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
5331         actually get the translated strings for browser headers (they were
5332         already marked as translatable). Fixes bug 339380.
5334 2006-04-22  James Livingston  <doclivingston@gmail.com>
5336         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
5337         submission timeout when the object is finalised.
5339         * bindings/python/Makefile.am:
5340         * bindings/python/rb.defs:
5341         * bindings/python/rb.override:
5342         * bindings/python/rhythmdb.defs: fix some python binding stuff.
5344         * widgets/rb-library-browser.c:
5345         (rb_library_browser_construct_query), (rebuild_output_model),
5346         (rebuild_child_model):
5347         * widgets/rb-library-browser.h: change from GPtrArray to
5348         RhythmDBQuery (which in C is the same thing).
5350 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5352         * shell/rb-shell.c: (rb_shell_get_song_properties):
5353         Don't try to include entry-type (or anything else not easily
5354         marshallable) in the song properties hash table.
5356         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
5358         * sources/rb-playlist-source.c: (rb_playlist_source_init),
5359         (rb_playlist_source_constructor): Fix entry-type initialization as
5360         with previous commit.
5362 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5364         * sources/rb-iradio-source.c: (rb_iradio_source_init),
5365         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
5366         * sources/rb-podcast-source.c: (rb_podcast_source_init),
5367         (rb_podcast_source_constructor):
5368         Set default values for entry-type after base class construction,
5369         rather than in _init, because gobject will set the entry-type property
5370         to NULL after _init if no value is provided.  Fixes #339206.
5372 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
5374         patch by: Gunnar Steinn Magnusson
5376         * COPYING:
5377         * backends/gstreamer/rb-encoder-gst.c:
5378         * backends/gstreamer/rb-encoder-gst.h:
5379         * backends/rb-encoder.c:
5380         * backends/rb-encoder.h:
5381         * bindings/python/override_common.c:
5382         * bindings/python/override_common.h:
5383         * daapsharing/rb-daap-connection.c:
5384         * daapsharing/rb-daap-connection.h:
5385         * daapsharing/rb-daap-dialog.c:
5386         * daapsharing/rb-daap-dialog.h:
5387         * daapsharing/rb-daap-mdns-browser-avahi.c:
5388         * daapsharing/rb-daap-mdns-browser-howl.c:
5389         * daapsharing/rb-daap-mdns-browser.h:
5390         * daapsharing/rb-daap-mdns-publisher-avahi.c:
5391         * daapsharing/rb-daap-mdns-publisher-howl.c:
5392         * daapsharing/rb-daap-mdns-publisher.h:
5393         * daapsharing/rb-daap-share.c:
5394         * daapsharing/rb-daap-share.h:
5395         * daapsharing/rb-daap-sharing.c:
5396         * daapsharing/rb-daap-sharing.h:
5397         * daapsharing/rb-daap-src.c:
5398         * daapsharing/rb-daap-src.h:
5399         * daapsharing/rb-daap-structure.c:
5400         * daapsharing/rb-daap-structure.h:
5401         * help/C/fdl-appendix.xml:
5402         * help/es/es.po:
5403         * help/ja/fdl-appendix.xml:
5404         * iradio/rb-new-station-dialog.c:
5405         * iradio/rb-new-station-dialog.h:
5406         * iradio/rb-station-properties-dialog.c:
5407         * iradio/rb-station-properties-dialog.h:
5408         * lib/mkdtemp.c:
5409         * lib/mkdtemp.h:
5410         * lib/rb-cut-and-paste-code.c:
5411         * lib/rb-cut-and-paste-code.h:
5412         * lib/rb-debug.c:
5413         * lib/rb-debug.h:
5414         * lib/rb-file-helpers.c:
5415         * lib/rb-file-helpers.h:
5416         * lib/rb-glade-helpers.c:
5417         * lib/rb-glade-helpers.h:
5418         * lib/rb-preferences.h:
5419         * lib/rb-proxy-config.c:
5420         * lib/rb-stock-icons.c:
5421         * lib/rb-stock-icons.h:
5422         * lib/rb-thread.c:
5423         * lib/rb-thread.h:
5424         * lib/rb-tree-dnd.c:
5425         * lib/rb-tree-dnd.h:
5426         * lib/rb-util.c:
5427         * lib/rb-util.h:
5428         * metadata/rb-metadata-common.c:
5429         * metadata/rb-metadata-dbus-client.c:
5430         * metadata/rb-metadata-dbus-service.c:
5431         * metadata/rb-metadata-dbus.c:
5432         * metadata/rb-metadata-dbus.h:
5433         * metadata/rb-metadata-gst.c:
5434         * metadata/rb-metadata.h:
5435         * metadata/sj-error.c:
5436         * metadata/sj-error.h:
5437         * metadata/sj-metadata-musicbrainz.c:
5438         * metadata/sj-metadata-musicbrainz.h:
5439         * metadata/sj-metadata.c:
5440         * metadata/sj-metadata.h:
5441         * metadata/sj-structures.c:
5442         * metadata/sj-structures.h:
5443         * metadata/test-metadata.c:
5444         * player/rb-player-gst.c:
5445         * player/rb-player.h:
5446         * player/rb-recorder-gst.c:
5447         * player/rb-recorder.h:
5448         * plugins/artdisplay/artdisplay.py:
5449         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5450         * plugins/ipod/rb-ipod-plugin.c:
5451         * plugins/lirc/rb-lirc-plugin.c:
5452         * plugins/pythonconsole/pythonconsole.py:
5453         * plugins/rb-module.c:
5454         * plugins/rb-module.h:
5455         * plugins/rb-plugin-manager.c:
5456         * plugins/rb-plugin-manager.h:
5457         * plugins/rb-plugin.c:
5458         * plugins/rb-plugin.h:
5459         * plugins/rb-plugins-engine.c:
5460         * plugins/rb-plugins-engine.h:
5461         * plugins/rb-python-module.c:
5462         * plugins/rb-python-module.h:
5463         * plugins/rb-python-plugin.c:
5464         * plugins/rb-python-plugin.h:
5465         * plugins/sample/rb-sample-plugin.c:
5466         * po/de.po:
5467         * po/el.po:
5468         * po/en_CA.po:
5469         * po/eu.po:
5470         * po/fi.po:
5471         * po/fr.po:
5472         * po/it.po:
5473         * po/ja.po:
5474         * po/mk.po:
5475         * po/pt_BR.po:
5476         * po/ru.po:
5477         * podcast/rb-feed-podcast-properties-dialog.c:
5478         * podcast/rb-feed-podcast-properties-dialog.h:
5479         * podcast/rb-new-podcast-dialog.c:
5480         * podcast/rb-new-podcast-dialog.h:
5481         * podcast/rb-podcast-manager.c:
5482         * podcast/rb-podcast-manager.h:
5483         * podcast/rb-podcast-parse.c:
5484         * podcast/rb-podcast-parse.h:
5485         * podcast/rb-podcast-properties-dialog.c:
5486         * podcast/rb-podcast-properties-dialog.h:
5487         * remote/bonobo/libmain.c:
5488         * remote/bonobo/rb-nautilus-context-menu.c:
5489         * remote/bonobo/rb-nautilus-context-menu.h:
5490         * remote/bonobo/rb-remote-bonobo.c:
5491         * remote/bonobo/rb-remote-bonobo.h:
5492         * remote/rb-remote-client-proxy.c:
5493         * remote/rb-remote-client-proxy.h:
5494         * remote/rb-remote-common.c:
5495         * remote/rb-remote-common.h:
5496         * remote/rb-remote-proxy.c:
5497         * remote/rb-remote-proxy.h:
5498         * rhythmdb/gsequence.c:
5499         * rhythmdb/gsequence.h:
5500         * rhythmdb/rb-refstring.c:
5501         * rhythmdb/rb-refstring.h:
5502         * rhythmdb/rhythmdb-gda.c:
5503         * rhythmdb/rhythmdb-gda.h:
5504         * rhythmdb/rhythmdb-private.h:
5505         * rhythmdb/rhythmdb-property-model.c:
5506         * rhythmdb/rhythmdb-property-model.h:
5507         * rhythmdb/rhythmdb-query-model.c:
5508         * rhythmdb/rhythmdb-query-model.h:
5509         * rhythmdb/rhythmdb-query-results.c:
5510         * rhythmdb/rhythmdb-query-results.h:
5511         * rhythmdb/rhythmdb-tree.c:
5512         * rhythmdb/rhythmdb-tree.h:
5513         * rhythmdb/rhythmdb.c:
5514         * rhythmdb/rhythmdb.h:
5515         * shell/main.c:
5516         * shell/rb-audioscrobbler.c:
5517         * shell/rb-audioscrobbler.h:
5518         * shell/rb-history.c:
5519         * shell/rb-history.h:
5520         * shell/rb-play-order-linear-loop.c:
5521         * shell/rb-play-order-linear-loop.h:
5522         * shell/rb-play-order-linear.c:
5523         * shell/rb-play-order-linear.h:
5524         * shell/rb-play-order-queue.c:
5525         * shell/rb-play-order-queue.h:
5526         * shell/rb-play-order-random-by-age-and-rating.c:
5527         * shell/rb-play-order-random-by-age-and-rating.h:
5528         * shell/rb-play-order-random-by-age.c:
5529         * shell/rb-play-order-random-by-age.h:
5530         * shell/rb-play-order-random-by-rating.c:
5531         * shell/rb-play-order-random-by-rating.h:
5532         * shell/rb-play-order-random-equal-weights.c:
5533         * shell/rb-play-order-random-equal-weights.h:
5534         * shell/rb-play-order-random.c:
5535         * shell/rb-play-order-random.h:
5536         * shell/rb-play-order-shuffle.c:
5537         * shell/rb-play-order-shuffle.h:
5538         * shell/rb-play-order.c:
5539         * shell/rb-play-order.h:
5540         * shell/rb-playlist-manager.c:
5541         * shell/rb-playlist-manager.h:
5542         * shell/rb-removable-media-manager.c:
5543         * shell/rb-removable-media-manager.h:
5544         * shell/rb-shell-clipboard.c:
5545         * shell/rb-shell-clipboard.h:
5546         * shell/rb-shell-player.c:
5547         * shell/rb-shell-player.h:
5548         * shell/rb-shell-preferences.c:
5549         * shell/rb-shell-preferences.h:
5550         * shell/rb-shell.c:
5551         * shell/rb-shell.h:
5552         * shell/rb-source-header.c:
5553         * shell/rb-source-header.h:
5554         * shell/rb-statusbar.c:
5555         * shell/rb-statusbar.h:
5556         * shell/rb-tray-icon.c:
5557         * shell/rb-tray-icon.h:
5558         * sources/rb-audiocd-source.c:
5559         * sources/rb-audiocd-source.h:
5560         * sources/rb-auto-playlist-source.c:
5561         * sources/rb-auto-playlist-source.h:
5562         * sources/rb-browser-source.c:
5563         * sources/rb-browser-source.h:
5564         * sources/rb-daap-source.c:
5565         * sources/rb-daap-source.h:
5566         * sources/rb-generic-player-source.c:
5567         * sources/rb-generic-player-source.h:
5568         * sources/rb-import-errors-source.c:
5569         * sources/rb-import-errors-source.h:
5570         * sources/rb-ipod-source.c:
5571         * sources/rb-ipod-source.h:
5572         * sources/rb-iradio-source.c:
5573         * sources/rb-iradio-source.h:
5574         * sources/rb-library-source.c:
5575         * sources/rb-library-source.h:
5576         * sources/rb-missing-files-source.c:
5577         * sources/rb-missing-files-source.h:
5578         * sources/rb-nokia770-source.c:
5579         * sources/rb-nokia770-source.h:
5580         * sources/rb-play-queue-source.c:
5581         * sources/rb-play-queue-source.h:
5582         * sources/rb-playlist-source-recorder.c:
5583         * sources/rb-playlist-source-recorder.h:
5584         * sources/rb-playlist-source.c:
5585         * sources/rb-playlist-source.h:
5586         * sources/rb-playlist-xml.h:
5587         * sources/rb-podcast-source.c:
5588         * sources/rb-podcast-source.h:
5589         * sources/rb-psp-source.c:
5590         * sources/rb-psp-source.h:
5591         * sources/rb-removable-media-source.c:
5592         * sources/rb-removable-media-source.h:
5593         * sources/rb-source.c:
5594         * sources/rb-source.h:
5595         * sources/rb-sourcelist-model.c:
5596         * sources/rb-sourcelist-model.h:
5597         * sources/rb-sourcelist.c:
5598         * sources/rb-sourcelist.h:
5599         * sources/rb-static-playlist-source.c:
5600         * sources/rb-static-playlist-source.h:
5601         * tests/test-cd.c:
5602         * tests/test-cmdline.c:
5603         * tests/test-rhythmdb-indexing.c:
5604         * tests/test-rhythmdb-query.c:
5605         * tests/test-rhythmdb-simple.c:
5606         * tests/test-rhythmdb-tree-deserialization.c:
5607         * tests/test-rhythmdb-tree-serialization.c:
5608         * tests/test-rhythmdb-view.c:
5609         * widgets/bacon-volume.c:
5610         * widgets/bacon-volume.h:
5611         * widgets/disclosure-widget.c:
5612         * widgets/disclosure-widget.h:
5613         * widgets/eel-gconf-extensions.c:
5614         * widgets/eel-gconf-extensions.h:
5615         * widgets/eggtrayicon.c:
5616         * widgets/eggtrayicon.h:
5617         * widgets/libsexy/sexy-icon-entry.c:
5618         * widgets/libsexy/sexy-icon-entry.h:
5619         * widgets/rb-cell-renderer-pixbuf.c:
5620         * widgets/rb-cell-renderer-pixbuf.h:
5621         * widgets/rb-cell-renderer-rating.c:
5622         * widgets/rb-cell-renderer-rating.h:
5623         * widgets/rb-dialog.c:
5624         * widgets/rb-dialog.h:
5625         * widgets/rb-druid.c:
5626         * widgets/rb-druid.h:
5627         * widgets/rb-entry-view.c:
5628         * widgets/rb-entry-view.h:
5629         * widgets/rb-header.c:
5630         * widgets/rb-header.h:
5631         * widgets/rb-library-browser.c:
5632         * widgets/rb-library-browser.h:
5633         * widgets/rb-property-view.c:
5634         * widgets/rb-property-view.h:
5635         * widgets/rb-query-creator-private.h:
5636         * widgets/rb-query-creator-properties.c:
5637         * widgets/rb-query-creator.c:
5638         * widgets/rb-query-creator.h:
5639         * widgets/rb-rating-helper.c:
5640         * widgets/rb-rating-helper.h:
5641         * widgets/rb-rating.c:
5642         * widgets/rb-rating.h:
5643         * widgets/rb-search-entry.c:
5644         * widgets/rb-search-entry.h:
5645         * widgets/rb-song-display-box.c:
5646         * widgets/rb-song-display-box.h:
5647         * widgets/rb-song-info.c:
5648         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
5650 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
5652         patch by: Gareth Murphy, James Livingston
5654         * bindings/python/rb.defs:
5655         * configure.ac:
5656         * plugins/Makefile.am:
5657         * plugins/artdisplay/Makefile.am:
5658         * plugins/artdisplay/artdisplay.py:
5659         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
5660         * plugins/rb-python-module.c: (rb_python_module_init_python):
5661         * shell/rb-shell.c: (construct_widgets),
5662         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
5663         (rb_shell_add_widget), (rb_shell_remove_widget),
5664         (rb_shell_ui_location_get_type):
5665         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
5667 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5669         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5670         Fix build failure caused by the combination of the previous two
5671         commits.
5673 2006-04-20  James Livingston  <doclivingston@gmail.com>
5675         patch by: Christophe Fergeau  <teuf@gnome.org> to make
5676         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
5677         table to the entry types, which will allow us to get rid of some of
5678         the "if entry type == WHATEVER" code everywhere. From bug 
5680         * bindings/python/rb.defs:
5681         * bindings/python/rb.override:
5682         * bindings/python/rhythmdb.defs:
5683         * bindings/python/rhythmdb.override:
5684         * daapsharing/rb-daap-connection.c:
5685         (rb_daap_connection_class_init), (rb_daap_connection_init),
5686         (rb_daap_connection_set_property),
5687         (rb_daap_connection_get_property):
5688         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
5689         * podcast/rb-podcast-manager.c:
5690         (rb_podcast_manager_entry_downloaded),
5691         (rb_podcast_manager_subscribe_feed),
5692         (rb_podcast_manager_db_entry_added_cb),
5693         (rb_podcast_manager_db_entry_deleted_cb),
5694         (rb_podcast_manager_insert_feed):
5695         * rhythmdb/rhythmdb-private.h:
5696         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5697         (conjunctive_query):
5698         * rhythmdb/rhythmdb.c: (sync_entry_changed),
5699         (process_added_entries_cb), (rhythmdb_entry_allocate),
5700         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
5701         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
5702         (rhythmdb_process_metadata_load),
5703         (rhythmdb_process_file_created_or_modified), (action_thread_main),
5704         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
5705         (write_encoded_gvalue), (read_encoded_property),
5706         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
5707         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
5708         (rhythmdb_entry_iradio_get_type),
5709         (rhythmdb_entry_podcast_post_get_type),
5710         (rhythmdb_entry_podcast_feed_get_type),
5711         (rhythmdb_entry_import_error_get_type),
5712         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
5713         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
5714         (rhythmdb_entry_type_get_type):
5715         * rhythmdb/rhythmdb.h:
5716         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5717         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
5718         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
5719         (rb_shell_player_entry_activated_cb), (info_available_cb):
5720         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
5721         (rb_shell_register_entry_type_for_source),
5722         (rb_shell_playing_from_queue_cb),
5723         (rb_shell_playing_entry_changed_cb),
5724         (rb_shell_player_stream_song_changed_cb),
5725         (rb_shell_jump_to_entry_with_source),
5726         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
5727         (handle_playlist_entry_cb), (rb_shell_load_uri):
5728         * shell/rb-shell.h:
5729         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
5730         * sources/rb-browser-source.c: (rb_browser_source_class_init),
5731         (rb_browser_source_init), (rb_browser_source_set_property),
5732         (rb_browser_source_get_property):
5733         * sources/rb-ipod-source.c: (impl_paste):
5734         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
5735         (rb_iradio_source_init), (rb_iradio_source_set_property),
5736         (rb_iradio_source_get_property):
5737         * sources/rb-library-source.c: (impl_paste):
5738         * sources/rb-missing-files-source.c:
5739         (rb_missing_files_source_class_init),
5740         (rb_missing_files_source_init),
5741         (rb_missing_files_source_set_property),
5742         (rb_missing_files_source_get_property):
5743         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
5744         (rb_playlist_source_init), (rb_playlist_source_set_property),
5745         (rb_playlist_source_get_property):
5746         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5747         (rb_podcast_source_init), (rb_podcast_source_set_property),
5748         (rb_podcast_source_get_property):
5749         * sources/rb-static-playlist-source.c:
5750         (rb_static_playlist_source_add_location_internal):
5752 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5754         * rhythmdb/rhythmdb.c: (rhythmdb_init),
5755         (rhythmdb_add_import_error_entry),
5756         (entry_volume_mounted_or_unmounted),
5757         (rhythmdb_volume_unmounted_cb):
5758         When a volume is unmounted, delete import errors for files stored on
5759         it.  When a volume is mounted, stat all tracks stored on it, rather
5760         than assuming they're present.  Fixes #339023.
5762 2006-04-20  James Livingston  <doclivingston@gmail.com>
5764         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
5765         browser visibility for non-gconf-using sources (like playlists). Part
5766         of bug 118862.
5768         * shell/rb-source-header.c: (sourcestate_free),
5769         (rb_source_header_init), (rb_source_header_finalize),
5770         (rb_source_header_source_weak_destroy_cb): switch from storing the
5771         search string to storing a "source state" structure
5773         (rb_source_header_set_source_internal),  (rb_source_state_sync),
5774         (rb_source_header_search_cb), (rb_source_header_clear_search),
5775         (rb_source_header_disclosure_toggled_cb): as well as storing the
5776         string, stop the visibility of the source's browser.
5778 2006-04-20  James Livingston  <doclivingston@gmail.com>
5780         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
5781         library entries back into the library. Fixes bug 339065.
5783 2006-04-20  James Livingston  <doclivingston@gmail.com>
5785         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
5786         only exists in glib 2.10.
5788 2006-04-20  James Livingston  <doclivingston@gmail.com>
5790         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
5791         Solaris. From bug 335318.
5793         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
5794         * shell/rb-audioscrobbler.c:
5795         * sources/rb-psp-source.c:
5797 2006-04-20  James Livingston  <doclivingston@gmail.com>
5799         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
5800         issues for some people.
5802         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
5803         accidental s/suffix/prefix/
5805         * sources/rb-auto-playlist-source.c:
5806         (rb_auto_playlist_source_set_query): fix the invered logic preventing
5807         you from sorting playlists which aren't limited by time.
5809 2006-04-19  James Livingston  <doclivingston@gmail.com>
5811         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
5812         duration or bitrate back to the file, since they are properties of the
5813         audio data, not tags we can set.
5815 2006-04-19  James Livingston  <doclivingston@gmail.com>
5817         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
5818         of libtool, to fix builds which are using a different version. Fixes
5819         bug 338996.
5821         * shell/Makefile.am:
5823 2006-04-19  James Livingston  <doclivingston@gmail.com>
5825         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
5826         to sync data to a file which is uneditable.
5828 2006-04-19  James Livingston  <doclivingston@gmail.com>
5830         patch by: Gavin Stewart  <gavin@brokentrain.net>
5832         * data/glade/playlist-save.glade:
5833         * data/glade/Makefile.am:
5834         * po/POTFILES.in: add the playlist saving dialog.
5836         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
5837         (export_set_extension_cb), (filter_get_export_filter_label),
5838         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
5839         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
5840         formats (PLS and M3U at the moment). Fixes bug 316295.
5842 2006-04-19  James Livingston  <doclivingston@gmail.com>
5844         * shell/rb-playlist-manager.c:
5845         (rb_playlist_manager_set_source_internal): don't let you edit remove
5846         auto playlists.
5848         * sources/rb-auto-playlist-source.c:
5849         (rb_auto_playlist_source_set_query): correctly handle time-limited
5850         playlists.
5852 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5854         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
5856         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
5857         Don't crash if the queue file contains no newlines.
5858         Fixes #338924.
5860 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
5862         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
5863         condition
5865 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
5867         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
5868         case. Moreover, they may not exist yet, so take that into account when
5869         generating the iPod filename.
5871 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
5873         * sources/rb-ipod-source.c: added support for drag and drop from the
5874         library to the iPod (only enabled if --enable-track-transfer was
5875         passed to configure)
5877 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
5879         * configure.ac:
5880         * lib/rb-marshal.list:
5881         * lib/rb-util.c: 
5882         * lib/rb-util.h:
5883         * plugins/Makefile.am:
5884         * plugins/ipod/Makefile.am:
5885         * plugins/ipod/ipod.rb-plugin.desktop.in:
5886         * plugins/ipod/rb-ipod-plugin.c: 
5887         * plugins/rb-plugin.h:
5888         * shell/Makefile.am:
5889         * shell/rb-removable-media-manager.c:
5890         * shell/rb-removable-media-manager.h:
5891         * shell/rb-shell.c: 
5892         * sources/Makefile.am:
5893         * sources/rb-ipod-source.c: 
5894         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
5895         various iPod related files should be moved to plugins/ipod/ now...
5897 2006-04-17  James Livingston  <doclivingston@gmail.com>
5899         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
5900         and "vic".
5902         * help/C/figures/rb-iradio-main.png:
5903         * help/C/figures/rb-notification-area-menu.png:
5904         * help/C/figures/rb-notification-window.png:
5905         * help/C/figures/rb-notification-zone.png:
5906         * help/C/figures/rb-podcast-main.png:
5907         * help/C/figures/rb-statusbar.png:
5908         * help/C/figures/rb-volume-changer.png:
5909         * help/C/figures/rb-window-small.png:
5910         * help/C/figures/rb-window.png:
5911         * help/C/rhythmbox.xml:
5913 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5915         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
5916         more obviously.
5918         * metadata/rb-metadata-gst.c: (rb_metadata_init),
5919         (make_undecodable_error), (rb_metadata_gst_error_cb),
5920         (rb_metadata_gst_new_decoded_pad_cb),
5921         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
5922         Ignore really small files (<4kB) for which typefinding fails.
5923         Always link decoded pads from decodebin to fakesink.
5924         Shut the pipeline down by posting an error on the bus when decodebin
5925         emits unknown-type signals.  Fixes bug #338062.
5927 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5929         * shell/rb-shell.c: (rb_shell_load_uri):
5930         Fix glaring mistakes in previous commit: actually pass arguments to
5931         rb_debug, and specify the right entry type when adding a new iradio
5932         station so we don't try to add local playlist files to the library.
5934 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5936         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
5937         before trying to add them, as iradio streams often fail rb_uri_exists().
5939         * shell/rb-shell-player.c: (notify_playing_idle),
5940         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
5941         (open_location_thread), (rb_shell_player_open_location),
5942         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
5943         (eos_cb):  When playing an iradio stream using a playlist, keep a list
5944         of all the stream URLs, and try them in turn.  If we get through the
5945         whole playlist too quickly, error out.  Various other fixes that make
5946         iradio work a lot better.
5948         * shell/rb-shell.c: (add_to_library_response_cb),
5949         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
5950         (handle_playlist_entry_cb), (rb_shell_load_uri):
5951         Add playlists containing streams as iradio stations.  If the playlist
5952         is local, add each stream URL, but if the playlist is remote, just add
5953         the playlist URL.
5954         
5955         * sources/rb-iradio-source.c: (new_station_location_added):
5956         Add new station URLs as-is, rather than parsing the playlist and
5957         adding the streams.
5958         
5959         * rhythmdb/rhythmdb-query-model.c:
5960         (rhythmdb_query_model_entry_changed_cb),
5961         (rhythmdb_query_model_emit_reorder),
5962         (rhythmdb_query_model_do_reorder):
5963         Emit row-changed notifications when an entry changes but is not
5964         reordered.
5966         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
5967         Display the playback error icon when the entry has an error and
5968         there's nothing else to display.
5969         
5970         Fixes bug #320336 and some of #324402.
5971         
5972 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
5974         * sources/rb-ipod-source.c: use a GHashTable for the
5975         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
5976         time, this fixes compilation breakage for people not having libgpod
5977         CVS HEAD
5979 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
5981         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5983         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
5984         (rb_podcast_manager_insert_feed):
5985         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
5986         fixes bug 321945
5988 2006-04-16  James Livingston  <doclivingston@gmail.com>
5990         * sources/rb-library-source.c:
5991         (rb_library_source_library_location_cb): return FALSE like we are
5992         supposed to, not void.
5994         patch by: FreeBSD GNOME Project
5995         * configure.ac: fix some bash-isms.
5997         patch by: Pawel Worach  <pawel.worach@gmail.com>
5998         * metadata/rb-metadata-dbus-client.c:
5999         * rhythmdb/rhythmdb-query-model.c:
6000         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
6003 2006-04-16  James Livingston  <doclivingston@gmail.com>
6005         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
6006         for transcoding to RBEncoderGst.
6008         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
6009         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
6010         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
6011         (add_decoding_pipeline), (encoder_match_mime),
6012         (get_profile_from_mime_type), (extract_track), (transcode_track),
6013         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
6015 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6017         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
6018         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
6019         load_ipod_db_idle_cb to a new separate function
6021 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6023         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
6024         source
6026 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6028         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
6029         variables
6031 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6033         * data/ui/Makefile.am:
6034         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
6035         menu
6036         * lib/rb-util.c: check if the widget we got from the UI manager isn't
6037         NULL before using it as a popup menu
6038         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
6039         'eject' an iPod
6041 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6043         * sources/rb-ipod-source.c: when hal tells us a partition is on an
6044         iPod, check if it contains an iPod database before using it (in case
6045         the iPod was repartitionned somehow). Should fix bug #325034
6047 2006-04-16  Steve Frécinaux  <steve@istique.net>
6049         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
6051         * data/Makefile.am: install application icon into the default theme.
6053         * data/rhythmbox.desktop.in: don't specify icon file extension.
6054         
6055         * shell/main.c: (main): set default window icon from theme.
6056         
6057         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
6058         code concerning window icon, and fix leak by unreferencing the about
6059         logo pixbuf once it's not used anymore.
6061 2006-04-16  James Livingston  <doclivingston@gmail.com>
6063         * configure.ac: bump version to 0.9.4
6064         * NEWS: update NEWS and 0.9.4 insert translations
6066 2006-04-16  James Livingston  <doclivingston@gmail.com>
6068         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
6069         namespace automatically.
6071 2006-04-16  James Livingston  <doclivingston@gmail.com>
6073         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
6075         * doc/reference/Makefile.am:
6076         * doc/reference/rhythmbox.types: make distcheck work again
6078         * doc/reference/tmpl/eggnotificationbubble.sgml:
6079         * doc/reference/tmpl/eggtrayicon.sgml:
6080         * doc/reference/tmpl/rb-debug.sgml:
6081         * doc/reference/tmpl/rb-entry-view.sgml:
6082         * doc/reference/tmpl/rb-enums.sgml:
6083         * doc/reference/tmpl/rb-metadata.sgml:
6084         * doc/reference/tmpl/rb-new-station-dialog.sgml:
6085         * doc/reference/tmpl/rb-playlist-manager.sgml:
6086         * doc/reference/tmpl/rb-refstring.sgml:
6087         * doc/reference/tmpl/rb-shell-player.sgml:
6088         * doc/reference/tmpl/rb-shell-preferences.sgml:
6089         * doc/reference/tmpl/rb-shell.sgml:
6090         * doc/reference/tmpl/rb-song-info.sgml:
6091         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
6092         * doc/reference/tmpl/rb-statusbar.sgml:
6093         * doc/reference/tmpl/rhythmbox-unused.sgml:
6094         * doc/reference/tmpl/rhythmdb-query-model.sgml:
6095         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
6097 2006-04-16  James Livingston  <doclivingston@gmail.com>
6099         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
6101         * po/LINGUAS: don't split the variable across two lines, as it breaks
6102         the build. Fixes bug 338625.
6104 2006-04-15  James Livingston  <doclivingston@gmail.com>
6106         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
6107         add a "sourcelist-model" gobject property.
6109 2006-04-14  William Jon McCann  <mccann@jhu.edu>
6111         * .cvsignore:
6112         * backends/.cvsignore:
6113         * backends/gstreamer/.cvsignore:
6114         * bindings/.cvsignore:
6115         * bindings/python/.cvsignore:
6116         * help/es/.cvsignore:
6117         * metadata/.cvsignore:
6118         * plugins/.cvsignore:
6119         * plugins/audioscrobbler/.cvsignore:
6120         * plugins/lirc/.cvsignore:
6121         * plugins/pythonconsole/.cvsignore:
6122         * plugins/sample-python/.cvsignore:
6123         * plugins/sample/.cvsignore:
6124         * shell/.cvsignore:
6125         * widgets/libsexy/.cvsignore:
6126         Make CVS ignore files.
6128 2006-04-14  James Livingston  <doclivingston@gmail.com>
6130         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
6131         the track-loading thread hold a reference on the source, so it doesn't
6132         explode if the cd is removed before it is done. Fixes bug 337237.
6134 2006-04-14  James Livingston  <doclivingston@gmail.com>
6136         * bindings/python/override_common.c:
6137         (_helper_unwrap_pointer_pylist):
6138         * bindings/python/override_common.h:
6139         * bindings/python/rb.override:
6140         * bindings/python/rhythmdb.override: Bind some more functions and
6141         virtual functions.
6143         * shell/rb-shell.c: (rb_shell_select_source):
6144         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
6145         * sources/rb-audiocd-source.c:
6146         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
6147         * sources/rb-browser-source.c: (impl_get_search_actions):
6148         * sources/rb-iradio-source.c: (impl_get_ui_actions):
6149         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
6150         * sources/rb-playlist-source.c: (impl_get_ui_actions):
6151         * sources/rb-podcast-source.c: (impl_get_ui_actions),
6152         (impl_get_search_actions):
6153         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
6154         the impl_get_ui_actions and impl_get_search_actions functions return
6155         lists that contain copies of the strings, instead of constant ones.
6156         Needed to bindings
6158 2006-04-14  James Livingston  <doclivingston@gmail.com>
6160         * bindings/python/rhythmdb.defs:
6161         * bindings/python/rhythmdb.override: fix the method argument format
6162         specifiers.
6164 2006-04-14  James Livingston  <doclivingston@gmail.com>
6166         * bindings/python/rhythmdb.defs:
6167         * bindings/python/rhythmdb.override:
6168         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
6169         (entry_to_rb_metadata), (record_entry_change),
6170         (rhythmdb_entry_set_visibility):
6171         * rhythmdb/rhythmdb.h:
6172         * shell/rb-shell.c: (rb_shell_get_song_properties): change
6173         rhythmdb_entry_get to take the db as the first parameter. Fixes the
6174         python bindings of it. The rhythmdb_entry_get_* ones are left the same
6175         since they are used in too many places, and not in the Python
6176         bindings.
6178 2006-04-13  William Jon McCann  <mccann@jhu.edu>
6180         * lib/rb-debug.c: (_rb_profile_log):
6181         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
6182         * rhythmdb/rhythmdb.c: (rhythmdb_load):
6183         * shell/main.c: (main):
6184         * shell/rb-shell.c: (rb_shell_constructor),
6185         (rb_shell_set_visibility), (rb_shell_sync_window_state),
6186         (rb_shell_present):
6187         Fix profile output indentation.  Add more profiling points.
6188         Fixes part of #338114
6190 2006-04-13  James Livingston  <doclivingston@gmail.com>
6192         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
6193         library source being deleted, by setting the active source to NULL.
6194         From bug 338116.
6196 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6198         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
6199         Update the last-seen string when hiddenness changes.
6201 2006-04-12  James Livingston  <doclivingston@gmail.com>
6203         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
6204         which caused the first-seen time to be reset when a metadata load was
6205         done. Fixes bug 336874.
6207         * shell/rb-shell.h: remove old function declaration.
6209         * bindings/python/rhythmdb.defs:
6210         * bindings/python/rhythmdb.override: Fix some python binding stuff.
6212 2006-04-11  James Livingston  <doclivingston@gmail.com>
6214         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
6215         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
6216         interaction. Fixes bug 337999.
6218 2006-04-11  James Livingston  <doclivingston@gmail.com>
6220         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
6221         track transfer. Fixes bug 338056.
6223         * shell/Makefile.am:
6225 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6227         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
6229 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6231         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
6232         (_rb_profile_log):
6233         * lib/rb-debug.h:
6234         * shell/rb-shell.c: (construct_db), (construct_widgets),
6235         (construct_sources), (construct_load_ui), (rb_shell_constructor):
6236         Add profiling.  Fixes #337387
6238 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6240         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
6241         * widgets/rb-header.c:
6242         Use italics for artist and album. Fixes #336748
6244 2006-04-10  James Livingston  <doclivingston@gmail.com>
6246         * Makefile.am:
6247         * backends/gstreamer/Makefile.am:
6248         * configure.ac:
6249         * data/glade/library-prefs.glade:
6250         * shell/Makefile.am:
6251         * shell/rb-removable-media-manager.c:
6252         * shell/rb-removable-media-manager.h:
6253         * sources/Makefile.am:
6254         * sources/rb-audiocd-source.c:
6255         * sources/rb-library-source.c: (rb_library_source_class_init),
6256         (rb_library_source_finalize), (impl_get_config_widget),
6257         (rb_library_source_preferences_sync), (impl_can_paste): add a
6258         --enable-track-transfer configure option, abd make cd ripping disabled
6259         by default.
6261         * shell/rb-source-header.c:
6262         * sources/rb-source.c: (rb_source_class_init),
6263         (rb_source_delete_thyself), (default_get_entry_view):
6264         * lib/rb-glade-helpers.c:
6265         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
6266         some compiler warnings, and also bug 337427.
6268 2006-04-10  James Livingston  <doclivingston@gmail.com>
6270         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
6271         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
6272         if the gconf key is missing. Fixes bug 337742.
6274 2006-04-10  James Livingston  <doclivingston@gmail.com>
6276         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6277         to fix build problems I caused with a commit yesterday. Fixed bug
6278         337806.
6280         * daapsharing/rb-daap-mdns-browser-howl.c:
6281         (rb_daap_mdns_browser_class_init):
6282         * podcast/Makefile.am:
6283         * rhythmdb/Makefile.am:
6284         * widgets/eggtrayicon.h:
6286 2006-04-09  Steve Frécinaux  <steve@istique.net>
6288         * configure.ac:
6289         * po/LINGUAS:
6290         
6291         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
6292         translators' life easier.
6294 2006-04-09  James Livingston  <doclivingston@gmail.com>
6296         * bindings/python/rb.defs:
6297         * bindings/python/rb.override: add bindings for most RBSource virtual
6298         functions.
6300         * sources/rb-source.h:
6301         * sources/rb-source.c: (rb_source_class_init): make
6302         impl_get_browser_key return a non-consht string, since Python can't
6303         really give us constant strings.
6305         * shell/rb-source-header.c: (rb_source_header_finalize),
6306         (rb_source_header_set_source_internal):
6307         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
6308         * sources/rb-iradio-source.c: (impl_get_browser_key):
6309         * sources/rb-library-source.c: (impl_get_browser_key):
6310         * sources/rb-playlist-source.c:
6311         * sources/rb-browser-source.c: (rb_browser_source_constructor),
6312         (rb_browser_source_state_prefs_sync):
6313         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
6314         above change.
6316         * plugins/sample-python/sample-python.py: show how to add a new
6317         source.
6319 2006-04-09  James Livingston  <doclivingston@gmail.com>
6321         * daapsharing/Makefile.am:
6322         * daapsharing/rb-daap-connection.c:
6323         (rb_daap_connection_class_init):
6324         * daapsharing/rb-daap-marshal.list:
6325         * daapsharing/rb-daap-mdns-browser-avahi.c:
6326         (rb_daap_mdns_browser_class_init):
6327         * lib/rb-marshal.list:
6328         * player/Makefile.am:
6329         * player/rb-recorder-gst.c: (rb_recorder_class_init):
6330         * player/rb-recorder-marshal.list:
6331         * podcast/Makefile.am:
6332         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
6333         * podcast/rb-podcast-marshal.list:
6334         * rhythmdb/Makefile.am:
6335         * rhythmdb/rhythmdb-marshal.list:
6336         * rhythmdb/rhythmdb-query-model.c:
6337         (rhythmdb_query_model_class_init):
6338         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
6339         into one file, as there is no point having several of them.
6341 2006-04-09  James Livingston  <doclivingston@gmail.com>
6343         * lib/Makefile.am:
6344         * lib/rb-enums.h:
6345         * widgets/Makefile.am:
6346         * widgets/eggnotificationbubble.c:
6347         * widgets/eggnotificationbubble.h:
6348         * widgets/rb-song-info.c: remove lib/rb-enums.h and
6349         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
6351         * rhythmdb/rhythmdb-property-model.h:
6352         * rhythmdb/rhythmdb-query-model.h:
6353         * rhythmdb/rhythmdb.h:
6354         * shell/rb-playlist-manager.h:
6355         * widgets/rb-cell-renderer-pixbuf.h:
6356         * widgets/rb-cell-renderer-rating.h:
6357         * widgets/rb-rating.h: fix the prototypes of various class-closures.
6359 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6361         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
6362         so we can build without a system-wide installed copy.
6364 2006-04-09  James Livingston  <doclivingston@gmail.com>
6366         * data/glade/general-prefs.glade:
6367         * data/rhythmbox.schemas:
6368         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
6369         (rb_combo_box_hyphen_separator_func):
6370         * lib/rb-glade-helpers.h:
6371         * lib/rb-preferences.h:
6372         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6373         (rb_shell_preferences_sync),
6374         (rb_shell_preferences_toolbar_style_cb),
6375         (rb_shell_preferences_browser_views_activated_cb):
6376         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
6377         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
6378         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
6380 2006-04-09  James Livingston  <doclivingston@gmail.com>
6382         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
6383         data that MusicBrainz returns to us. Last part of bug 334167.
6385 2006-04-09  James Livingston  <doclivingston@gmail.com>
6387         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
6388         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
6390 2006-04-09  James Livingston  <doclivingston@gmail.com>
6392         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
6393         the entry view properly when the rows are reordered. Fixes bug 337019.
6395 2006-04-09  James Livingston  <doclivingston@gmail.com>
6397         * configure.ac:
6398         * widgets/Makefile.am:
6399         * widgets/libsexy/Makefile.am:
6400         * widgets/libsexy/sexy-icon-entry.c:
6401         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
6402         libsexy, and allow building against it or a system-wide installed
6403         copy.
6406         * widgets/rb-search-entry.c: (rb_search_entry_init),
6407         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
6408         search box. Fixes bug 128109.
6410 2006-04-09  James Livingston  <doclivingston@gmail.com>
6412         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6414         * widgets/rb-entry-view.c: (rb_entry_view_init),
6415         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
6416         and Pause icons rather than the volume ones in the Now Playing column.
6417         Closes bug 336482.
6419 2006-04-08  James Livingston  <doclivingston@gmail.com>
6421         * bindings/python/override_common.h:
6422         * bindings/python/rb.override:
6423         * bindings/python/rhythmdb.override: bind some more functions 
6425 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6427         * metadata/rb-metadata-dbus-service.c: (_send_error):
6428         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
6429         are sent properly and we don't get 'method doesn't exist' messages
6430         from dbus instead.
6432 2006-04-08  James Livingston  <doclivingston@gmail.com>
6434         * bindings/python/override_common.h:
6435         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
6436         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
6437         more utility functions for C<->Python conversions
6439         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
6440         (rb_entry_view_state_get_type):
6441         * widgets/rb-entry-view.h: make the colume type and entry view state
6442         GTypes
6444         * bindings/python/Makefile.am:
6445         * bindings/python/rb.defs:
6446         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
6447         RBSource.
6449 2006-04-08  James Livingston  <doclivingston@gmail.com>
6451         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
6452         initialiser for a GError
6454         * sources/rb-source.c: (rb_source_eof_type_get_type):
6455         * sources/rb-source.h: add a GType for RBSourceEOFType
6457         * bindings/python/Makefile.am:
6458         * bindings/python/rb.defs:
6459         * bindings/python/rb.override: bind RBSource and RBSourceList
6461 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6463         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6464         (rb_shell_player_get_property),
6465         (rb_shell_player_get_active_source),
6466         (rb_shell_player_set_playing_source_internal):
6467         * shell/rb-shell-player.h:
6468         Change 'playing-from-queue' from being a signal to being a property.
6470         * shell/rb-shell.c: (rb_shell_constructor),
6471         (rb_shell_playing_from_queue_cb),
6472         (rb_shell_view_queue_as_sidebar_changed_cb),
6473         (rb_shell_jump_to_entry_with_source):
6474         When the queue side pane is used, make 'jump to current' jump to the
6475         entry in the registered source for its type, rather than in the queue,
6476         and show it as playing in that source.
6477         
6478         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
6479         * sources/rb-sourcelist.h:
6480         Remove the 'preempted source' stuff, since it wasn't doing anything
6481         anyway.
6483 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6485         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
6486         (download_progress_cb): Canonicalise downloaded file location before
6487         setting the mountpoint property of the corresponding entry.
6488         Fixes #337287 and a couple of memory leaks.
6490 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6492         * metadata/rb-metadata-dbus-service.c: (test_can_save),
6493         (test_load), (main): Call g_set_prgname, report errors more
6494         usefully in test mode.
6495         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
6496         (rb_metadata_load): Don't ignore the have-type signal for non-audio
6497         files.  Run the event loop when the state change fails so we get the
6498         error messages from the bus.  Fixes #336921.
6500 2006-04-05  William Jon McCann  <mccann@jhu.edu>
6502         * data/art/Makefile.am: Install media-eject.
6504         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
6505         return value of rb_file.
6507         Fixes #337209
6509 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6511         Patch by: William Jon McCann  <mccann@jhu.edu>
6513         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
6514         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
6515         Fix GError leak.
6517 2006-04-04  William Jon McCann  <mccann@jhu.edu>
6519         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
6520         Don't try to add a date when we don't have one.  Fixes #336741.
6522         Also fix variable declaration in middle of block.
6524 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6526         * shell/rb-shell-player.c: (rb_shell_player_playpause):
6527         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
6529 2006-04-02  James Livingston  <doclivingston@gmail.com>
6531         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
6532         inverted logic causing imports to fail.
6534 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6536         * shell/main.c: (main): Fix dbusless build.
6538 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
6540         * player/rb-recorder-gst.c: fix packing of the C struct holding a
6541         wav header for non-gcc compilers (not tested much, was only written
6542         according to docs)
6544 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6546         * shell/main.c: (main): Check if we got a dbus connection before
6547         trying to create a proxy for the shell object.  Fixes #336634.
6549 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6551         * doc/reference/Makefile.am:
6552         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
6553         * shell/rb-source-header.c:
6554         * sources/rb-generic-player-source.c:
6555         (default_transform_playlist_uri):
6556         Fix various build issues.  Patch approximately 50% by Alex Lancaster
6557         <alexl@users.sourceforge.net>
6559 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6561         * configure.ac: Detect LIRC.
6562         
6563         * plugins/Makefile.am:
6564         * plugins/lirc/Makefile.am:
6565         * plugins/lirc/lirc.rb-plugin.desktop.in:
6566         * plugins/lirc/rb-lirc-plugin.c:
6567         LIRC plugin.
6569         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
6570         Remove obsolete files.
6572 2006-04-02  James Livingston  <doclivingston@gmail.com>
6574         * sources/rb-generic-player-source.c:
6575         (default_transform_playlist_uri): consider playlist paths as relative
6576         to the volume root by default, since that is what most players use.
6578 2006-04-02  James Livingston  <doclivingston@gmail.com>
6580         * lib/rb-util.c: (rb_mime_get_friendly_name):
6581         * lib/rb-util.h: add helper function to get the "friendly" name for a
6582         mime-type
6584         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6585         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
6586         the user better error messages about undecodable streams, using the
6587         "friendly" name if possible. Fixes bug 128109.
6589 2006-04-02  James Livingston  <doclivingston@gmail.com>
6591         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
6592         (start_pipeline): fix building with gstreamer 0.8
6594 2006-04-02  James Livingston  <doclivingston@gmail.com>
6596         * sources/rb-podcast-source.c: (impl_delete),
6597         (rb_podcast_source_cmd_delete_feed),
6598         (rb_podcast_source_cmd_update_feed): copy the list before traversing
6599         it, since it may change during traversal. Fixes bug 336204.
6601 2006-04-01  James Livingston  <doclivingston@gmail.com>
6603         * data/art/media-eject.png: add the media-eject icon from Banshee
6604         (BSD-licensed), for use when the user's icon theme doesn't have one.
6606         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
6607         bug 334897.
6609 2006-04-01  James Livingston  <doclivingston@gmail.com>
6611         * shell/rb-shell-player.h:
6612         * shell/rb-shell-player.c: (rb_shell_player_play),
6613         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
6614         new rb_shell_player_{play,pause} functions, so everyone doesn't have
6615         to do rb_shell_player_playing followed by rb_shell_player_playpause.
6617         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
6618         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
6619         * shell/rb-shell.h: add rb_shell_get_ui_manager.
6621         * bindings/python/rb.defs: bind the above to Python, and remove some
6622         useless stuff from the bindings.
6624 2006-04-01  James Livingston  <doclivingston@gmail.com>
6626         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
6627         number tag.
6629         * shell/rb-shell.c:
6630         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
6632         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
6633         to true.
6635         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
6636         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
6637         method assigning, so it's understandable
6639         * sources/rb-library-source.c: (rb_library_source_class_init),
6640         (impl_paste): rather than hard-coding the types to ignore, use
6641         rb_source_can_copy.
6643 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6645         * sources/rb-library-source.c:
6646         (rb_library_source_preferences_sync):
6647         Don't crash if no audio profile is selected and the gconf schemas are 
6648         not installed.
6650 2006-03-31  James Livingston  <doclivingston@gmail.com>
6652         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
6653         "*" which caused compilation to fail
6655 2006-03-31  James Livingston  <doclivingston@gmail.com>
6657         * configure.ac:
6658         * Makefile.am:
6659         * backends/Makefile.am:
6660         * backends/gstreamer/Makefile.am:
6661         * backends/gstreamer/rb-encoder-gst.c:
6662         * backends/gstreamer/rb-encoder-gst.h:
6663         * backends/rb-encoder.c:
6664         * backends/rb-encoder.h: add a interface for transcoding, and a
6665         GStreamer implementation of it (based on Sound-Juicer's code).
6667         * shell/Makefile.am:
6668         * shell/rb-removable-media-manager.c:
6669         (rb_removable_media_manager_class_init),
6670         (rb_removable_media_manager_init),
6671         (rb_removable_media_manager_dispose),
6672         (rb_removable_media_manager_finalize),
6673         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
6674         (progress_cb), (completed_cb), (do_transfer),
6675         (rb_removable_media_manager_queue_transfer), (copy_entry),
6676         (rb_removable_media_manager_cmd_copy_tracks):
6677         * shell/rb-removable-media-manager.h: use the encoder interface to
6678         perform transfers of entries to other locations
6680         * shell/rb-shell-player.c: (open_location_thread):
6681         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
6682         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
6683         (rb_shell_quit):
6684         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
6685         progress in the status bar.
6687         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6688         (rb_shell_preferences_sync),
6689         (rb_shell_preferences_browser_views_activated_cb):
6690         * data/glade/general-prefs.glade: move the browser views setting from
6691         the library tab to the general one.
6693         * data/glade/library-prefs.glade: add settings for the layout of the
6694         user's library, and their preferred encoding format (e.g. for CD
6695         ripping).
6697         * lib/rb-preferences.h:
6698         * data/rhythmbox.schemas: add keys for the above options (and a few
6699         other minor ones)
6701         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
6702         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
6703         entry, that isn't inserted into the database.
6705         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
6706         (rb_audiocd_create_track_entry):
6707         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
6708         cds, and set the mime-type of audio cd tracks correctly.
6710         * sources/rb-library-source.c: (rb_library_source_class_init),
6711         (rb_library_source_finalize),
6712         (rb_library_source_edit_profile_clicked_cb),
6713         (impl_get_config_widget), (rb_library_source_preferences_sync),
6714         (impl_receive_drag), (rb_library_source_path_changed_cb),
6715         (rb_library_source_filename_changed_cb),
6716         (rb_library_source_format_changed_cb), (sanitize_path),
6717         (filepath_parse_pattern), (layout_example_label_update),
6718         (rb_library_source_layout_path_changed),
6719         (rb_library_source_layout_filename_changed), (build_filename),
6720         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
6721         entries to the library. Large chunks of code for determining the
6722         destination file name stolen from Sound-Juicer.
6724         * sources/rb-sourcelist-model.c: (path_is_droppable):
6725         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
6726         * sources/rb-static-playlist-source.c:
6727         (rb_static_playlist_source_class_init):
6728         * sources/rb-removable-media-source.c:
6729         (rb_removable_media_source_class_init):
6730         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
6731         (rb_source_can_paste):
6732         * sources/rb-source.h: add a new _can_paste method, and use it (rather
6733         than _can_copy) to determine whether we can paste into the source.
6736 2006-03-31  Steve Frécinaux  <steve@istique.net>
6738         * plugins/rb-python-module.c: allow import of python modules with a '.'
6739         (gedit's bug 336403). Patch by Johan Dahlin.
6741 2006-03-31  James Livingston  <doclivingston@gmail.com>
6743         * sources/rb-library-source.c: 
6744         * sources/rb-library-source.h:
6745         * sources/rb-browser-source.c:
6746         * sources/rb-browser-source.h: Split RBLibrarySource into two.
6747         RBBrowserSource now contains all the stuff for having a source which
6748         views a particular entry type (including browsers and searching).
6749         RBLibrarySource derives from this, and includes the library-specific
6750         stuff, like importing and library watching. Fixes some issues where
6751         library-derived sources were doing things that should be
6752         library-specific. Fixes bug 335185.
6754         * data/ui/rhythmbox-ui.xml:
6755         * sources/Makefile.am: modifications for the above
6757         * sources/rb-daap-source.c: (rb_daap_source_class_init),
6758         (rb_daap_source_get_paned_key):
6759         * sources/rb-daap-source.h:
6760         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
6761         * sources/rb-removable-media-source.c:
6762         (rb_removable_media_source_class_init):
6763         * sources/rb-removable-media-source.h: derive from RBBrowserSource
6764         instead of RBLibrarySource.
6766 2006-03-31  James Livingston  <doclivingston@gmail.com>
6768         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
6769         I buggered up when changing from GnomeVFSFileSize.
6771 2006-03-30  James Livingston  <doclivingston@gmail.com>
6773         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
6774         for "-Wno-error".
6776         * bindings/python/rb.override:
6777         * bindings/python/Makefile.am: make the RB python bindings depend on
6778         the RhythmDB ones, and use "-Wno-error" since the machine-generated
6779         code sometimes emits warnings.
6781         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6782         (rb_shell_player_error_get_type):
6783         * shell/rb-shell-player.h:
6784         * bindings/python/rb.defs: add bindings for RBShellPlayer
6786         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6787         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
6788         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
6789         * rhythmdb/rhythmdb.h:
6790         * shell/rb-shell.c: (rb_shell_get_song_properties):
6791         * widgets/rb-entry-view.c: (propid_from_name):
6792         * widgets/rb-property-view.c: (rb_property_view_class_init):
6793         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
6794         than just plain GPtrArray, and add bindings for it.
6796         * bindings/python/rhythmdb.override: wrap some functions that use
6797         GValues
6799 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6801         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
6802         Only watch directories from which entries of type SONG have been
6803         added.
6805 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6807         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
6808         No need to restore the selection after rebuilding the child model,
6809         since that can't have changed the selection.
6811 2006-03-29  James Livingston  <doclivingston@gmail.com>
6813         * bindings/python/override_common.c:
6814         * bindings/python/override_common.h: add some for missing files to
6815         cvs.
6817 2006-03-29  James Livingston  <doclivingston@gmail.com>
6819         * configure.ac:
6820         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
6821         copied from gedit's autofoo and we don't need it
6823         * bindings/python/rhythmdb.defs:
6824         * bindings/python/rhythmdb.override: add missing files to cvs
6826 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6828         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
6829         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
6830         before running any of the debug/test modes.
6831         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
6832         Make plugin loading work when running uninstalled from the shell/
6833         directory.
6835 2006-03-29  James Livingston  <doclivingston@gmail.com>
6837         * rhythmdb/rhythmdb-property-model.c:
6838         (rhythmdb_property_model_sync),
6839         (rhythmdb_property_model_column_get_type):
6840         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
6842         * rhythmdb/rhythmdb-private.h:
6843         * rhythmdb/rhythmdb-query-model.c:
6844         (rhythmdb_query_model_class_init):
6845         * rhythmdb/rhythmdb-query-model.h:
6846         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
6847         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
6848         (rhythmdb_entry_get_type):
6849         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
6851         * widgets/rb-query-creator-properties.c:
6852         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
6853         was missing.
6855         * bindings/python/Makefile.am:
6856         * bindings/python/rb.defs:
6857         * bindings/python/rb.override:
6858         * plugins/rb-python-module.c: (rb_python_module_init_python): add
6859         Python bindings for RhythmDB.
6861 2006-03-29  James Livingston  <doclivingston@gmail.com>
6863         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
6864         sharing when using --no-registration
6866 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6868         * rhythmdb/rhythmdb-query-model.c:
6869         (rhythmdb_query_model_reapply_query):
6870         Don't remove entries while iterating, as it breaks the sequence
6871         nodes.  Instead, collect a list of removed entries and process it
6872         after iterating the sequence.  Fixes #334642.
6874 2006-03-29  James Livingston  <doclivingston@gmail.com>
6876         * plugins/rb-plugin-manager.c: (active_toggled_cb),
6877         (row_activated_cb), (plugin_manager_toggle_all):
6878         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
6879         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
6880         (button_press_cb), (source_name_edited_cb):
6881         * widgets/rb-property-view.c: (rb_property_view_set_property),
6882         (rb_property_view_post_row_deleted_cb),
6883         (rb_property_view_row_activated_cb),
6884         (rb_property_view_selection_changed_cb),
6885         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
6886         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
6888 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6890         * rhythmdb/rhythmdb-query-model.c:
6891         (rhythmdb_query_model_drag_data_received):
6892         Increment the reference count for entries added by drag and drop.
6893         Fixes #336045.
6895 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6897         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
6898         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
6899         Ignore invalid UTF-8 strings.  Fixes most of #334167.
6901 2006-03-27  James Livingston  <doclivingston@gmail.com>
6903         * shell/rb-shell.c: (rb_shell_constructor),
6904         (rb_shell_sync_window_state): fix a maximise-realise race that would
6905         cause some widgets to be resized after we had explicity set theri
6906         size. Hopefully fixes bug 331927.
6908 2006-03-27  James Livingston  <doclivingston@gmail.com>
6910         * plugins/rb-plugin-manager.c: (active_toggled_cb),
6911         (row_activated_cb), (plugin_manager_set_active),
6912         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
6913         configure button sensitivity when a plugin is enabled/disabled.
6915 2006-03-27  James Livingston  <doclivingston@gmail.com>
6917         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
6918         stop warnings, only the vbos is used anyway
6920         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
6921         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
6922         collection every now an then.
6924         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
6925         if we are finalising because the python object couldn't be created.
6927         * plugins/rb-python-module.c: (rb_python_module_new_object): return
6928         NULL if the python-side object couldn't be created. Stops crashes when
6929         the object is later used when it doesn't exist in Python.
6931         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
6932         (rb_python_shutdown): do better garbage collection when shutting down.
6933         Fixes the problem where Python was holding a reference to the shell,
6934         causing RB not to exit.
6936 2006-03-27  James Livingston  <doclivingston@gmail.com>
6938         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
6939         336131.
6941 2006-03-27  James Livingston  <doclivingston@gmail.com>
6943         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
6944         From bug 334829.
6946 2006-03-26  James Livingston  <doclivingston@gmail.com>
6948         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
6949         library location list to NULL after we free it. Fixes bug 336047.
6951 2006-03-26  James Livingston  <doclivingston@gmail.com>
6953         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
6955         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
6956         supplies. Fixes bug 335947.
6958 2006-03-25  James Livingston  <doclivingston@gmail.com>
6960         * data/glade/audioscrobbler-prefs.glade:
6961         * shell/rb-audioscrobbler.c:
6962         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
6963         "submit songs" checkbox, and make it not disable username/password
6964         entry. This will be needed when we support other last.fm stuff
6965         (profile access, radio, etc).
6967 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
6969         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
6970         Volume should not display stock_volume-0 for volume > 0. Fixes bug
6971         335777.
6973 2006-03-24  James Livingston  <doclivingston@gmail.com>
6975         * shell/rb-shell-player.c: (rb_shell_player_set_property),
6976         (rb_shell_player_sync_play_order),
6977         (rb_shell_player_play_order_update_cb),
6978         (actually_set_playing_source): update the next/previous availablility
6979         in places where it was missing. Fixes bug 335490.
6981 2006-03-24  James Livingston  <doclivingston@gmail.com>
6983         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
6984         can't find the widget
6986         * lib/rb-util.c: (rb_uri_list_parse):
6987         * lib/rb-util.h: add function for parsing a URI list into strings.
6989         * metadata/Makefile.am: make the metdata helper build when linking
6990         with --as-needed
6992         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
6993         g_mkdir_with_parents instead of coding our own.
6995         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
6996         <itunes:author> over <generator>, instead of using whichever comes
6997         last.
6999         * rhythmdb/rhythmdb-private.h:
7000         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
7001         field, as we don't ever check it (to detect corruption). Saves a bit
7002         of memory.
7004 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7006         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
7007         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
7008         Escape '&' and '=' in the paths we get back from
7009         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
7011 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7013         * shell/rb-shell.c: (rb_shell_constructor):
7014         Issue startup notification after creating the main window, so
7015         notification is issued whether the window is visible or not.
7016         Fixes #335086.
7018 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7020         * sources/rb-auto-playlist-source.c: (impl_search),
7021         (rb_auto_playlist_source_query_complete_cb),
7022         (rb_auto_playlist_source_do_query):
7023         * sources/rb-library-source.c: (impl_search),
7024         (rb_library_source_query_complete_cb),
7025         (rb_library_source_do_query):
7026         Defer subset searches (where text is appended to an existing search)
7027         until the original query is complete.
7029 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
7031         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
7033         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7034         (rb_refstring_get_sort_key): fixes for strict-aliasing
7036 2006-03-21  James Livingston  <jrl@ids.org.au>
7038         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
7039         importing a single file. Fixes bug 335307.
7041 2006-03-21  James Livingston  <jrl@ids.org.au>
7043         * shell/Makefile.am: remove the reference to backends/ that I
7044         accidently included.
7046 2006-03-21  James Livingston  <jrl@ids.org.au>
7048         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
7049         with Forte (on Solaris). Closes bug 335318.
7051         * configure.ac:
7052         * lib/Makefile.am:
7053         * player/rb-recorder-gst.c:
7054         * podcast/rb-podcast-parse.c:
7055         * remote/bonobo/Makefile.am:
7056         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
7057         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
7058         (rhythmdb_query_model_add_entry),
7059         (rhythmdb_query_model_add_results):
7060         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
7061         * rhythmdb/rhythmdb.h:
7062         * shell/Makefile.am:
7063         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
7064         (update_speed_combobox):
7065         * sources/rb-sourcelist-model.c:
7067 2006-03-21  James Livingston  <jrl@ids.org.au>
7069         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7071         * player/Makefile.am:
7072         * shell/Makefile.am: work correctly with a separate build root.
7074 2006-03-21  James Livingston  <jrl@ids.org.au>
7076         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
7077         get handed NULL.
7079 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7081         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
7082         Only create ignore entries when importing into the library.  
7083         Ignore entries for files in removable media sources don't help.
7085 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7087         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
7088         * shell/rb-source-header.h:
7089         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
7090         * widgets/rb-search-entry.h:
7091         Add functions to make the search box grab focus.
7093         * shell/rb-shell.c: (rb_shell_cmd_view_all):
7094         Focus the search box after handling the 'view all' action.
7096 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7098         * rhythmdb/rhythmdb.h:
7099         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7100         (rhythmdb_execute_multi_stat_info_cb),
7101         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
7102         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
7103         (action_thread_main):
7104         Collect all the get_file_info requests on startup into one gnome-vfs
7105         job to reduce overhead and avoid contention for the rhythmdb lock.
7106         Add a new method to call when all initial query models are set up.
7107         
7108         * shell/rb-shell.c: (idle_handle_load_complete):
7109         Call rhythmdb startup complete function when we've loaded all the
7110         playlists.  Fixes #334106.
7112 2006-03-20  James Livingston  <jrl@ids.org.au>
7114         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
7115         (rb_entry_view_selection_changed_cb),
7116         (rb_entry_view_have_complete_selection): make has_complete_selection
7117         not slow. Fixes a performance issue I added a week or so ago.
7119 2006-03-20  James Livingston  <jrl@ids.org.au>
7121         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
7122         before passing to strcmp. From bug 334559.
7124 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7126         * configure.ac:
7127         * lib/Makefile.am:
7128         * lib/rb-proxy-config.c:
7129         * lib/rb-proxy-config.h:
7130         Add a new object to watch the HTTP proxy configuration and emit
7131         signals when it changes.
7133         * shell/rb-audioscrobbler.c:
7134         * shell/rb-audioscrobbler.h:
7135         Use rb-proxy-config to watch HTTP proxy configuration.
7137         * shell/rb-shell.c:
7138         Construct rb-proxy-config object on startup, and remove all
7139         audioscrobbler references.
7141         * shell/Makefile.am:
7142         * plugins/audioscrobbler/Makefile.am:
7143         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
7144         Move all audioscrobbler code into the plugin.  We should move
7145         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
7146         point.  Don't use a private data structure in the plugin, since the
7147         class definition isn't in a header file.  Fixes #335091.
7149 2006-03-20  James Livingston  <jrl@ids.org.au>
7151         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
7152         don't enable Next if the source has an EOS type other than
7153         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
7155 2006-03-20  James Livingston  <jrl@ids.org.au>
7157         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
7158         (rb_song_info_forward_clicked_cb): deal with there being no
7159         next/previous entry.
7161         (rb_song_info_query_model_inserted_cb),
7162         (rb_song_info_query_model_deleted_cb),
7163         (rb_song_info_query_model_reordered_cb),
7164         (rb_song_info_query_model_changed_cb): monitor the query for changes,
7165         to update the button status. Fixes bug 333293.
7167 2006-03-20  James Livingston  <jrl@ids.org.au>
7169         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
7170         caused by my last commit
7172 2006-03-20  James Livingston  <jrl@ids.org.au>
7174         * bindings/python/Makefile.am:
7175         * bindings/python/rb.defs:
7176         * bindings/python/rb.override: add python bindings of RBRemoteProxy
7178         * shell/rb-shell.c: (rb_shell_constructor),
7179         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
7180         tray-icon detection slightly
7182 2006-03-19  Steve Frécinaux  <steve@istique.net>
7184         * data/ui/rhythmbox-ui.xml:
7185         * shell/rb-shell.c:
7187         Add an empty Tool Menu (hidden by default) containing placeholders for
7188         plugins.
7190         * configure.ac:
7191         * plugins/Makefile.am:
7192         * plugins/pythonconsole/Makefile.am:
7193         * plugins/pythonconsole/pythonconsole.py:
7194         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
7195         
7196         Python Console plugin
7198 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7200         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
7201         Extra step to encode '&' and '=' to match what gnome-vfs does
7202         internally.
7203         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
7204         (rhythmdb_tree_save):
7205         Increment rhythmdb xml version to 1.2, and force another uri
7206         re-canonicalisation when loading v1.1 databases.
7207         Fixes bug #333998.
7209 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7211         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
7212         (avahi_client_init), (browse_cb):
7213         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
7214         (avahi_client_init):
7215         Fix compilation with Avahi 0.5.x (bug #334551).
7217 2006-03-19  James Livingston  <jrl@ids.org.au>
7219         Add Increase/Decrease Volume menu items and keybindings. From bug
7220         123383.
7222         * data/ui/rhythmbox-ui.xml:
7223         * shell/rb-shell-player.c: (rb_shell_player_constructor),
7224         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
7225         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
7227 2006-03-19  James Livingston  <jrl@ids.org.au>
7229         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
7231         * shell/Makefile.am: fix the link order, so that we compile with
7232         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
7234 2006-03-19  James Livingston  <jrl@ids.org.au>
7236         patch by: Adam Petaccia  <adam@tpetaccia.com>
7238         * data/ui/rhythmbox-ui.xml: move preferences below "configure
7239         plugins". Fixes bug 335037.
7241 2006-03-18  James Livingston  <jrl@ids.org.au>
7243         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7244         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
7245         332992.
7247         * widgets/rb-header.c: don't make artist/album info in the header the
7248         small size, since it's hard to read.
7250 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7252         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
7253         (rhythmdb_finalize): Don't leak the hash tables.
7254         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
7255         (rhythmdb_commit_internal): Make sure to process the deletions.
7256         (rhythmdb_entry_delete): Use a hash.
7258         * podcast/rb-podcast-manager.c: Random analness about char*
7259         (rb_podcast_manager_remove_feed): Add debugging.
7260         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
7261         the result of gnome_vfs_unlink.  Don't leak a uri.
7263         Fixes #334786
7265 2006-03-18  James Livingston  <jrl@ids.org.au>
7267         * NEWS: update NEWS file
7269 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7271         * rhythmdb/rhythmdb-property-model.c:
7272         (rhythmdb_property_model_prop_changed_cb):
7273         Remove entries from the hash table after processing visible->hidden
7274         changes.
7276 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7278         * sources/rb-daap-source.c (connection_connected_cb) 
7279         (connection_disconnected_cb): Add debug.
7280         (rb_daap_source_get_headers): Check for NULL connection.
7282         * daapsharing/rb-daap-src.c (rb_daap_src_open):
7283         Check return value of rb_daap_source_get_headers.
7285         Fixes #332089
7287 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7289         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7290         Restore the selection after rebuilding the child model, so the
7291         selection is shown correctly after using the 'browse this
7292         album/artist/genre' menu items.
7294 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7296         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
7297         Clear the selection before changing the active model.
7298         Fixes crash reported in bug 334549.
7300 2006-03-15  James Livingston  <jrl@ids.org.au>
7302         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
7303         (rb_tray_icon_sync_action):
7304         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
7305         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
7306         for non-libnotify notification bubbles. Fixes bug 331721.
7308 2006-03-15  James Livingston  <jrl@ids.org.au>
7310         Add search-bar options to playlists. Fixes bug 334407.
7312         * sources/rb-auto-playlist-source.c:
7313         (rb_auto_playlist_source_class_init),
7314         (rb_auto_playlist_source_constructor),
7315         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
7316         (search_action_to_prop), (search_action_changed):
7317         * sources/rb-static-playlist-source.c:
7318         (rb_static_playlist_source_class_init),
7319         (rb_static_playlist_source_constructor),
7320         (construct_query_from_selection), (impl_get_search_actions),
7321         (search_action_to_prop), (search_action_changed):
7323 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7325         * shell/rb-source-header.c (rb_source_header_set_source_internal):
7326         Remove broken attempt at making the search bar buttons not
7327         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
7329 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7331         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
7332         Chain up to parent's dispose instead of finalize.  Fixes #334479.
7334 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7336         * widgets/rb-header.c (rb_header_sync): Escape album and
7337         artist before adding to markup.
7339 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7341         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
7342         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
7343         (rb_header_set_property), (rb_header_get_property),
7344         (rb_header_sync):
7345         Remove the GnomeUrl song links until we can do it properly.
7346         Fixes #334453.
7348 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7350         * shell/rb-source-header.c: (rb_source_header_clear_search):
7351         Remove the stored search text from the hash table, so it doesn't
7352         reappear after switching to another source and back.
7354         * sources/rb-auto-playlist-source.c: (impl_search):
7355         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
7356         * sources/rb-static-playlist-source.c: (impl_search):
7357         Make sure all sources treat impl_search(NULL) and impl_search("") the
7358         same.  Fixes #334525.
7360 2006-03-14  James Livingston  <jrl@ids.org.au>
7362         Store which thread created new entries, and make rhythmdb_commit only
7363         insert the entries for the thread that calls it. This stops one thread
7364         calling rhythmdb_commit inserting entries that are half-way through
7365         construction by another thread (as happens with audio cds). From bug
7366         330226.
7368         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7369         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
7370         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
7371         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
7372         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
7373         (rhythmdb_process_metadata_load),
7374         (rhythmdb_process_queued_entry_set_event),
7375         (rhythmdb_prop_get_type):
7377 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7379         * rhythmdb/rhythmdb-query-model.c:
7380         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
7381         (rhythmdb_query_model_finalize):
7382         Move object unrefs from _finalize into _dispose.
7383         
7384         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
7385         Remove extra g_object_ref that was causing query model leaks.
7386         
7387         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
7388         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
7389         (genre_selection_reset_cb), (rb_iradio_source_do_query):
7390         Remove the cached 'all' query, since it doesn't really help and it
7391         makes the code more complicated.  Attach the genre property view to
7392         the query model build from the search text, so only genres for
7393         stations matching the search terms are displayed.  Preserve the genre
7394         selection across searches.
7396         * widgets/rb-library-browser.c: 
7397         (rb_library_browser_class_init), (rb_library_browser_get_property):
7398         Add properties for the input and output models for the browser, and
7399         remove the 'changed' signal as we can just use notify::output-model.
7400         (ignore_selection_changes),
7401         (selection_restore_data_destroy), (query_complete_cb),
7402         (restore_selection): Helper functions for preserving selections across
7403         query model rebuilds.
7404         (rebuild_output_model):  New function for creating a query model to
7405         use as the display model for a source using the browser.
7406         (rebuild_child_model): Add a call to rebuild_output_model, add missing
7407         g_object_unrefs, reuse the parent's query model when there's no
7408         selection, and use ignore_selection_changes and restore_selection.
7409         (rb_library_browser_set_selection): rebuild_child_model emits the
7410         changed signal, so no need to do it here.
7411         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
7412         ignore_selection_changes and restore_selection. 
7413         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
7414         flag to rb_library_browser_set_model indicating whether the query is
7415         asynchronous.
7417         * sources/rb-static-playlist-source.c:
7418         (rb_static_playlist_source_class_init),
7419         (rb_static_playlist_source_dispose):
7420         (rb_static_playlist_source_constructor):  Add an extra reference on
7421         the base model, so it doesn't vanish when we set a new display model
7422         based on a search or browser selection.
7423         (impl_search): Ensure the search_text field in the source is NULL if
7424         the search box is empty.
7425         (construct_query_from_selection),
7426         (rb_static_playlist_source_do_query): Use the query model constructed
7427         from the search as the input model for the browser.
7428         (rb_static_playlist_source_browser_changed_cb): Use the browser's
7429         output model as the query model for the source.
7431         * sources/rb-auto-playlist-source.c:
7432         (rb_auto_playlist_source_finalize): Free more stuff.
7433         (rb_auto_playlist_source_constructor),
7434         (rb_auto_playlist_source_browser_changed_cb):
7435         Update for rb-library-browser changes, use the browser's output query
7436         model as the query model for the source.
7437         (impl_reset_filters), (impl_search), 
7438         (rb_auto_playlist_source_do_query),
7439         (rb_auto_playlist_source_set_query):
7440         Use the query model constructed from the search text as the input to
7441         the library browser, and when adding text to an existing search, apply
7442         the new query to the existing query model.
7443         
7444         * sources/rb-library-source.c: (rb_library_source_dispose):
7445         (rb_library_source_finalize): Chain dispose up to the parent class.
7446         (rb_library_source_constructor): Update for rb-library-browser
7447         changes. 
7448         (impl_search): Ensure search_text is NULL if the search box is empty,
7449         and use the subset flag to _do_query if text has been appended to an
7450         existing search.
7451         (search_action_changed), (impl_reset_filters):
7452         (rb_library_source_browser_changed_cb),
7453         (rb_library_source_do_query): Use the browser's output model as the
7454         query model for the source.
7456         Rework library and playlist sources to use a single query chain,
7457         and to limit the entries shown in property views based on the search
7458         terms.  Fixes bug #322787.
7460 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7462         * configure.ac:  Enable metadata helper by default, and fix a typo.
7464 2006-03-13  James Livingston  <jrl@ids.org.au>
7466         Make RBRefStrings lazily create the folded and sort-key strings when
7467         they are first used. This will same some memory by not creating ones
7468         that are never used, and delaying some of the others to when the user
7469         resorts or performs a similar action. Fixes bug 332992.
7471         * rhythmdb/rb-refstring.c: (rb_refstring_free),
7472         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
7473         (rb_refstring_get), (rb_refstring_get_folded),
7474         (rb_refstring_get_sort_key), (rb_refstring_hash),
7475         (rb_refstring_equal):
7476         * rhythmdb/rb-refstring.h:
7477         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
7479 2006-03-12  William Jon McCann  <mccann@jhu.edu>
7481         * data/ui/rhythmbox-ui.xml:
7482         * lib/rb-stock-icons.c: (rb_stock_icons_init):
7483         * lib/rb-stock-icons.h:
7484         * shell/rb-shell-player.c:
7485         * shell/rb-shell.c: (rb_shell_constructor):
7486         * shell/rb-source-header.c: (force_no_shadow),
7487         (ui_manager_add_widget_cb), (rb_source_header_constructor),
7488         (rb_source_header_class_init), (rb_source_header_init),
7489         (merge_source_ui_cb), (toolbar_set_homogeneous),
7490         (rb_source_header_set_source_internal),
7491         (rb_source_header_set_property), (rb_source_header_get_property),
7492         (rb_source_header_set_source), (rb_source_header_new),
7493         (rb_source_header_filter_changed_cb):
7494         * shell/rb-source-header.h:
7495         * sources/rb-library-source.c: (rb_library_source_class_init),
7496         (rb_library_source_init), (search_action_to_prop),
7497         (search_action_changed), (rb_library_source_constructor),
7498         (impl_search), (impl_reset_filters), (impl_get_search_actions),
7499         (construct_query_from_selection):
7500         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
7501         (rb_podcast_source_init), (search_action_to_prop),
7502         (search_action_changed), (rb_podcast_source_constructor),
7503         (construct_query_from_selection), (impl_get_ui_actions),
7504         (impl_get_search_actions):
7505         * sources/rb-source.c: (rb_source_class_init),
7506         (rb_source_get_ui_actions), (default_get_search_actions),
7507         (rb_source_get_search_actions):
7508         * sources/rb-source.h:
7510         Add a search bar.  Fixes #328618
7512 2006-03-12  James Livingston  <jrl@ids.org.au>
7514         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
7515         * shell/main.c: (main): make --no-update not stat files checking for
7516         changes, instead of doing nothing. Fixes bug 125177.
7518 2006-03-12  James Livingston  <jrl@ids.org.au>
7520         * podcast/rb-podcast-manager.c:
7521         (rb_podcast_manager_thread_parse_feed):
7522         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
7523         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
7524         having an invalid mime-type. Fixed bug 329813.
7526 2006-03-12  James Livingston  <jrl@ids.org.au>
7528         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
7529         Finally lets us close bug 309609.
7531         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
7532         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
7533         0.10
7535         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
7536         inverted logic of the editable check.
7538 2006-03-12  James Livingston  <jrl@ids.org.au>
7540         Make API doc generation work again. Fixes bug 334276.
7542         * doc/reference/Makefile.am:
7543         * doc/reference/tmpl/rb-debug.sgml:
7544         * doc/reference/tmpl/rb-druid.sgml:
7545         * doc/reference/tmpl/rb-entry-view.sgml:
7546         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
7547         * doc/reference/tmpl/rb-metadata.sgml:
7548         * doc/reference/tmpl/rb-shell.sgml:
7549         * doc/reference/tmpl/rhythmbox-unused.sgml:
7550         * doc/reference/tmpl/rhythmdb.sgml:
7552 2006-03-12  James Livingston  <jrl@ids.org.au>
7554         * shell/rb-shell-clipboard.c:
7555         (rb_shell_clipboard_set_source_internal),
7556         (rb_shell_clipboard_sync): don't try to use the source's entry view if
7557         it doesn't have one. Fixes bug 331673.
7559         * sources/rb-source.c: (rb_source_class_init): provide a default
7560         have_url implementation that returns FALSE.
7562 2006-03-12  James Livingston  <jrl@ids.org.au>
7564         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
7565         doing a distclean. Fixes bug 334221.
7568         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
7570         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
7572 2006-03-11  James Livingston  <jrl@ids.org.au>
7574         * shell/rb-shell.c: (rb_shell_window_state_cb),
7575         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
7576         update the window width/height when iconified. Stops the window
7577         changing size when it is restored from the tray, fixing bug 333824. 
7579 2006-03-11  James Livingston  <jrl@ids.org.au>
7581         Try to get cvs to actually add the necessary files for plugin support
7583 2006-03-11  James Livingston  <jrl@ids.org.au>
7585         Add a plugin framework, with basic support for Python plugins (based
7586         on gedit's). Closes bug 330523.
7588         * Makefile.am:
7589         * shell/Makefile.am:
7590         * configure.ac: necessary autofoo.
7592         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
7594         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
7595         * lib/rb-file-helpers.h:
7597         * data/glade/plugins/glade:
7598         * lib/rb-preferences.h:
7599         * plugins/*:
7600         * bindings/*: plugin framework
7602         * plugins/sample/*:
7603         * plugins/sample-python/*: sample plugins
7605         * plugins/audioscrobbler/*:
7606         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
7607         (rb_audioscrobbler_set_property),
7608         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
7609         submission into a plugin. shell/audioscrobbler.* should really be
7610         moved, but that sucks with cvs.
7612         * shell/rb-shell.h:
7613         * shell/rb-shell.c: (rb_shell_constructor),
7614         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
7615         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
7616         (rb_shell_quit): start and stop plugin framework.
7618 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7620         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
7621         (rhythmdb_entry_delete):
7622         Emit entry-deleted signals when rhythmdb_commit is called, rather than
7623         immediately, so we can't get change notifications afterwards.  
7624         Fixes #331732.
7625         (rhythmdb_process_metadata_load): Add a commit after removing an
7626         entry so we can recreate it with a different type without getting
7627         confused.
7629 2006-03-11  James Livingston  <jrl@ids.org.au>
7631         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
7632         use the drive name for audio CDs, use "Unknown CD".
7634 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7636         patch by:  James Henstridge  <james@jamesh.id.au>
7638         * sources/rb-removable-media-source.c:
7639         (rb_removable_media_source_constructor):
7640         Get the device name from the GnomeVFSDrive if possible,
7641         since this is usually a more descriptive name.  Fixes #333080.
7643 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7645         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7647         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
7648         Don't automatically download episodes when configured for manual
7649         updating.  Fixes #331564.
7651 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7653         * rhythmdb/rhythmdb-property-model.c:
7654         (rhythmdb_property_model_iter_from_string):
7655         Return an iterator for the 'all' property when name == NULL,
7656         and don't write to *iter if iter == NULL.
7658 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7660         * shell/rb-shell-player.c: (rb_shell_player_do_next):
7661         When switching to the play queue, still call _go_next on the normal
7662         play order, so self-emptying auto playlists ("play count = 0" etc.)
7663         don't restart once the queue is empty.
7665         * shell/rb-tray-icon.c:
7666         Change shortcut for 'show notifications' to 'o' so it doesn't clash
7667         with 'next'.
7669 2006-03-05  James Livingston  <jrl@ids.org.au>
7671         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
7672         don't submit tracks which could not be played. Fixed bug 333013.
7674         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
7675         tracks which could not be played.
7677 2006-03-05  James Livingston  <jrl@ids.org.au>
7679         Sync musicbrainz lookup code from Sound-Juicer cvs.
7681         * metadata/sj-metadata-musicbrainz.c:
7682         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
7683         (get_offline_track_listing), (artist_and_title_from_title),
7684         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
7685         (mb_list_albums), (mb_get_submit_url):
7686         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
7687         * metadata/sj-metadata.h:
7688         * metadata/sj-structures.c: (track_details_free),
7689         (album_details_free):
7690         * metadata/sj-structures.h:
7692 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7694         * lib/rb-debug.h:
7695         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
7696         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
7697         (rb_profiler_reset), (rb_profiler_free):
7698         Filter debug output by matching the file and function names against a
7699         match string.
7701         * shell/main.c: (main):
7702         Add -D command line option to specify the debug match string.
7704         * shell/rb-removable-media-manager.c:
7705         (rb_removable_media_manager_mount_volume):
7706         Fix some typos in debug output.
7708 2006-03-03  James Livingston  <jrl@ids.org.au>
7710         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
7711         * shell/rb-shell.c: (rb_shell_load_uri):
7712         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
7713         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
7714         use the new "recurse" property from totem-plparser, if present. Stop
7715         RB hanging for new users who don't have a 'net connection. From bug
7716         331508.
7718 2006-03-02  Bastien Nocera  <hadess@hadess.net>
7720         * shell/rb-removable-media-manager.c:
7721         (rb_removable_media_manager_mount_volume):
7722         * sources/Makefile.am:
7723         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
7724         Fix missing files on make dist (conditional files), only build the
7725         N770 support if there's HAL support, as we have no other ways of
7726         detecting it
7728 2006-03-03  James Livingston  <jrl@ids.org.au>
7730         * shell/rb-shell-clipboard.c:
7731         (rb_shell_clipboard_set_source_internal): really fix it this time.
7732         hopefully.
7734 2006-03-03  James Livingston  <jrl@ids.org.au>
7736         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
7737         with the idle function not being removed.
7739 2006-03-02  James Livingston  <jrl@ids.org.au>
7741         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
7742         * widgets/rb-entry-view.h: add function for determining whether all
7743         entries are selected.
7745         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
7746         (rb_shell_clipboard_set_source_internal),
7747         (rb_shell_clipboard_finalize),
7748         (rb_shell_clipboard_idle_poll_deletions),
7749         (rb_shell_clipboard_entryview_changed_cb),
7750         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
7751         removals, to update things.
7753         (rb_shell_clipboard_sync): update the Select All and Select None
7754         sensitivity, based on what is selected. Fixed bug 172220.
7756 2006-03-02  James Livingston  <jrl@ids.org.au>
7758         * widgets/rb-library-browser.c: (rebuild_child_model): save and
7759         restore the selections of later models. This means that selecting the
7760         artist for the selected album does not reset the album selection.
7762 2006-03-02  James Livingston  <jrl@ids.org.au>
7764         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
7765         Stops it emitting critical warnings.
7767 2006-03-02  James Livingston  <jrl@ids.org.au>
7769         * lib/rb-file-helpers.c: (rb_uri_append_uri):
7770         * lib/rb-file-helpers.h: Add uri concatenation function for when the
7771         second fragment is already escaped.
7773         * sources/rb-generic-player-source.c:
7774         (rb_generic_player_source_class_init),
7775         (rb_generic_player_source_constructor), (impl_show_popup),
7776         (rb_generic_player_source_load_playlists),
7777         (rb_generic_player_source_transform_playlist_uri),
7778         (handle_playlist_entry_cb), (visit_playlist_dirs),
7779         (default_load_playlists), (default_transform_playlist_uri):
7780         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
7781         the device. Allow subclasses to override the playlist loading, and
7782         (playlist uri)->(actual uri) mapping. A lot of devices which have
7783         playlists won't work right now, but people will see them and hopefully
7784         file bugs.
7786         * sources/rb-psp-source.c: (rb_psp_source_class_init),
7787         (rb_psp_source_create_playlists): Adapt the PSP for the above change
7788         
7789         * sources/Makefile.am:
7790         + sources/rb-nokia770-source.{c,h}:
7791         * shell/rb-removable-media-manager.c:
7792         (rb_removable_media_manager_mount_volume): Add support for reading
7793         playlists of Nokia 770s.
7795 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7797         * data/glade/podcast-properties.glade:
7798         * podcast/rb-podcast-properties-dialog.c:
7799         (rb_podcast_properties_dialog_init),
7800         (rb_podcast_properties_dialog_update),
7801         (rb_podcast_properties_dialog_update_location),
7802         (rb_podcast_properties_dialog_update_download_location):
7803         Add 'download location' field showing the path to the downloaded copy.
7804         Fixes #330696.
7806 2006-03-01  Bastien Nocera  <hadess@hadess.net>
7808         * configure.ac: simplify HAVE_HAL define
7810 2006-03-01  Bastien Nocera  <hadess@hadess.net>
7812         * configure.ac:
7813         * lib/rb-file-helpers.c: (rb_uri_append_path):
7814         * lib/rb-file-helpers.h:
7815         * shell/rb-removable-media-manager.c:
7816         (rb_removable_media_manager_mount_volume):
7817         * sources/Makefile.am:
7818         * sources/rb-ipod-source.c:
7819         * sources/rb-psp-source.*:
7820         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
7821         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
7823 2006-03-02  James Livingston  <jrl@ids.org.au>
7825         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7826         (rb_shell_player_play), (rb_shell_player_jump_to_current),
7827         (swap_playing_source), (rb_shell_player_playpause),
7828         (rb_shell_player_sync_buttons), (actually_set_playing_source),
7829         (rb_shell_player_set_playing_source_internal): check for the entry
7830         view being NULL before trying to use it. Lets us support sources which
7831         don't have an entry view. From bug 331673.
7833 2006-03-01  Bastien Nocera  <hadess@hadess.net>
7835         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
7836         use gnome_vfs_read_entire_file with a URI, not a local filename
7838 2006-03-01  James Livingston  <jrl@ids.org.au>
7840         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
7841         first-seen and last-seen when merging duplicate entries.
7843 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7845         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
7846         * widgets/rb-property-view.h:  New function, allowing custom 
7847         interactive search functions for property views.
7848         
7849         * sources/rb-podcast-source.c: 
7850         (feed_select_change_cb): Only do a new query when the selection
7851         actually changes.
7852         (rb_podcast_source_constructor),
7853         (rb_podcast_source_feed_title_search_func):
7854         Interactive search function for podcast feed titles.  Fixes #327451.
7856 2006-03-01  James Livingston  <jrl@ids.org.au>
7858         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
7859         the uri in the callback, since it causes symbols to not be escaped.
7860         Fixes bug 332976.
7862         * data/ui/rhythmbox-ui.xml:
7863         * sources/rb-import-errors-source.c:
7864         (rb_import_errors_source_class_init),
7865         (rb_import_errors_source_constructor), (impl_get_status),
7866         (impl_move_to_trash),
7867         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
7868         import errors source
7869         
7870         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
7871         (rb_entry_view_append_column): unescape the URI for display.
7873 2006-03-01  James Livingston  <jrl@ids.org.au>
7875         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
7876         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
7877         function fails.
7879 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
7881         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
7882         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
7883         * sources/rb-play-queue-source.c:
7884         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
7885         (rb_play_queue_source_update_count):  Use "Play Queue" instead
7886         of "Queued Songs".
7888         Fixes #331637.
7890 2006-03-01  James Livingston  <jrl@ids.org.au>
7892         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
7893         Fixes bug 332913.
7895 2006-03-01  James Livingston  <jrl@ids.org.au>
7897         * daapsharing/rb-daap-mdns-browser-howl.c:
7898         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
7899         * daapsharing/rb-daap-mdns-publisher-avahi.c:
7900         (rb_daap_mdns_publisher_class_init),
7901         (rb_daap_mdns_publisher_finalize):
7902         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
7903         * player/rb-recorder-gst.c: (rb_recorder_class_init),
7904         (rb_recorder_finalize):
7905         * rhythmdb/rhythmdb-query-model.c:
7906         (rhythmdb_query_model_constructor):
7907         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
7908         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
7909         * sources/rb-playlist-source-recorder.c:
7910         (rb_playlist_source_recorder_style_set),
7911         (rb_playlist_source_recorder_class_init),
7912         (rb_playlist_source_recorder_finalize):
7913         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
7914         other classes in the same way, so they don't break when derived from.
7916 2006-03-01  James Livingston  <jrl@ids.org.au>
7918         * sources/rb-generic-player-source.c:
7919         (rb_generic_player_source_constructor): don't get the parent class in
7920         a dumb way, and it breaks when the class is derived from.
7922 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
7924         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
7926 2006-03-01  James Livingston  <jrl@ids.org.au>
7928         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
7929         not work in glib 2.8 systems.
7931 2006-03-01  James Livingston  <jrl@ids.org.au>
7933         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
7934         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
7935         say it is crap.
7937         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
7938         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
7939         podcasts on ion-local places
7941         * rhythmdb/gsequence.c: (g_sequence_node_new),
7942         (g_sequence_node_free): use gslice if we are building against glib
7943         2.10.
7945         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
7946         local files too, so it doesn't block.
7948 2006-02-28  James Livingston  <jrl@ids.org.au>
7950         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
7951         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
7952         stats the file. Stops the UI blocking while stats are done.
7954 2006-02-28  James Livingston  <jrl@ids.org.au>
7956         * sources/rb-static-playlist-source.c:
7957         (rb_static_playlist_source_class_init),
7958         (rb_static_playlist_source_constructor), (impl_reset_filters),
7959         (impl_get_property_views), (impl_browser_toggled),
7960         (rb_static_playlist_source_do_query),
7961         (rb_static_playlist_source_browser_changed_cb): add browsers to static
7962         playlists. From bug 118862.
7964         * sources/rb-play-queue-source.c:
7965         (rb_play_queue_source_class_init): disable them for the play queue.
7967 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
7969         * data/glade/library-prefs.glade:  Add a mnemonic.
7970         * sources/rb-library-source.c:
7971         (rb_library_source_location_button_clicked_cb):  Use title
7972         capitalization for window title.
7974 2006-02-28  James Livingston  <jrl@ids.org.au>
7976         * sources/rb-auto-playlist-source.c:
7977         (construct_query_from_selection): don't create a subquery for only one
7978         criteria, as it's a silly effifiency degredation.
7980 2006-02-28  James Livingston  <jrl@ids.org.au>
7982         * rhythmdb/rhythmdb.h:
7983         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
7984         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
7985         saved to disk
7987         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
7988         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
7989         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
7990         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
7991         IGNORE (e.g. known video stream) create an entry of the Ignore type.
7992         This will make importing files quicker as we don't need to try files
7993         that we know are not going to be interesting - especially useful when
7994         using the library watching facility.
7996         Fixes bug 323179.
7998 2006-02-28  James Livingston  <jrl@ids.org.au>
8000         * shell/rb-shell.c: (rb_shell_constructor),
8001         (rb_shell_set_visibility): fix browser and source-list pane
8002         positioning, that I broke with the "remember visibility" patch.
8004 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8006         * metadata/rb-metadata-dbus-service.c: (main):
8007         Change argument handling so you can use --debug with the --load and
8008         --can-save test modes.
8009         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
8010         Use a separate GMainContext, not the default one.  Probably fixes
8011         #332344.
8013 2006-02-27  James Livingston  <jrl@ids.org.au>
8015         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
8016         first starting up. Fixes bug 330342.
8018 2006-02-27  James Livingston  <jrl@ids.org.au>
8020         * sources/rb-sourcelist-model.c:
8021         (rb_sourcelist_model_set_dnd_targets):
8022         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
8023         COPY action for draging sources and tracks, not MOVE as well. Stops
8024         Nautilus moving file away, and fixes bug 332488.
8026 2006-02-27  James Livingston  <jrl@ids.org.au>
8028         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
8030         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
8031         and Last Played metadata off iPods. Closes bug 324648.
8033 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8035         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
8036         Disable audioscrobbler when run with the --no-registration flag, since
8037         last.fm doesn't allow multiple concurrent clients per user.
8039 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8041         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
8042         Rename renamable sources when F2 is pressed when the sourcelist has
8043         focus.  Fixes #330700.
8045 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8047         * shell/rb-playlist-manager.c: (cleanup_edit_data),
8048         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
8049         (rb_playlist_manager_cmd_edit_automatic_playlist):
8050         Fix various crashes when deleting auto playlists previously edited
8051         by disconnecting signal handlers when the query editor is closed or
8052         the playlist is deleted.
8054 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8056         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
8057         removed load failure dialog, and actually use the friendly file type
8058         name in error messages.
8060 2006-02-24  James Livingston  <jrl@ids.org.au>
8062         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
8064         * sources/rb-library-source.c:
8065         (rb_library_source_location_button_clicked_cb),
8066         (rb_library_source_preferences_sync),
8067         (rb_library_source_library_location_cb): convert the library URI to
8068         for display, and back again. Fixes bug 332356.
8070 2006-02-23  James Livingston  <jrl@ids.org.au>
8072         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
8073         (rhythmdb_process_metadata_load), (monitor_subdirectory),
8074         (rhythmdb_sync_library_location): don't monitor files at all if
8075         watching is turned off. From bug 323096.
8077 2006-02-23  James Livingston  <jrl@ids.org.au>
8079         * data/rhythmbox.schemas:
8080         * lib/rb-preferences.h:
8081         * shell/rb-shell.c: (rb_shell_constructor),
8082         (rb_shell_set_visibility): remember main window visibility between
8083         sessions. Fixes bug 127320.
8085 2006-02-23  James Livingston  <jrl@ids.org.au>
8087         * data/glade/library-prefs.glade:
8088         * sources/rb-library-source.c: (impl_get_config_widget),
8089         (rb_library_source_location_button_clicked_cb),
8090         (rb_library_source_preferences_sync),
8091         (rb_library_source_library_location_cb),
8092         (rb_library_source_watch_toggled_cb): change the library-location
8093         widgets from the file-chooser drop menu to a text entry and Browse
8094         button. This is needed to prevent the location from chaning if the
8095         directory cannot be found. Fixes bug 328414.
8097 2006-02-23  James Livingston  <jrl@ids.org.au>
8099         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
8100         item. Fixes bug 329042.
8102 2006-02-23  James Livingston  <jrl@ids.org.au>
8104         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8106         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
8107         comma in some podcast feeds. Fixes bug 332194.
8109 2006-02-23  James Livingston  <jrl@ids.org.au>
8111         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
8112         lower priority.
8114         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
8115         the internal audio cd URIs from "cdda://device:track" to
8116         "cdda://track#device" as it makes processing much easier.
8118         * shell/rb-shell-player.c: (rb_shell_player_open_location):
8119         * player/rb-player-gst.c: don't have the shell close the player
8120         between songs, as doing that should be backend-specific. Make the
8121         gstreamer backend close before starting a new track, unless the old
8122         and new ones are both tracks on the same audio cd. Just seek in that
8123         case.
8125 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8127         * doc/reference/rhythmbox.types: Fix doc build a bit more.
8129 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8131         * configure.ac: Enable more warnings in my stupid setup too.
8132         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
8133         #332210.
8135 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8137         * sources/rb-missing-files-source.h,
8138         * sources/rb-missing-files-source.c,
8139         * sources/rb-import-errors-source.h,
8140         * sources/rb-import-errors-source.c:
8141         Add library meta-sources, showing missing files and import errors.
8142         Fixes #167763, #142322.
8144         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
8145         * sources/rb-sourcelist-model.h:
8146         * sources/rb-sourcelist.c: (rb_sourcelist_append),
8147         (match_source_to_iter), (rb_sourcelist_source_to_iter),
8148         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
8149         (visibility_notify_cb):
8150         Store source visibility in the sourcelist model, so we can determine
8151         child source counts correctly and get the sourcelist expander column
8152         right.
8153         
8154         * widgets/rb-entry-view.h:
8155         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8156         (rb_entry_view_append_column), (set_column_visibility):
8157         Allow the creator of the entry view to specify which columns are
8158         always visible.
8160         * sources/rb-source.h:
8161         * sources/rb-source.c: (_autohide_update_visibility),
8162         (_rb_autohide_source_row_deleted_cb),
8163         (_rb_autohide_source_row_inserted_cb),
8164         (_rb_source_hide_when_empty):
8165         Allow sources to automatically hide themselves when empty.
8166         
8167         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
8168         * sources/rb-library-source.c: (rb_library_source_constructor):
8169         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8170         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8171         Explicitly specify which columns are always visible.
8172         
8173         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
8174         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
8175         Remove load error signal handling and load failure dialog.
8176         Create missing files and import errors sources for the library.
8178         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
8179         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
8180         Create DB entries for import errors rather than emitting the 'load
8181         error' signal; mark loaded entries visible.
8182         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
8183         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
8184         (rhythmdb_prop_get_type): Store string form of last seen time for
8185         hidden entries, since it's used in the missing files source.
8186         (rhythmdb_entry_import_error_get_type): 
8187         Add entry type for import errors.
8188         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
8189         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
8190         (rhythmdb_entry_move_to_trash_set_error),
8191         (rhythmdb_entry_move_to_trash):  
8192         Correct spelling, add missing rhythmdb_commit.
8193         * rhythmdb/rhythmdb.h:  
8194         Add import error entry type and last seen string property.
8195         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
8196         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8197         (save_entry):  Ignore string form of 'last seen' property.
8199         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
8200         Don't try to play hidden entries or import error entries.
8202         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
8203         * sources/Makefile.am: Add meta-source files
8204         * widgets/Makefile.am: Remove load failure dialog files
8206 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8208         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8209         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
8210         few bits and pieces.
8212 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8214         * metadata/test-metadata.c: (load_metadata_cb):
8215         Fix compile warning for ignoring return value from getcwd, #332064.
8217 2006-02-21  James Livingston  <jrl@ids.org.au>
8219         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
8220         (edit_auto_playlist_deleted_cb),
8221         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
8222         playlist editor non-modal. Fixes bug 320030.
8224 2006-02-21  James Livingston  <jrl@ids.org.au>
8226         * shell/rb-shell.c: (rb_shell_constructor):
8227         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
8228         (rb_header_set_show_artist_album):
8229         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
8230         (rb_song_display_box_sync): make the queue sidebar and song display
8231         not get affected by gtk_widget_show_all. Fixes bug 332001.
8233 2006-02-21  James Livingston  <jrl@ids.org.au>
8235         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
8237         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
8238         feeds which use timezone names instead of offsets. Doesn't actually
8239         parse the timezone name since they are not standardised. Fixes bug
8240         331691.
8242 2006-02-21  James Livingston  <jrl@ids.org.au>
8244         * help/C/figures/rb-notification-area.png:
8245         * help/C/figures/rb-sidebar.png:
8246         * help/C/quick-reference.xml: remove obsolete files from CVS.
8248         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
8249         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
8250         (rhythmdb_query_free), (rhythmdb_query_serialize),
8251         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
8252         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
8254         * widgets/rb-query-creator-properties.c: add prefix and suffix
8255         (escapedStringCriteriaGetWidgetData): use better escaping, so it
8256         doesn't escape the ':' separator in uris.
8258 2006-02-21  James Livingston  <jrl@ids.org.au>
8260         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
8261         on startup.
8263 2006-02-21  James Livingston  <jrl@ids.org.au>
8265         * NEWS: update with recent changes
8267 2006-02-21  James Livingston  <jrl@ids.org.au>
8269         * shell/rb-shell.c: (rb_shell_constructor),
8270         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
8271         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
8272         (rb_druid_browse_clicked_cb), (do_response):
8273         * widgets/rb-druid.h: Make running the druid not block RBShell
8274         starting up. This is required so that bonobo registration doesn't time
8275         out. Fixed bug 318766.
8277 2006-02-21  James Livingston  <jrl@ids.org.au>
8279         * rhythmdb/rhythmdb-property-model.c:
8280         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
8281         hash table after using it, not before. Fixed bug 331922.
8283 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8285         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
8286         (rb_shell_view_queue_as_sidebar_changed_cb):
8287         When playing from the queue, only attempt to highlight the queue
8288         source in the source list if it's actually visible there.  Otherwise,
8289         leave the preempted source highlighted.  Mostly fixes #330819.
8291 2006-02-20  James Livingston  <jrl@ids.org.au>
8293         * rhythmdb/rhythmdb-property-model.c:
8294         (rhythmdb_property_model_row_inserted_cb),
8295         (rhythmdb_property_model_prop_changed_cb),
8296         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
8297         store the roperty value in the entry-mapping table, so that receiving
8298         the remove signal from a query model before we get notified of a
8299         change doesn't cause a crash. Fixes bug 331770.
8301 2006-02-20  James Livingston  <jrl@ids.org.au>
8303         * data/ui/rhythmbox-ui.xml:
8304         * sources/rb-play-queue-source.c:
8305         (rb_play_queue_source_class_init),
8306         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
8307         playlist things in the queue popup source. From 330490.
8309         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
8310         previous commit
8312 2006-02-20  James Livingston  <jrl@ids.org.au>
8314         * widgets/rb-song-info.c: (rb_song_info_response_cb),
8315         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
8316         attempt to sync data for non-editable entries when using
8317         next/previous. Don't write our Year if it wasn't changed. Fixes bug
8318         331762.
8320 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
8322         * .cvsignore:
8323         * Makefile.am:
8324         * autogen.sh:
8325         * configure.ac:
8326         * help/.cvsignore:
8327         * help/Makefile.am: ported to gnome-doc-utils
8328         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
8329         * help/ChangeLog: added, for translators
8330         * help/C/rhytmbox-C.omf: removed, no longer used
8331         Know issue: figures are installed, but some are not showed; manual
8332         description added, but not showed in Yelp while browsing. I'll
8333         investigate, maybe are needed some little changes to
8334         help/C/rhythmbox.xml.
8336 2006-02-20  James Livingston  <jrl@ids.org.au>
8338         * data/ui/rhythmbox-ui.xml:
8339         * help/C/figures/rb-adv.png:
8340         * help/C/figures/rb-asst-finish.png:
8341         * help/C/figures/rb-asst-library.png:
8342         * help/C/figures/rb-asst-start.png:
8343         * help/C/figures/rb-basic.png:
8344         * help/C/figures/rb-browser.png:
8345         * help/C/figures/rb-context-menu.png:
8346         * help/C/figures/rb-empty.png:
8347         * help/C/figures/rb-full-play.png:
8348         * help/C/figures/rb-group-auto.png:
8349         * help/C/figures/rb-group-create.png:
8350         * help/C/figures/rb-group.png:
8351         * help/C/figures/rb-imported.png:
8352         * help/C/figures/rb-iradio-add.png:
8353         * help/C/figures/rb-iradio.png:
8354         * help/C/figures/rb-nextprev.png:
8355         * help/C/figures/rb-nobrowse-play.png:
8356         * help/C/figures/rb-notification-area-menu.png:
8357         * help/C/figures/rb-player.png:
8358         * help/C/figures/rb-prefs-general.png:
8359         * help/C/figures/rb-prefs-ipod.png:
8360         * help/C/figures/rb-prefs-library.png:
8361         * help/C/figures/rb-prefs.png:
8362         * help/C/figures/rb-repeat.png:
8363         * help/C/figures/rb-search.png:
8364         * help/C/figures/rb-shuffle.png:
8365         * help/C/figures/rb-stats.png:
8366         * help/C/figures/rb-toolbar-editor.png:
8367         * help/C/figures/rb-volume-mute.png:
8368         * help/C/figures/rhythmbox-group.png:
8369         * help/C/figures/rhythmbox-tray-icon.png:
8370         * help/C/user-guide.xml: remove old stuff from cvs
8372 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8374         * metadata/rb-metadata-dbus-client.c: 
8375         * metadata/rb-metadata-dbus-service.c:
8376         * metadata/rb-metadata-dbus.c:
8377         * metadata/rb-metadata-dbus.h:
8378         New files, adding an external service for reading and writing
8379         metadata, and an implementation of the RBMetaData interface that uses
8380         dbus to communicate with it.
8381         
8382         * metadata/rb-metadata.h,
8383         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
8384         (rb_metadata_get_field_name): Put metadata details in a static array
8385         instead of using a hash table, and add a field for language code (not
8386         used for anything)
8387         * metadata/rb-metadata-gst.c: Updates for changes in
8388         rb-metadata-common.c, fix signal handler closure leak for the typefind
8389         element's have-type signal, and add XML to the list of types we ignore.
8390         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
8391         Update for changes to rb_metadata_get_field_type
8392         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
8393         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
8394         here and there.
8395         
8396         * configure.ac: Add --enable-metadata-helper option (not enabled by
8397         default) to use the external metadata service
8398         * metadata/Makefile.am: Add new files
8399         * metadata/test-metadata.c:  Test program for the metadata service
8401         Fixes #329597. 
8403 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8405         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
8406         * sources/rb-podcast-source.c: (impl_get_ui_actions),
8407         (rb_podcast_source_cmd_new_podcast):
8408         Move 'new podcast' action to the podcast source, and add it to the
8409         toolbar.  Fixes #331562.
8411 2006-02-19  James Livingston  <jrl@ids.org.au>
8413         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
8414         menus, and away from move-to-trash. Fixes bug 331013.
8416 2006-02-19  James Livingston  <jrl@ids.org.au>
8418         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
8419         when deleting last entry. Fixes bug 331712.
8421 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8423         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8424         (rb_entry_view_button_press_cb):
8425         * widgets/rb-entry-view.h: Emit show-popup when right clicked
8426         anywhere, and include a flag indicating whether the click was over an
8427         entry or not.
8428         
8429         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
8430         (rb_playlist_source_songs_show_popup_cb):
8431         * sources/rb-playlist-source.h:
8432         Add the 'over entry' flag to the class show popup method, and in the
8433         default handler, ignore right clicks when not over an entry.
8434         
8435         * sources/rb-iradio-source.c:
8436         (rb_iradio_source_songs_show_popup_cb):
8437         * sources/rb-library-source.c:
8438         (rb_library_source_songs_show_popup_cb):
8439         * sources/rb-podcast-source.c:
8440         (rb_podcast_source_songs_show_popup_cb):
8441         Show the source list popup menu when right clicked while not over an
8442         entry.
8444         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
8445         For the queue sidebar, always display the popup so the 'clear queue'
8446         action is available regardless of where you click.  For the queue
8447         source, only display the popup when right clicked over an entry.
8448         Fixes #331392.
8450 2006-02-19  James Livingston  <jrl@ids.org.au>
8452         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
8453         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
8454         entry view, when we're not even using it
8456         * rhythmdb/rhythmdb-property-model.c:
8457         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
8458         function, rather than a copy of the code.
8460         * shell/rb-playlist-manager.c:
8461         (rb_playlist_manager_playlist_row_inserted_cb),
8462         (rb_playlist_manager_set_source_internal),
8463         (rb_playlist_manager_playlist_entries_changed): use the query-model
8464         directly, rather than the source's entry view.
8466         * shell/rb-source-header.c: don't use the entry view, just select the
8467         source widget.
8469 2006-02-18  James Livingston  <jrl@ids.org.au>
8471         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8473         * help/C/figures/rb-iradio-main.png:
8474         * help/C/figures/rb-notification-area-menu.png:
8475         * help/C/figures/rb-notification-window.png:
8476         * help/C/figures/rb-notification-zone.png:
8477         * help/C/figures/rb-podcast-main.png:
8478         * help/C/figures/rb-statusbar.png:
8479         * help/C/figures/rb-toolbar-prevplaynext.png:
8480         * help/C/figures/rb-toolbar-repeat.png:
8481         * help/C/figures/rb-toolbar-shuffle.png:
8482         * help/C/figures/rb-toolbar.png:
8483         * help/C/figures/rb-volume-changer.png:
8484         * help/C/figures/rb-window-small.png:
8485         * help/C/figures/rb-window.png:
8486         * help/C/rhythmbox.xml: Update user guide with some of the changes
8487         that have occurred after 0.8.8. From bug 314001.
8489 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8491         * rhythmdb/rhythmdb-query-results.h,
8492           rhythmdb/rhythmdb-query-results.c:
8493         New interface for objects that accept query results from RhythmDB.
8495         * rhythmdb/rhythmdb-query-model.c:
8496         (rhythmdb_query_model_query_results_init),
8497         (rhythmdb_query_model_set_query),
8498         (rhythmdb_query_model_add_results),
8499         (rhythmdb_query_model_query_complete):
8500         * rhythmdb/rhythmdb-query-model.h:
8501         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
8503         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
8504         (rhythmdb_tree_do_full_query):
8505         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
8506         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
8507         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
8508         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
8509         * rhythmdb/rhythmdb.h:
8510         Pass query results through the RhythmDBQueryResults interface, rather
8511         than directly to a RhythmDBQueryModel.
8513         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
8514         (rb_podcast_manager_db_entry_deleted_cb):
8515         * sources/rb-auto-playlist-source.c:
8516         (rb_auto_playlist_source_do_query),
8517         (rb_auto_playlist_source_set_query):
8518         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
8519         * sources/rb-library-source.c: (rb_library_source_constructor),
8520         (rb_library_source_do_query):
8521         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8522         (rb_podcast_source_do_query):
8523         * rhythmdb/rhythmdb-property-model.c:
8524         (rhythmdb_property_model_drag_data_get):
8525         Cast the query model to RhythmDBQueryResults when passing to one of
8526         the RhythmDB query methods.
8528         * rhythmdb/Makefile.am: Add new files.
8530 2006-02-18  James Livingston  <jrl@ids.org.au>
8532         * data/ui/rhythmbox-ui.xml:
8533         * shell/rb-playlist-manager.c:
8534         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
8535         "queue playlist" item to source context menu. Fixes bug 330490.
8537 2006-02-18  James Livingston  <jrl@ids.org.au>
8539         * data/glade/general-prefs.glade:
8540         * shell/rb-shell-preferences.c:
8541         (rb_shell_preferences_column_check_changed_cb),
8542         (rb_shell_preferences_sync):
8543         * sources/rb-library-source.c: (rb_library_source_constructor):
8544         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8545         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
8546         (rb_entry_view_append_column): Add a "quality" colume which indicates
8547         the bitrate of media. Part of bug 167659.
8549 2006-02-18  James Livingston  <jrl@ids.org.au>
8551         * shell/rb-play-order.c: (do_next_idle_cb),
8552         (default_playing_entry_removed): move to next track when playing entry
8553         is deleted. Fixes bug 131150.
8555         * shell/rb-shell-player.h: remove ancient stuff
8557 2006-02-17  William Jon McCann  <mccann@jhu.edu>
8559         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
8560         (rb_shell_clipboard_set_property): 
8561         * shell/rb-shell.c (rb_shell_sync_party_mode):
8562         Trigger a resync of the clipboard properties when changing party mode.
8564 2006-02-17  William Jon McCann  <mccann@jhu.edu>
8566         * sources/rb-static-playlist-source.c: Fix includes.
8568         * sources/rb-source.c (rb_source_can_rename) 
8569         (rb_source_can_delete, rb_source_can_move_to_trash):
8570         Return FALSE if in party mode.
8572         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
8573         Replace fullscreen with party mode.
8574         (rb_shell_window_delete_cb): Don't quit if in party mode.
8575         (rb_shell_view_party_mode_changed_cb): Setup party mode.
8576         (window_state_event_cb): Try to deiconify shell when iconified
8577         in party mode.
8578         (rb_shell_sync_party_mode): Sync party mode properties.
8579         Currently, that means [de]sensitizing close, quit, and small-display,
8580         going into fullscreen mode with window stuck and kept above, and
8581         toggling queue-only for the shell player.
8582         (rb_shell_sync_smalldisplay): Sensitive party mode.
8583         (rb_shell_get_party_mode): Get party mode setting.
8585         * shell/rb-shell-player.c (rb_shell_player_class_init) 
8586         (rb_shell_player_set_property, rb_shell_player_get_property):
8587         Add queue-only property.
8588         (rb_shell_player_entry_activated_cb): If in party mode
8589         only queue the entry on activation.
8591         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
8592         Break out from set_properties.  Desensitize some actions when
8593         in party mode.
8594         (rb_playlist_manager_set_property): Break out set_source_internal.
8596         * data/rhythmbox.schemas: Remove fullscreen mode.
8598         * data/ui/rhythmbox-ui.xml: Replace fullscreen
8599         action with party mode.
8601         Partial fix for #323933
8603 2006-02-17  James Livingston  <jrl@ids.org.au>
8605         * configure.ac:
8606         * shell/rb-removable-media-manager.c:
8607         (get_nautilus_burn_drive_for_path),
8608         (rb_removable_media_manager_playing_uri_changed_cb): only use
8609         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
8610         over the list when it doesn't.
8612 2006-02-17  James Livingston  <jrl@ids.org.au>
8614         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
8615         (rb_iradio_source_first_time_changed): Only do the import on the
8616         first change from FALSE to TRUE.
8618         * sources/rb-library-source.c:
8619         (rb_library_source_preferences_sync),
8620         (rb_library_source_library_location_cb): set the first-run done flag
8621         if the user presses close and then sets their watches library
8622         location. Fixes bug 325997.
8624 2006-02-17  James Livingston  <jrl@ids.org.au>
8626         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
8627         removable media manager gobject properties
8629         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
8630         (split_drive_from_cdda_uri),
8631         (rb_removable_media_manager_playing_uri_changed_cb),
8632         (rb_removable_media_manager_load_media): stop polling a cd drive
8633         when we are playing from it. Part of bug 330716.
8635 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8637         * rhythmdb/rhythmdb-query-model.c:
8638         (rhythmdb_query_model_set_property),
8639         (rhythmdb_query_model_finalize),
8640         (rhythmdb_query_model_base_entry_removed):
8641         Propagate entry removal from base models out to attached property
8642         models.  Fixes the rest of #331165.
8644 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8646         * rhythmdb/rhythmdb-property-model.c:
8647         (rhythmdb_property_model_row_inserted_cb),
8648         (rhythmdb_property_model_prop_changed_cb),
8649         (rhythmdb_property_model_insert):
8650         Don't store NULL as a hash table value if we want to use
8651         g_hash_table_lookup to check if a key exists, and get the checks for
8652         how and whether to handle entry changes the right way around.
8653         Fixes #331211 and half of #331165.
8655 2006-02-16  James Livingston  <jrl@ids.org.au>
8657         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
8658         the audio cd's TOC in a separate thread, so it doesn't block the UI.
8659         Fixes bug 329942.
8661 2006-02-16  James Livingston  <jrl@ids.org.au>
8663         * widgets/rb-library-browser.c: (reset_view_cb): make View All
8664         actually reset the browsers.
8666 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8668         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
8669         Escape the strings we pass into libnotify so we don't get blank
8670         notifications when the song name contains '&' etc.  Fixes #330784.
8672 2006-02-16  James Livingston  <jrl@ids.org.au>
8674         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
8675         enable "View All" when there is only a search box and no browser.
8676         Fixes bug 331395.
8678 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8680         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
8681         popup menu, which I forgot to commit with the patch for bug #330014.
8683 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8685         * shell/rb-shell-player.c: (open_location_thread):
8686         Sync button and entry view state once we've started the player, so the
8687         entry view gets into the playing state for iradio.
8689 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8691         * shell/rb-shell-player.c: (open_location_thread):
8692         Take GDK lock before doing anything UI-related.
8694 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8696         * shell/rb-shell.c: Move 'new iradio station' action to
8697         iradio source.
8699         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
8700         (rb_iradio_source_init), (rb_iradio_source_finalize),
8701         (rb_iradio_source_constructor):
8702         Remove some unused stuff.
8704         (guess_uri_scheme), (rb_iradio_source_add_station),
8705         (rb_iradio_source_add_from_playlist),
8706         (impl_get_ui_actions), (new_station_location_added),
8707         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
8708         action, include it in the toolbar, and make sure the URI we add has a
8709         scheme.  Fixes #327059, more or less.
8711 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8713         * sources/rb-play-queue-source.c:
8714         (rb_play_queue_source_class_init),
8715         (rb_play_queue_source_constructor),
8716         (rb_play_queue_source_update_count),
8717         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
8718         Add a toolbar button to clear the play queue, and make it sensitive
8719         only when there are entries in the queue.  Fixes #330014.
8721         * sources/rb-source.c: (_rb_source_register_action_group):
8722         * sources/rb-source.h:  Add helper function to register an
8723         action group for a source.
8725         * sources/rb-library-source.c: (rb_library_source_constructor):
8726         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8727         (register_action_group):  Use _rb_source_register_action_group.
8729 2006-02-15  James Livingston  <jrl@ids.org.au>
8731         * widgets/rb-song-info.c: (rb_song_info_add_completion),
8732         (rb_song_info_constructor), (rb_song_info_set_property): make
8733         tag-editing completion work for albums too.
8735 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8737         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
8738         Check the 'limit' checkbox for time-limited playlists.
8740 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
8742         * widgets/rb-song-info.c: Prove text-completion when editing title,
8743         artist or album
8745 2006-02-14  James Livingston  <jrl@ids.org.au>
8747         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
8748         tray icon popup menu. Fixes bug 331026.
8750 2006-02-14  James Livingston  <jrl@ids.org.au>
8752         * data/iradio-initial.pls: update the Virgin Radio stations to use the
8753         Ogg Vorbis streams, instead of the MP3 ones.
8755 2006-02-14  James Livingston  <jrl@ids.org.au>
8757         * rhythmdb/rhythmdb-property-model.c:
8758         (rhythmdb_property_model_class_init),
8759         (rhythmdb_property_model_drag_data_get):
8760         * rhythmdb/rhythmdb-query-model.c:
8761         (rhythmdb_query_model_title_sort_func):
8762         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
8763         LOCATION as the key. Fixes bug 330601.
8765 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8767         * sources/rb-playlist-source.c: (playlist_iter_func):
8768         Make it compile with older versions of totem-plparser too.      
8770 2006-02-13  James Livingston  <jrl@ids.org.au>
8772         * rhythmdb/rhythmdb.h:
8773         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
8774         structure private, since things should use the accessor functions
8775         rather than manipulating it directly - Only RhythmDB and the
8776         implementation classes should access it directly. Part of the RhythmDB
8777         cleanup of bug 330226.
8779         * iradio/rb-station-properties-dialog.c:
8780         (rb_station_properties_dialog_update_title),
8781         (rb_station_properties_dialog_update_title_entry),
8782         (rb_station_properties_dialog_update_genre),
8783         (rb_station_properties_dialog_update_location),
8784         (rb_station_properties_dialog_update_play_count),
8785         (rb_station_properties_dialog_update_bitrate),
8786         (rb_station_properties_dialog_update_last_played),
8787         (rb_station_properties_dialog_update_rating),
8788         (rb_station_properties_dialog_update_playback_error),
8789         (rb_station_properties_dialog_sync_entries):
8790         * podcast/rb-feed-podcast-properties-dialog.c:
8791         (rb_feed_podcast_properties_dialog_update_title),
8792         (rb_feed_podcast_properties_dialog_update_title_label),
8793         (rb_feed_podcast_properties_dialog_update_author),
8794         (rb_feed_podcast_properties_dialog_update_location),
8795         (rb_feed_podcast_properties_dialog_update_copyright),
8796         (rb_feed_podcast_properties_dialog_update_language),
8797         (rb_feed_podcast_properties_dialog_update_summary):
8798         * podcast/rb-podcast-manager.c:
8799         (rb_podcast_manager_entry_downloaded),
8800         (rb_podcast_manager_db_entry_added_cb),
8801         (download_progress_update_cb),
8802         (rb_podcast_manager_db_entry_deleted_cb):
8803         * podcast/rb-podcast-properties-dialog.c:
8804         (rb_podcast_properties_dialog_update_title),
8805         (rb_podcast_properties_dialog_update_title_label),
8806         (rb_podcast_properties_dialog_update_feed),
8807         (rb_podcast_properties_dialog_update_location),
8808         (rb_podcast_properties_dialog_update_play_count),
8809         (rb_podcast_properties_dialog_update_bitrate),
8810         (rb_podcast_properties_dialog_update_last_played),
8811         (rb_podcast_properties_dialog_update_rating),
8812         (rb_podcast_properties_dialog_update_date),
8813         (rb_podcast_properties_dialog_update_description):
8814         * rhythmdb/rhythmdb-query-model.c:
8815         (rhythmdb_query_model_entry_changed_cb),
8816         (rhythmdb_query_model_remove_from_main_list),
8817         (rhythmdb_query_model_update_limited_entries),
8818         (rhythmdb_query_model_drag_data_get),
8819         (rhythmdb_query_model_album_sort_func):
8820         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8821         (save_entry):
8822         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
8823         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
8824         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
8825         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
8826         (rhythmdb_entry_get_double):
8827         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
8828         * shell/rb-play-order-random-by-age-and-rating.c:
8829         (rb_random_by_age_and_rating_get_entry_weight):
8830         * shell/rb-play-order-random-by-age.c:
8831         (rb_random_by_age_get_entry_weight):
8832         * shell/rb-play-order-random-by-rating.c:
8833         (rb_random_by_rating_get_entry_weight):
8834         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
8835         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
8836         (rb_shell_player_set_playing_entry),
8837         (rb_shell_player_sync_replaygain),
8838         (rb_shell_player_sync_with_source),
8839         (rb_shell_player_get_playing_song_duration), (info_available_cb):
8840         * sources/rb-playlist-source.c: (playlist_iter_func),
8841         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
8842         (rb_playlist_source_entry_added_cb):
8843         * sources/rb-podcast-source.c:
8844         (rb_podcast_source_post_status_cell_data_func):
8845         * sources/rb-source.c: (rb_source_update_play_statistics):
8846         * sources/rb-sourcelist-model.c:
8847         (rb_sourcelist_model_drag_data_get):
8848         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
8849         (rb_static_playlist_source_add_entry),
8850         (rb_static_playlist_source_remove_entry):
8851         * widgets/rb-entry-view.c: (type_ahead_search_func),
8852         (rb_entry_view_playing_cell_data_func),
8853         (rb_entry_view_rating_cell_data_func),
8854         (rb_entry_view_pixbuf_clicked_cb):
8855         * widgets/rb-header.c: (rb_header_get_duration):
8856         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
8857         (rb_song_info_populate_dialog),
8858         (rb_song_info_update_playback_error),
8859         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
8860         (rb_song_info_update_location), (rb_song_info_update_play_count),
8861         (rb_song_info_update_last_played), (rb_song_info_update_rating),
8862         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
8863         (rb_song_info_sync_entry_single): fix the huge number of times that
8864         the internals got accessed directly.
8866 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8868         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
8869         trash' are grouped together.
8870         * shell/main.c: (main): Pass no-registration flag in to RBShell
8871         constructor, rather than mysteriously always passing TRUE.
8872         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
8873         Set dirty flag when entries are removed from the model, so the play
8874         queue is marked dirty appropriately.
8875         * AUTHORS: update my email address
8877 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8879         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
8881         * widgets/rb-druid.c: (path_dialog_response_cb):
8882         If the URI is local, don't display the 'file://' prefix.  
8883         Fixes #330919.
8885 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8887         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
8888         Attach the notification to the tray icon widget, so libnotify
8889         positions it less badly.  Fixes #330876.
8891 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8893         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
8894         Reverse the selection list before returning it, so we get it in the
8895         right order.  Fixes #330283 and some other weirdness.
8897 2006-02-11  James Livingston  <jrl@ids.org.au>
8899         * shell/rb-shell.c: (rb_shell_constructor),
8900         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
8901         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
8902         make small-mode and fullscreen mutually exclusive, since they don't
8903         work together
8905         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
8906         Mode.
8908 2006-02-10  James Livingston  <jrl@ids.org.au>
8910         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
8911         since it can cause it to be slower than real-time. Should fix bug
8912         322270.
8914 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8916         * rhythmdb/rhythmdb-query-model.c:
8917         (rhythmdb_query_model_set_property):
8918         Think just a little bit harder about that last commit.
8920 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8922         * rhythmdb/rhythmdb-query-model.c:
8923         (rhythmdb_query_model_set_property):
8924         Get the check for hidden entries the right way around.
8925         Fixes #330527, #330514.
8927         (rhythmdb_query_model_set_sort_order):
8928         Ignore no-op sort order changes, so we don't get critical
8929         messages when selecting 'all' in auto playlist browsers.
8931 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8933         Patch by: Christophe Fergeau  <teuf@gnome.org>
8935         * sources/rb-removable-media-source.c:
8936         (rb_removable_media_source_init),
8937         (rb_removable_media_source_constructor):
8938         Move icon setup code to the constructor, as the volume property
8939         haven't been set yet when _init is called.
8941 2006-02-09  William Jon McCann  <mccann@jhu.edu>
8943         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
8944         Make the source pixbuf a dynamic property.
8946         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
8947         (rb_source_set_pixbuf, rb_source_set_property) 
8948         (rb_source_get_property): Add icon property.
8950         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
8951         (rb_auto_playlist_source_init):
8952         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
8953         (rb_static_playlist_source_init):
8954         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
8955         (rb_removable_media_source_init): 
8956         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
8957         (rb_podcast_source_init): 
8958         * sources/rb-library-source.c (rb_library_source_class_init) 
8959         (rb_library_source_set_property, rb_library_source_get_property): 
8960         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
8961         (rb_iradio_source_init): Remove impl_get_pixbuf and
8962         set icon property on source base class.
8964         * sources/rb-daap-source.c (rb_daap_get_icon): Get
8965         a different icon for when the share is password protected
8966         and locked.
8967         (rb_daap_source_new): Set icon property.
8968         (composite_icons): Composite an emblem on a pixbuf.
8969         (create_pixbufs): Load global pixbufs.
8970         (destroy_pixbufs): unref global pixbufs.
8971         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
8972         (connection_auth_cb, connection_connected_cb) 
8973         (connection_disconnected_cb): Update icon when connection
8974         status changes.
8975         (rb_daap_source_activate): Connect signals.
8977         * daapsharing/rb-daap-share.c (name_collision_cb): Run
8978         dialog with parent.
8980         * daapsharing/rb-daap-marshal.list: Add new signal.
8982         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
8983         (rb_daap_collision_dialog_new_run): Set parent of dialog.
8985         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
8986         Add authenticate, connected, and disconnected signals.
8987         (connection_get_password): emit authenticate signal instead
8988         of running dialog directly.
8989         (connection_connected, connection_disconnected): Emit signals.
8990         (handle_login): Emit connected signal.
8991         (handle_logout): Emit disconnected signal.
8992         (rb_daap_connection_do_something): Fix leak.
8994         Fixes #330291
8996 2006-02-09  James Livingston  <jrl@ids.org.au>
8998         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
8999         entries from the base model if we don't have show-hidden set. Fixes
9000         bug 330514.
9002 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9004         * daapsharing/rb-daap-share.c (message_get_session_id):
9005         Ugh. Use strtoul instead of atoi.
9006         (session_id_validate): Add debug statements.
9008 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9010         * daapsharing/rb-daap-connection.c (http_response_handler):
9011         Report the actual uri from the message in debug statements.
9013 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9015         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
9016         Add context argument.
9017         (message_get_session_id): New function to parse session id from
9018         the message.
9019         (message_get_revision_number): Break out function to parse
9020         revision number from the message.
9021         (session_id_validate): New function to validate given session id
9022         is valid for given context (ie. client address).
9023         (session_id_generate): Generate a random session id.
9024         (session_id_create): Create a unique session id and store it.
9025         (session_id_remove): Remove a session id from the store.
9026         (login_cb): Create a session id instead of using a constant one.
9027         (logout_cb): Validate session id.
9028         (update_cb): Use new message_get_revision_number function.
9029         (databases_cb): Validate session id.
9030         (server_cb): Add server context to argument list for callbacks.  It
9031         is needed to look up the remote host.
9032         (db_entry_changed_cb): Use braces.
9033         (soup_auth_callback): Remove FIXME.
9034         (rb_daap_share_server_start): Create session id store.
9035         (rb_daap_share_server_stop): Destroy session id store.
9037         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
9038         Don't base64-encode password here since it needs to be
9039         combined with the username first.
9041         * daapsharing/rb-daap-connection.c (build_message):
9042         Add username to Authorization token.
9043         (handle_login, handle_song_listing) 
9044         (rb_daap_connection_do_something): Session id
9045         must be an unsigned int.
9047         Fixes #329814
9049 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9051         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9052         Don't check if we've got a playing entry, ask the player object (duh).
9053         Might actually fix #329993.     
9055 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9057         * sources/rb-static-playlist-source.c:
9058         (rb_static_playlist_source_add_list_uri):
9059         Canonicalise URIs before trying to add them to the playlist, and 
9060         don't try to add files to the database for which there is 
9061         already an entry.
9063 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9065         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9066         Don't ask the entry view if we're playing, just check if we've got a
9067         playing entry.  Fixes #329993.
9069 2006-02-08  James Livingston  <jrl@ids.org.au>
9071         * rhythmdb/rhythmdb-query-model.c:
9072         (rhythmdb_query_model_set_property),
9073         (rhythmdb_query_model_finalize),
9074         (rhythmdb_query_model_base_complete): remove
9075         rhythmdb_query_model_base_entry_prop_changed, so that two signals
9076         don't get emitted for entry changes. Fixes bug 330301.
9078         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
9079         (rb_library_browser_init), (rb_library_browser_constructor),
9080         (rb_library_browser_new): do stuff in the constructor, not the init
9081         function, so that the db property gets set on RBPropertyViews
9082         correctly. Fixes a crash when dragging properties to a playlist.
9084 2006-02-07  William Jon McCann  <mccann@jhu.edu>
9086         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
9087         Actually stop soup server.  Fixes #329816.
9089 2006-02-07  James Livingston  <jrl@ids.org.au>
9091         * lib/rb-util.h:
9092         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
9093         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
9094         (collate_values_cb), (rb_collate_hash_table_keys),
9095         (rb_collate_hash_table_values): add functions to compare, copy and
9096         free string-lists. add functions to collate the keys or values of a
9097         hash table into a list.
9099         * rhythmdb/rhythmdb-property-model.c:
9100         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
9101         (_remove_entry_cb), (_add_entry_cb),
9102         (rhythmdb_property_model_set_property),
9103         (rhythmdb_property_model_get_property),
9104         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
9105         (rhythmdb_property_model_row_inserted_cb),
9106         (rhythmdb_property_model_prop_changed_cb),
9107         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
9108         that are hidden, storing those that we have counted in a hash-table.
9110         * shell/Makefile.am: fix build order issue
9112         * shell/rb-shell-player.c: (rb_shell_player_set_property):
9113         * sources/rb-source.h:
9114         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9115         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9116         * sources/rb-podcast-source.c: (feed_select_change_cb): add
9117         browser-toggled method, rename _get_exta_views to _get_property_views,
9118         since several things depend on returning only that.
9120         * sources/rb-source.c: (rb_source_class_init),
9121         (rb_source_browser_toggled), (default_get_property_views),
9122         (rb_source_get_property_views), (rb_source_row_deleted_cb),
9123         (rb_source_gather_hash_keys),
9124         (rb_source_gather_selected_properties): above changes, and move some
9125         utility functions up from RBLibraryView
9127         * widgets/rb-property-view.c:
9128         (rb_property_view_selection_changed_cb): fix leak.
9130         * rhythmdb/rhythmdb-query-model.c:
9131         (rhythmdb_query_model_set_property),
9132         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
9133         (rhythmdb_query_model_set_sort_order),
9134         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
9135         query model being resorted.
9137         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
9138         NULL query.
9140         * rhythmdb/rhythmdb.h:
9141         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
9142         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
9143         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
9144         two queries. Add a function to append "property={X,Y,Z,...}" to a
9145         query.
9147         * sources/rb-library-source.c: (rb_library_source_class_init),
9148         (rb_library_source_finalize), (rb_library_source_constructor),
9149         (rb_library_source_cmd_choose_genre),
9150         (rb_library_source_cmd_choose_artist),
9151         (rb_library_source_cmd_choose_album), (impl_search),
9152         (impl_get_property_views), (impl_reset_filters),
9153         (rb_library_source_preferences_sync),
9154         (rb_library_source_browser_views_activated_cb),
9155         (rb_library_source_state_prefs_sync),
9156         (construct_query_from_selection), (rb_library_source_do_query),
9157         (rb_library_source_browser_changed_cb):
9158         * widgets/Makefile.am:
9159         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
9160         browser" widgets, which contains several property views, based on the
9161         code from RBLibrarySource. Make RBLibrarySource use it.
9163         * sources/rb-auto-playlist-source.c:
9164         (rb_auto_playlist_source_class_init),
9165         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
9166         (rb_auto_playlist_source_constructor), (impl_reset_filters),
9167         (impl_get_property_views), (impl_browser_toggled),
9168         (construct_query_from_selection),
9169         (rb_auto_playlist_source_do_query),
9170         (rb_auto_playlist_source_set_query),
9171         (rb_auto_playlist_source_browser_changed_cb): Use the new
9172         library-browser widget to add browsers to automatic playlists.
9174 2006-02-07  James Livingston  <jrl@ids.org.au>
9176         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
9177         properly.
9178         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
9179         type of the source is taken into account. Fixes bug 329621.
9181 2006-02-07  James Livingston  <jrl@ids.org.au>
9183         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9184         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
9185         1.1, and perform URI canonicalistion when first upgrading. This should
9186         fix our remaining canonicalisation issues, such as bug 329988.
9188 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9190         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
9191         Track the playing entry when the entry view isn't in the playing
9192         state, so we don't have to get the state changes exactly right.
9193         Fixes #330135.
9195 2006-02-06  James Livingston  <jrl@ids.org.au>
9197         * shell/rb-shell-player.c: (open_location_thread),
9198         (rb_shell_player_open_location): fix several iradio issues: having to
9199         press play after double-clicking on a station, not working correctly
9200         without a http:// prefix, and ignoring totem-plparser results other
9201         than success or error (e.g. IGNORE).
9203 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
9205         Addition of dbus methods for dealing with static playlists and the
9206         play queue.  Fixes #329958.
9208         * shell/Makefile.am:
9209         * shell/rb-playlist-manager.h:
9210         * shell/rb-playlist-manager.xml:
9211         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
9212         (rb_playlist_manager_get_playlists),
9213         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
9214         (rb_playlist_manager_create_static_playlist),
9215         (rb_playlist_manager_delete_playlist),
9216         (rb_playlist_manager_add_to_playlist),
9217         (rb_playlist_manager_remove_from_playlist),
9218         (rb_playlist_manager_export_playlist):
9219         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
9220         to create, delete, list, modify, export, and import  static playlists.
9221         
9222         * shell/main.c: (main): Register playlist manager object with dbus.
9224         * shell/rb-shell.h:
9225         * shell/rb-shell.xml:
9226         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
9227         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
9228         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
9229         object, and implement the addToQueue and removeFromQueue methods.
9230         
9231         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
9232         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
9233         formats.
9235 2006-02-05  James Livingston  <jrl@ids.org.au>
9237         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
9238         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
9239         (save_entry): allow storage of booleans in the on-disk db, and
9240         save/load the HIDDEN property.
9242         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
9243         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
9244         to the state it was when RB shutdown. This makes RB appear to start
9245         faster, as tracks can appear before the stat is done. Remote files
9246         still start hidden. From bug 325215.
9248 2006-02-05  James Livingston  <jrl@ids.org.au>
9250         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
9251         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
9252         really cares about the difference from "entry-added", and it isn't
9253         emitted by the tree backend anyway.
9255         * rhythmdb/rhythmdb-query-model.c:
9256         (rhythmdb_query_model_constructor):
9257         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9258         remove the references to the entry-restored signal.
9260 2006-02-05  James Livingston  <jrl@ids.org.au>
9262         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
9263         issue.
9265 2006-02-05  James Livingston  <jrl@ids.org.au>
9267         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
9268         things are NULL before using g_object_unref. Fixes bug 327452.
9270         * player/rb-recorder-gst.c: (rb_recorder_construct):
9271         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
9272         rather than assertion.
9274         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
9275         emit a warning, rather than asserting if an unknown playlist type is
9276         encountered.
9278 2006-02-05  James Livingston  <jrl@ids.org.au>
9280         * widgets/Makefile.am:
9281         * widgets/rb-simple-view.c:
9282         * widgets/rb-simple-view.h: Move the two features that this class
9283         provides into RBPropertyView, and remove this class. Closes bug
9284         327500.
9286         * podcast/rb-feed-podcast-properties-dialog.c:
9287         * podcast/rb-feed-podcast-properties-dialog.h:
9288         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9289         (rb_podcast_source_feeds_show_popup_cb):
9290         * sources/rb-podcast-source.h:
9291         * widgets/rb-property-view.c: (rb_property_view_class_init),
9292         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
9293         (rb_property_view_append_column_custom),
9294         (rb_property_view_button_press_cb):
9295         * widgets/rb-property-view.h: Updated for the above change.
9297 2006-02-04  James Livingston  <jrl@ids.org.au>
9299         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
9300         too close to Move to Trash and people aren't likely to use it often.
9302 2006-02-04  James Livingston  <jrl@ids.org.au>
9304         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
9306 2006-02-04  James Livingston  <jrl@ids.org.au>
9308         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
9309         passed a path instead of a URI.
9311         * sources/rb-generic-player-source.c: (default_get_mount_path):
9312         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
9313         the path. This fixes bug 329723.
9315 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
9317         * daapsharing/rb-daap-structure.c:
9318         (rb_daap_content_code_string_as_int32):
9319         Use network byte order.
9321 2006-02-03  William Jon McCann  <mccann@jhu.edu>
9323         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
9324         Use a hash for source lookup.
9325         (mdns_service_added, mdns_service_removed): Handle
9326         service-added and service-removed signals from RBDaapMdnsBrowser.
9327         (remove_source): GDestroyNotify function for when sources
9328         are removed from the hash.
9329         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
9330         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
9331         (rb_daap_sources_shutdown): Update.
9332         (source_host_find): GHRFunc for finding a source by ip.
9333         (rb_daap_source_find_for_uri): Use the hash source lookup.
9335         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
9336         Namespace keys.
9337         (password_check_button_toggled_cb): Handle password enabled.
9338         (share_name_entry_focus_out_event_cb): Namespace keys.
9339         Handle changes more robustly.
9340         (share_password_entry_focus_out_event_cb): Handle password entry.
9341         (add_daap_preferences): Connect to password signals.
9343         * lib/rb-preferences.h: Add DAAP keys.
9345         * data/glade/daap-prefs.glade: Add password UI.
9347         * data/rhythmbox.schemas: Add password keys.
9349         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
9350         assert with warning.
9352         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
9353         gconf keys to lib/rb-preferences.h.  Namespace
9354         the gconf keys.
9355         (create_share): Add password support.
9356         (enable_sharing_changed_cb): Namespaced keys.
9357         (require_password_changed_cb): Handle key change.
9358         (share_name_changed_cb): Namespaced keys.
9359         (share_password_changed_cb): Handle key change.
9360         (rb_daap_sharing_init): Namespaced keys.
9361         (rb_daap_sharing_shutdown): Ditto.
9363         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
9364         Add password property.
9365         (rb_daap_share_set_name): Break out prop set function.
9366         (published_cb): New RBDaapMdnsPublisher signal handler.
9367         (name_collision_cb): Ditto.
9368         (rb_daap_share_init): Create publisher object and
9369         connect to signals.
9370         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
9371         (rb_daap_share_set_property): Break out prop set functions.
9372         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
9373         Unref publisher.
9374         (rb_daap_share_new): Add password argument.  Start
9375         publishing and DAAP server.
9376         (message_set_from_rb_daap_structure): Change print to debug.
9377         (server_info_cb): Set auth method to publish.
9378         (logout_cb): Handle DAAP client logout.
9379         (update_cb): Remove C++ comments.
9380         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
9381         (server_cb): Add debug.
9382         (soup_auth_callback): Handle auth requests.
9383         (rb_daap_share_server_start): Split up functions for starting
9384         server and publishing.  Add auth handling to server.
9385         (rb_daap_share_server_stop): Split stop server and publish.
9386         No C++ comments.
9387         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
9388         Start and stop publishing.
9389         (rb_daap_share_restart): Restart server and publishing.
9390         (rb_daap_share_maybe_restart): Conditionally restart.
9392         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
9393         (rb_daap_collision_dialog_new_run): Don't use
9394         separators in dialogs.
9396         * daapsharing/rb-daap-connection.h: Add private
9397         data to class structure.
9399         * daapsharing/rb-daap-connection.c: Move
9400         some includes to top of file.  Make private
9401         data struct name consistent with others.
9402         (rb_daap_connection_class_init): Rename
9403         private.
9404         (rb_daap_connection_init): Get and store the pointer
9405         to the private data once instead of in every
9406         function.  Create a username value "Rhythmbox_VERSION".
9407         (connection_get_password): Don't get private.
9408         (build_message): Ditto.
9409         (http_response_handler): Don't init variables in
9410         declaration.  Add debug.  Spacing.
9411         (http_get, entry_set_string_prop, handle_server_info) 
9412         (handle_login, handle_update, handle_database_info) 
9413         (handle_song_listing, handle_playlists, handle_playlist_entries) 
9414         (rb_daap_connection_constructor, rb_daap_connection_logout) 
9415         (rb_daap_connection_state_done): Don't get private.
9416         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
9417         spacing.  Correctly base64 encode the Authentication token.
9418         Add username to auth token.
9419         (rb_daap_connection_get_playlists): Don't get private.
9420         (rb_daap_connection_dispose): Ditto.  Free username.
9421         (rb_daap_connection_set_property) 
9422         (rb_daap_connection_get_property): Don't get private.
9424         * daapsharing/Makefile.am: Conditionally
9425         compile MDNS backends.  Add marshall stuff.
9427         * daapsharing/.cvsignore: Update.
9429         * configure.ac: Add conditional to see which
9430         MDNS backend we should use.
9432         * daapsharing/rb-daap-mdns.[ch]: Removed files.
9434         * daapsharing/rb-daap-marshal.list:
9435         * daapsharing/rb-daap-mdns-browser-avahi.c:
9436         * daapsharing/rb-daap-mdns-browser-howl.c:
9437         * daapsharing/rb-daap-mdns-browser.h:
9438         * daapsharing/rb-daap-mdns-publisher-avahi.c:
9439         * daapsharing/rb-daap-mdns-publisher-howl.c:
9440         * daapsharing/rb-daap-mdns-publisher.h:
9441         Split rb-daap-mdns.c into two classes.  One for
9442         publishing and one for browsing.  Split out
9443         the avahi and howl backends into different files.
9445         Fixes #322966
9446         
9447 2006-02-04  James Livingston  <jrl@ids.org.au>
9449         patch by: Jan Schmidt <thaytan@mad.scientist.com>
9451         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
9452         crash if metadata reader gives us NULL for strings.
9454 2006-02-03  James Livingston  <jrl@ids.org.au>
9456         * shell/rb-shell-player.c: (open_location_thread),
9457         (rb_shell_player_open_location):
9458         retrieve iradio playlists files in a thread, so that with GStreamer
9459         0.10 the UI doesn't block while connecting to stations. The streamer
9460         connection is synchronous with 0.8, so that will still block (a bit).
9461         Fixed bug 128106.
9463         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
9464         because _open_entry does that automatically when it is ready to.
9466 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9468         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9469         (rb_podcast_source_post_status_cell_data_func):
9470         Leave the podcast status column blank for episodes that have not been
9471         downloaded.
9473 2006-02-03  James Livingston  <jrl@ids.org.au>
9475         Add support for source-specific toolbar items, and make the Burn
9476         Playlist item only available for playlists. Also add Update All
9477         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
9479         * data/ui/rhythmbox-ui.xml:
9480         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
9481         (impl_get_ui_actions): make the Burn CD toolbar item only for
9482         playlists
9484         * lib/rb-stock-icons.c: (rb_stock_icons_init):
9485         * lib/rb-stock-icons.h: load the Eject icon as stock.
9487         * shell/rb-removable-media-manager.c: use the eject icon for the eject
9488         action
9490         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
9491         (rb_shell_select_source):
9492         * sources/rb-source.c: (rb_source_class_init),
9493         (rb_source_disconnect), (default_get_ui_actions),
9494         (rb_source_get_ui_actions):
9495         * sources/rb-source.h: add support for source-specific toolbar items
9497         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
9498         Eject and Rip toolbar items
9500         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
9501         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
9502         item.
9504 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9506         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
9507         * shell/main.c: (main):
9508         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
9509         Replace all g_critical calls with g_warning, since none of them are
9510         the sort of thing the process should die over.  Fixes #329398.
9512 2006-02-03  James Livingston  <jrl@ids.org.au>
9514         * configure.ac: mention gst-plugins-base in the error message for not
9515         finding GStreamer 0.10, since not having that will cause it to fail.
9517 2006-02-03  James Livingston  <jrl@ids.org.au>
9519         * configure.ac: fix typo that means you get the wrong error message if
9520         you explicity request a particular playback engine, and it can't be
9521         found.
9523 2006-02-03  James Livingston  <jrl@ids.org.au>
9525         * data/glade/library-prefs.glade: allow the watched library location
9526         to be a non-local place.
9528 ============ Version 0.9.3
9531 2006-02-02  James Livingston  <jrl@ids.org.au>
9533         * NEWS: update NEWS
9534         * configure.ac: bump version to 0.9.3
9536         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
9537         <caillon@redhat.com>, fixed bug 329517. 
9539 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
9541         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
9543         * widgets/rb-song-info.c: (rb_song_info_constructor):
9544         Make year and disc number fields non-editable if tag editing
9545         is disabled.  Fixes #329463.
9547 2006-02-01  James Livingston  <jrl@ids.org.au>
9549         * rhythmdb/rhythmdb-property-model.c:
9550         (rhythmdb_property_model_row_inserted_cb),
9551         (rhythmdb_property_model_prop_changed_cb),
9552         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
9553         correctly. Fixes bug 327061.
9555         * rhythmdb/rhythmdb-query-model.c:
9556         (rhythmdb_query_model_entry_changed_cb): emit change notification of
9557         the HIDDEN property when an entry is removed for being hidden.
9559         * rhythmdb/rhythmdb-query-model.h:
9560         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9561         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
9562         models's "connected" property. Whatever it was needed for seems to
9563         have gone.
9565 2006-02-01  James Livingston  <jrl@ids.org.au>
9567         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
9569         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
9570         (rb_shell_player_playing_changed_cb): block the signal to prevent
9571         re-entrancy. Fixes bug 329329 and fixes the first click of the play
9572         button pausing.
9574 2006-02-01  James Livingston  <jrl@ids.org.au>
9576         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
9577         /should/ now work, if the neccessary plugins get ported.
9579 2006-01-30  James Livingston  <jrl@ids.org.au>
9581         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
9582         string properties to "Unknown" is the string is empty. Kind of fixes
9583         bug 327495.
9585         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
9586         gettext calls once, rather than once per time the function is used.
9587         This stops us making tens of thousands of gettext calls on startup,
9588         which reduces the cpu-time of startup by 10-20%
9590 2006-01-29  James Livingston  <jrl@ids.org.au>
9592         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
9593         (rhythmdb_add_uri):
9594         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
9595         for files containing known video streams.
9598 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9600         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
9601         required.
9603 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9605         * INSTALL.quick: More random updates
9607         * rhythmdb/rhythmdb-query-model.c:
9608         (rhythmdb_query_model_class_init),
9609         (rhythmdb_query_model_set_property),
9610         (rhythmdb_query_model_get_property),
9611         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
9612         Remove user sort data handling, take a property ID and a reverse
9613         flag instead.
9614         (rhythmdb_query_model_insert_into_main_list),
9615         (rhythmdb_query_model_insert_into_limited_list),
9616         (rhythmdb_query_model_do_reorder),
9617         (_reverse_sorting_func):
9618         Handle reverse sorting by calling _reverse_sorting_func, which
9619         calls the real sort function and reverses the result.
9620         (rhythmdb_query_model_set_sort_order):
9621         Allow this to be called to set the initial sort order for limited
9622         queries, and handle reverse sorting when reordering.
9623         (rhythmdb_query_model_location_sort_func),
9624         (rhythmdb_query_model_album_sort_func),
9625         (rhythmdb_query_model_artist_sort_func),
9626         (rhythmdb_query_model_genre_sort_func),
9627         (rhythmdb_query_model_track_sort_func),
9628         (rhythmdb_query_model_double_ceiling_sort_func),
9629         (rhythmdb_query_model_ulong_sort_func),
9630         (rhythmdb_query_model_date_sort_func),
9631         (rhythmdb_query_model_string_sort_func):
9632         Sort functions moved from rb-entry-view.c.
9633         * rhythmdb/rhythmdb-query-model.h:
9634         Add the sort functions, and update the changed functions.
9635         
9636         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
9637         Just call _resort_model when the query model is set, since it
9638         does all the same things.
9639         (rb_entry_view_append_column):
9640         Rework bits so the rating column doesn't have to be so much of a
9641         special case.
9642         (rb_entry_view_append_column_custom):
9643         Take a property ID to sort on, rather than arbitrary custom data.
9644         (rb_entry_view_resort_model):
9645         Query model does all the reverse sort handling now.
9646         * widgets/rb-entry-view.h: Update _append_column_custom.
9648         * sources/rb-play-queue-source.c:
9649         (rb_play_queue_source_constructor):
9650         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9651         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9652         (rb_podcast_source_post_date_cell_sort_func),
9653         (rb_podcast_source_post_status_cell_sort_func),
9654         (rb_podcast_source_post_feed_cell_sort_func):
9655         Updates required by all the other changes.
9657         * rhythmdb/rhythmdb-property-model.c:
9658         (rhythmdb_property_model_drag_data_get):
9659         Sort the query results on the selected property,
9660         so they arrive in the expected order.  All the other changes were made
9661         to make this possible.  Fixes bug #327494.
9663 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9664         
9665         * shell/rb-shell-clipboard.c:
9666         Use GTK_STOCK_REMOVE icon for the remove action in
9667         the play queue too.
9669 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9671         * sources/rb-play-queue-source.c:
9672         (rb_play_queue_source_constructor),
9673         (rb_play_queue_source_update_count):
9674         Don't make the 'queued songs' column clickable,
9675         and add the queued song count to the column title.
9677 2006-01-29  James Livingston  <jrl@ids.org.au>
9679         * configure.ac: remove "experimental" marking from DAAP, and enable by
9680         default if the dependencies are found.
9682 2006-01-29  James Livingston  <jrl@ids.org.au>
9684         * NEWS: update NEWS
9686 2006-01-29  James Livingston  <jrl@ids.org.au>
9688         patch by: William Jon McCann  <mccann@jhu.edu>
9690         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9691         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
9692         property used for the feed list. Fixes problem with feeds with no
9693         episodes not showing up.
9695 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9696         
9697         * shell/rb-play-order-random-by-age-and-rating.c:
9698         (rb_random_by_age_and_rating_get_entry_weight):
9699         Fix compile errors, bug #328978.
9701 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
9703         * INSTALL.quick, README: Random updates
9704         * README.lirc: Add notes on controlling Rhythmbox with LIRC
9706 2006-01-28  James Livingston  <jrl@ids.org.au>
9708         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
9709         default rating back to 0 (from 2.5, which was needed for autorating).
9711         * shell/rb-play-order-random-by-age-and-rating.c:
9712         (rb_random_by_age_and_rating_get_entry_weight):
9713         * shell/rb-play-order-random-by-rating.c:
9714         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
9715         2.5 for the purposes of weighting entries.
9717 2006-01-28  James Livingston  <jrl@ids.org.au>
9719         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
9720         translator comments, to make it clearer what the "friendly time"
9721         formatting strings mean.
9723 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
9725         * daapsharing/rb-daap-connection.c: (http_response_handler):
9726         Fix the sense of the overflow check so it'll accept valid input.
9728 2006-01-27  James Livingston  <jrl@ids.org.au>
9730         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
9732         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
9733         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
9735 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
9737         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
9738         
9739         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
9740         Don't include the artist field in the window title if it's blank.
9741         Fixes #325973.
9743 2006-01-26  William Jon McCann  <mccann@jhu.edu>
9745         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
9746         Use stock delete icon for move to trash and stock remove
9747         for remove menu item.
9749 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
9751         * shell/rb-shell.c: (rb_shell_constructor),
9752         (idle_handle_load_complete):  Don't start the playlist save
9753         timeout until we've loaded the playlists, otherwise we'll
9754         write an empty playlist file if startup takes too long.
9756 2006-01-25  William Jon McCann  <mccann@jhu.edu>
9758         * shell/rb-shell.c: Make view toolbar toggle use
9759         shift+ctrl+t.  Fixes #327585.
9761 2006-01-25  James Livingston  <jrl@ids.org.au>
9763         patch by: Christope Fergeau  <teuf@gnome.org>
9765         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
9766         (http_response_handler): fix a potential buffer overflow issue.
9768 2006-01-25  James Livingston  <jrl@ids.org.au>
9770         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
9771         Year column wide enough to display "Unknown"
9773 2006-01-25  James Livingston  <jrl@ids.org.au>
9775         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9776         (rb_podcast_source_post_status_cell_data_func): make the episode
9777         status wording better. Part of bug 321607.
9779 2006-01-25  James Livingston  <jrl@ids.org.au>
9781         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
9782         others with a separator.
9784         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
9785         stock Delete icon.
9787 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
9789         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
9791 2006-01-23  James Livingston  <jrl@ids.org.au>
9793         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
9794         0.3.2. Fixed bug 328158.
9796 2006-01-23  James Livingston  <jrl@ids.org.au>
9798         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
9799         (gulong_gst_date_transform), (rb_metadata_class_init):
9800         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
9802 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
9804         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
9805         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
9806         (record_entry_change): Protect added_entries and changed_entries with
9807         a mutex, so it doesn't crash on startup on SMT/SMP machines.
9809 2006-01-23  James Livingston  <jrl@ids.org.au>
9811         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
9812         the browser for audio CDs.
9814 2006-01-22  James Livingston  <jrl@ids.org.au>
9816         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
9817         NEVER_FAIL as it causes the daemon-not-running error to never be
9818         reported, resulting in bug 319438 re-occurring.
9820 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
9822         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
9823         Just call the podcast manager's update method.  Unbreaks the 'update
9824         all feeds' command.
9826 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
9828         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
9830 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
9832         * configure.ac: Don't disable DAAP with gstreamer 0.10
9834         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
9835         (rb_daap_src_class_init), (rb_daap_src_init),
9836         (rb_daap_src_finalize), (rb_daap_src_set_property),
9837         (rb_daap_src_get_property), (rb_daap_src_write),
9838         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
9839         (_split_uri), (rb_daap_src_open):
9840         * daapsharing/rb-daap-src.h:
9841         Mostly fix seeking, handle chunked transfer encoding, and port to
9842         gstreamer 0.10.
9843         
9844         * player/rb-player-gst.c:
9845         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
9846         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
9848         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
9849         being fixed.
9851 2006-01-21  James Livingston  <jrl@ids.org.au>
9853         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
9854         for Year metadata in DAAP sources. Fixes bug 327700.
9856         * daapsharing/rb-daap-connection.c: (handle_song_listing):
9858 2006-01-20  William Jon McCann  <mccann@jhu.edu>
9860         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
9861         enum values instead of magic numbers.
9863         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
9864         Add number of songs that match each property title into
9865         the cell.  Also show the number of properties that match
9866         in the All entry.
9867         (rb_property_view_constructor): Use enum values instead of
9868         magic numbers.
9870         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
9871         Query podcast posts instead of feeds for browser.  Use
9872         post SUBTITLE which is the location for the property view.
9873         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
9874         (construct_query_from_selection) 
9875         (rb_podcast_source_cmd_delete_feed) 
9876         (rb_podcast_source_cmd_properties_feed) 
9877         (rb_podcast_source_cmd_update_feed): Use variable to make
9878         it clear what the selection data represents.
9879         (rb_podcast_source_feed_title_cell_data_func): Add number
9880         of posts that belong to each feed in the browser.
9882         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
9883         (rhythmdb_property_model_delete_prop): Decrement the refcount
9884         for the All entry.
9885         (rhythmdb_property_model_get_column_type): Use column enum
9886         values instead of magic numbers.  Add NUMBER column.
9887         (rhythmdb_property_model_get_value): Use enum.
9888         Add NUMBER column that represents the refcount for
9889         the title of that property.
9890         (rhythmdb_property_model_perform_sync): Don't fake up
9891         a title for All here.
9893         Fixes #327372.
9894         
9895 2006-01-21  James Livingston  <jrl@ids.org.au>
9897         Make Rhythmbox start faster by not blocking the UI while database
9898         initialisation and loading occurs. Closes bug 323348.
9900         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
9901         start 10 seconds later instead of immediately.
9902         
9903         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
9904         safe to call from any thread.
9906         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
9907         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
9908         so the UI doesn't block.
9910 2006-01-18  James Livingston  <jrl@ids.org.au>
9912         * sources/rb-static-playlist-source.c:
9913         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
9914         cause crashes. Oops. fixes bug 327477.
9916 2006-01-17  William Jon McCann  <mccann@jhu.edu>
9918         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
9919         Set GST element state to NULL before unreffing.
9920         Fixes #327422.
9922 2006-01-18  James Livingston  <jrl@ids.org.au>
9924         * sources/rb-static-playlist-source.c:
9925         (rb_static_playlist_source_do_query): don't filter on the SONG entry
9926         type, since the playlists can contain non-song entries. Fixes bug
9927         327448.
9929         * sources/rb-play-queue-source.c:
9930         (rb_play_queue_source_class_init): disable the search box for the
9931         queue.
9933 2006-01-18  James Livingston  <jrl@ids.org.au>
9935         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
9936         dragging of podcast episodes. Fixed bug 327450.
9938 2006-01-18  James Livingston  <jrl@ids.org.au>
9940         * rhythmdb/rhythmdb-query-model.c:
9941         (rhythmdb_query_model_drag_data_received): fix possible assertion when
9942         dragging to an emoty playlist.
9944 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
9946         * sources/rb-playlist-source-recorder.c:
9947         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
9949 2006-01-17  James Livingston  <jrl@ids.org.au>
9951         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
9953         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
9954         different number of tracks than exist on the cd, since that happens
9955         with audio+data hybrid CDs. Part of bug 325046.
9957 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
9959         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9960         Remove useless call to gtk_tree_view_column_set_clickable().
9962         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
9963         Don't store sort data for columns if the sort function is NULL,
9964         so only sortable columns will be in the column sort data map.
9965         (rb_entry_view_set_columns_clickable): Only make columns we can sort
9966         on clickable.
9967         (rb_entry_view_constructor):  The 'playing icon' column is never
9968         clickable, so don't connect a signal handler for it.
9970         Fixes bug 326811.
9972 2006-01-17  James Livingston  <jrl@ids.org.au>
9974         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
9975         are 0.8 only. Fix element detection.
9977         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
9978         saving the new metadata failed
9980 2006-01-17  James Livingston  <jrl@ids.org.au>
9982         * shell/rb-shell-player.c: (do_next_idle),
9983         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
9984         (eos_cb): release audio device when a playlist finishes. Fixes bug
9985         323679.
9987 2006-01-17  James Livingston  <jrl@ids.org.au>
9989         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
9990         canonicalise the URIs when things are added via library watching.
9992 2006-01-16  William Jon McCann  <mccann@jhu.edu>
9994         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
9995         Off by one error in default speed index.
9997 2006-01-16  William Jon McCann  <mccann@jhu.edu>
9999         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
10000         (update_speed_combobox, update_speed_combobox):
10001         Get a list of the actually supported write speeds from
10002         n-c-b >= 2.13.90.  Otherwise use fallback list.
10004 2006-01-17  James Livingston  <jrl@ids.org.au>
10006         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
10007         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
10008         don't get stuck on recursive symlinks. Fixed bug 125452.
10010 2006-01-17  James Livingston  <jrl@ids.org.au>
10012         Add support for mass-storage audio players. Players are detected via
10013         either the HAL "audio_player" capability, or a ".is_audio_player" file
10014         in the root of the volume. Closes bug 325602.
10016         * configure.ac: separate using HAL from ipod support.
10018         * lib/rb-file-helpers.c: (rb_uri_is_local):
10019         * lib/rb-file-helpers.h: add function to determine whether a URI is
10020         local.
10022         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10023         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
10024         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
10025         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
10026         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
10027         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
10028         directories can be scanned for files to add as  non-SONG entries.
10030         * shell/rb-removable-media-manager.c:
10031         (rb_removable_media_manager_mount_volume): add checking for
10032         mass-storage players.
10034         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
10035         * sources/rb-ipod-source.c: (rb_ipod_source_new),
10036         (hal_udi_is_ipod):
10037         * sources/rb-removable-media-source.c:
10038         (rb_removable_media_source_class_init),
10039         (rb_removable_media_source_constructor): move some things up to the
10040         RBRemovableMediaSource, rather than making subclasses do it.
10042         * sources/Makefile.am:
10043         * sources/rb-generic-player-source.c:
10044         * sources/rb-generic-player-source.h: add mass-storage player source.
10046 2006-01-16  James Livingston  <jrl@ids.org.au>
10048         patch by: William Jon McCann  <mccann@jhu.edu>
10050         * rhythmdb/rhythmdb-query-model.c:
10051         (rhythmdb_query_model_base_row_deleted): fix build issue from last
10052         commit.
10054 2006-01-16  James Livingston  <jrl@ids.org.au>
10056         Patch to add support for "chained queries" and putting hidden tracks
10057         in query models. Use chained queries to add search box support to
10058         normal playlists, and to make hidden entries not get lost. Fixes bug
10059         319278.
10061         * rhythmdb/rhythmdb-query-model.h:
10062         * rhythmdb/rhythmdb-query-model.c:
10063         (rhythmdb_query_model_class_init),
10064         (rhythmdb_query_model_set_property),
10065         (rhythmdb_query_model_get_property):
10066         (rhythmdb_query_model_finalize): add "show-hidden" and
10067         "base-model" properties.
10069         (rhythmdb_query_model_set_connected),
10070         (rhythmdb_query_model_has_pending_changes),     
10071         (rhythmdb_query_model_entry_added_cb),
10072         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
10073         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
10074         (rhythmdb_query_model_remove_entry),
10075         (rhythmdb_query_model_drag_data_received),
10076         (rhythmdb_query_model_base_row_inserted),
10077         (rhythmdb_query_model_base_row_deleted),
10078         (rhythmdb_query_model_base_non_entry_dropped),
10079         (rhythmdb_query_model_base_complete),
10080         (rhythmdb_query_model_base_entry_prop_changed),
10081         (rhythmdb_query_model_base_rows_reordered),
10082         (rhythmdb_query_model_row_drop_possible): handle base-model by
10083         chaining events and operations where necessary. Make hidden entries
10084         not get added only if "show-hidden" is false.
10086         (rhythmdb_query_model_child_index_to_base_index),
10087         (rhythmdb_query_model_base_index_to_child_index),
10088         (rhythmdb_query_model_get_entry_index): utility functions for handling
10089         base-model entries.
10091         (rhythmdb_query_model_reapply_query): apply the current query, and
10092         remove entries that don't match it.
10094         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
10095         empty queries.
10097         * sources/rb-source.c: (rb_source_set_property): move the unref later
10098         to fix problem if it is the last reference.
10100         * sources/rb-static-playlist-source.c:
10101         (rb_static_playlist_source_class_init),
10102         (rb_static_playlist_source_init),
10103         (rb_static_playlist_source_finalize),
10104         (rb_static_playlist_source_constructor), (impl_reset_filters),
10105         (impl_search), (rb_static_playlist_source_do_query),
10106         (impl_save_contents_to_xml),
10107         (rb_static_playlist_source_add_location_internal): use a chained query
10108         model to filter out hidden entries and implement the search box.
10110 2006-01-15  James Livingston  <jrl@ids.org.au>
10112         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
10113         the default playlist loading, which I broke earlier.
10115 2006-01-15  James Livingston  <jrl@ids.org.au>
10117         patch by: William Jon McCann  <mccann@jhu.edu>
10119         * sources/rb-playlist-source.c: (playlist_iter_func): use
10120         totem-plparser's new API version macros to check for API changes.
10121         Handle the recent API change.
10123 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10125         * sources/rb-library-source.c: (impl_get_config_widget):
10126         Ref the preferences object to match the unref in the
10127         finalizer.  Fixes some portion of #323505.
10129 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10131         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
10132         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
10133         Fix valgrind warnings about accessing uninitialised values.
10135 2006-01-14  William Jon McCann  <mccann@jhu.edu>
10137         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
10139 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10141         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
10142         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
10143         Stops the 'now playing' icon from being displayed after the play
10144         order finishes.
10146 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10148         * podcast/rb-podcast-manager.c:
10149         (rb_podcast_manager_db_entry_deleted_cb):
10150         Don't try to delete files we never downloaded, and cancel downloads
10151         for deleted episodes.  Fixes bug #326862.
10152         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
10153         Don't complain about NULL data items in the selection list.
10155 2006-01-14  James Livingston  <jrl@ids.org.au>
10157         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
10158         Make the name ofthe queue non editable. Fixes bug 326918.
10160 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10162         * sources/rb-playlist-source-recorder.c (burn_cd) 
10163         (ask_rewrite_disc): Don't use our locally copied functions
10164         if we have at least 2.13.
10166 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10168         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
10169         Correct the argument type for the process_error signal.
10170         May fix bug #323154.
10172 2006-01-13  James Livingston  <jrl@ids.org.au>
10174         save the queue to disk when exiting, and reload on startup. Fixed bug
10175         326677 .
10177         * shell/rb-playlist-manager.c:
10178         (rb_playlist_manager_load_playlists),
10179         (rb_playlist_manager_save_playlists_async): don't disable saving of
10180         the queue
10182         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
10183         add the queue source as a gobject property.
10185         * sources/rb-play-queue-source.c:
10186         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
10187         code to save the queue to xml
10189         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10190         load the queue from xml.
10191         * sources/rb-playlist-xml.h:
10193         * sources/rb-static-playlist-source.c:
10194         (rb_static_playlist_source_load_from_xml),
10195         (rb_static_playlist_source_new_from_xml):
10196         * sources/rb-static-playlist-source.h: split the playlist xml loading
10197         from the static playlist creation function, so the queue can use it.
10199 2006-01-13  James Livingston  <jrl@ids.org.au>
10201         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
10202         assertion that should be there. Fixes bug 325923.
10203         
10204         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
10205         return NULL if the entry already exists (e.g. as another type).
10206         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10207         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
10208         (rb_podcast_manager_insert_feed):
10209         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
10210         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
10211         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
10212         for the above function returning NULL.
10214 2006-01-12  James Livingston  <jrl@ids.org.au>
10216         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
10217         is enabled. Fixes bug 326673.
10218         
10219         * doc/reference/tmpl/eggtrayicon.sgml:
10220         * doc/reference/tmpl/rb-daap-src.sgml:
10221         * doc/reference/tmpl/rb-source.sgml:
10222         * doc/reference/tmpl/rb-statusbar.sgml:
10223         * doc/reference/tmpl/rb-tree-model-sort.sgml:
10224         * doc/reference/tmpl/rhythmbox-unused.sgml:
10225         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
10227 2006-01-11  James Livingston  <jrl@ids.org.au>
10229         * widgets/rb-song-info.c: (rb_song_info_constructor),
10230         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
10231         (rb_song_info_populate_dialog): fill in the fields if all tracks have
10232         the same value for properties. From bug 326054.
10234 2006-01-11  James Livingston  <jrl@ids.org.au>
10236         * sources/rb-source.h:
10237         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
10238         (rb_shell_player_set_playing_source_internal), (eos_cb):
10239         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
10240         every entry.
10242         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
10243         source use this. Closes bug 322077.
10245 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10247         * widgets/eggtrayicon.c (egg_tray_icon_notify):
10248         In order for set_icon_data_from_pixbuf() to be
10249         effective, one must not set an icon in _new().
10251 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10253         * widgets/eggtrayicon.c (egg_tray_icon_init) 
10254         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
10255         (egg_tray_icon_notify): Add support for libnotify 0.3.
10256         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
10257         * configure.ac: Determine the version of libnotify.
10258         Fixes #326333.
10260 2006-01-08  James Livingston  <jrl@ids.org.au>
10262         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
10263         trying to share a track with unknown length.
10265 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10267         * shell/rb-shell-player.c: (rb_shell_player_init):
10268         Sync volume on startup so it doesn't default to 0.
10270 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10272         * shell/rb-shell-player.c: (rb_shell_player_class_init),
10273         (rb_shell_player_get_property), (rb_shell_player_open_location),
10274         (info_available_cb):  Add the iradio streamed song title as a
10275         property, and emit a signal when it changes.
10277         * shell/rb-shell.c: (rb_shell_constructor),
10278         (rb_shell_player_elapsed_changed_cb),
10279         (rb_shell_player_stream_song_changed_cb):
10280         Issue a notification when the iradio song title changes.
10281         Fixes #326166.
10283 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10285         * shell/rb-shell-player.c: (rb_shell_player_init),
10286         (rb_shell_player_finalize), (rb_shell_player_set_property),
10287         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
10288         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
10289         (rb_shell_player_set_volume_relative),
10290         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
10291         (rb_shell_player_get_mute):
10292         * shell/rb-shell-player.h:
10293         * shell/rb-shell-player.xml:
10294         Store volume as a property on RBShellPlayer, rather than in gconf.
10295         Add some methods to control volume via dbus.
10297         * shell/rb-shell.c: (rb_shell_constructor),
10298         (rb_shell_volume_widget_changed_cb),
10299         (rb_shell_player_volume_changed_cb):
10300         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
10301         Update volume using player properties rather than gconf, and sync the
10302         volume with the volume control button when something else changes it.
10303         Fixes #323840.
10305 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10307         * shell/rb-tray-icon.c (tray_popup_position_menu):
10308         Make tray menu align with edge of panel.
10310         patch from Jaap A. Haitsma <jaap@haitsma.org>
10311         Fixes #319913
10313 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10314         * shell/rb-shell.c (sourcelist_drag_received_cb): 
10315         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
10316         (rb_playlist_manager_new_playlist_from_selection_data):
10317         Make a reasonable default name for playlists created from
10318         dropped data.  Fixes #326116.
10320 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10322         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10323         Use new gconf key.
10324         (burn_cd): Always eject CD after burning.  Too many drives
10325         get confused if we don't.  Save the speed used if the burn
10326         was completed successfully.
10328         * data/rhythmbox.schemas: Use our own speed instead of from
10329         n-c-b. The situation is that the default_speed for n-c-b is most
10330         likely the maximum write speed.  This is fine for n-c-b because it
10331         has burn-proof turned on.  We can't turn it on for audio CDs
10332         because the results are poor in quality.  So we'll just pick a
10333         default that should work for everyone (4).
10335 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10336         
10337         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
10338         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
10340 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10342         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
10343         in my previous commit.  Fixes #326037.
10345 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
10347         patch by: Jonathan Matthew
10349         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
10350         error on Fedora Rawhide.
10352 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10354         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
10355         Assume HTTP URLs ending with .xml or .rss are podcasts.
10356         (rb_shell_add_uri): Handle adding podcast feeds.
10358         * sources/rb-podcast-source.c: (rb_podcast_source_new):
10359         Register as the source for podcast feeds.
10361 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10363         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
10364         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
10365         (rb_shell_preferences_append_view_page):
10366         * shell/rb-shell-preferences.h:
10367         Fix typo in function name.  Fixes #325992.
10369 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10371         * shell/rb-audioscrobbler.c:
10372         Add '+' to the list of characters to URI-encode, so it doesn't get
10373         interpreted as a space.
10375 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10377         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
10378         (rb_daap_connection_do_something):  Don't crash if the DAAP server
10379         goes away while we're still trying to log in.
10381 2006-01-06  James Livingston  <jrl@ids.org.au>
10383         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
10385 2006-01-06  James Livingston  <jrl@ids.org.au>
10387         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
10388         support for Year to automatic playlists. Closes bug 321341.
10390         * rhythmdb/rhythmdb-query-model.c:
10391         (rhythmdb_query_model_set_property):
10392         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
10393         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
10394         (rhythmdb_query_free), (rhythmdb_query_serialize),
10395         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
10396         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
10397         * rhythmdb/rhythmdb.h: Support special
10398         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
10399         year in date.
10401         * widgets/rb-query-creator-properties.c:
10402         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
10403         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
10405 2006-01-06  James Livingston  <jrl@ids.org.au>
10407         * configure.ac: make the playback backend selection work correctly
10409         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
10410         (rb_daap_src_class_init), (rb_daap_src_dispose),
10411         (rb_daap_src_change_state), (rb_daap_src_initialize):
10412         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
10413         doesn't work for this class. Fixes bug 325934
10415 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10417         * configure.ac: Fix check for libnotify.
10419 2006-01-05  William Jon McCann  <mccann@jhu.edu>
10421         * sources/rb-playlist-source.c (xml_get_and_trim_names):
10422         Get name element for current lang and remove all name nodes
10423         from the XML tree.
10424         (get_playlist_name_from_xml): Try to get name element or
10425         fall back to name attribute.
10426         (rb_playlist_source_new_from_xml): Get name before turning over
10427         to sub-types for parsing so that we can remove name elements
10428         from the tree if necessary.
10430         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
10431         Load default playlists file if per user playlists are not found.
10433         * data/playlists.xml.in: 
10434         * data/Makefile.am: 
10435         * data/.cvsignore: Add default set of playlists.
10436         Fixes #323004
10438 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10440         * shell/main.c: (main): Don't use the dbus interface to show the
10441         window if we're also going to use the bonobo interface.
10443 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10445         * shell/rb-history.c: (rb_history_set_playing):
10446         Allow setting the playing song to NULL.
10447         (rb_history_append), (rb_history_delete_link):
10448         Don't randomly change position when entries are added and removed,
10449         it confuses play orders.
10450         
10451         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
10452         Random orders always have a next entry if the model is not empty.
10453         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
10454         Go back to the start of the history if we're past its end.
10456         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
10457         (rb_shuffle_play_order_go_next): Go back to the start of the history
10458         if we're past its end.
10459         (rb_shuffle_sync_history_with_query_model): Go back to the start of
10460         the history if the current entry is removed.
10462         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
10463         (rb_play_order_entry_deleted_cb): Only update have next/previous for
10464         the play order when the query has finished. This wasted about 10% CPU
10465         while the query was running.
10467         Fixes #324641: assertion failures when the query model was changed
10468         such that the playing song was no longer present.
10470 2006-01-05  James Livingston  <jrl@ids.org.au>
10472         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
10473         (rb_daap_src_dispose), (rb_daap_src_change_state):
10474         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
10475         (rhythmdb_gda_finalize):
10476         * widgets/rb-cell-renderer-pixbuf.c:
10477         * widgets/rb-cell-renderer-rating.c:
10478         (rb_cell_renderer_rating_class_init),
10479         (rb_cell_renderer_rating_finalize):
10480         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
10481         * widgets/rb-load-failure-dialog.c:
10482         (rb_load_failure_dialog_class_init),
10483         (rb_load_failure_dialog_finalize):
10484         * widgets/rb-rating.c: (rb_rating_class_init),
10485         (rb_rating_finalize):
10486         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
10487         (rb_search_entry_finalize): use G_DEFINE_TYPE
10489         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
10491 2006-01-05  James Livingston  <jrl@ids.org.au>
10493         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
10495         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
10496         the tarball.
10498         * shell/rb-history.c: (rb_history_class_init),
10499         (rb_history_finalize):
10500         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
10501         (rb_playlist_manager_finalize):
10502         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
10503         (rb_remote_init): use G_DEFINE_TYPE.
10505 2006-01-05  James Livingston  <jrl@ids.org.au>
10507         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
10508         changes
10510 2006-01-04  William Jon McCann  <mccann@jhu.edu>
10512         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
10513         Disable burn action when source is not a playlist.
10514         Fixes #323578.
10516 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
10518         Optionally use libnotify to display song change and other
10519         notifications, and provide an option to disable notifications.
10520         Fixes #320355 and innumerable informal complaints.
10522         * widgets/eggtrayicon.c: (egg_tray_icon_init),
10523         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
10524         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
10525         (egg_tray_icon_notify):
10526         * widgets/eggtrayicon.h:
10527         * configure.ac:
10528         * shell/Makefile.am:
10529         Optionally use libnotify instead of eggnotificationbubble.
10531         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
10532         (rb_tray_icon_constructor), 
10533         (rb_tray_icon_show_notifications_changed_cb),
10534         (rb_tray_icon_hide_notify_cb)
10535         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
10536         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
10537         EggNotificationBubble pointer to eggtrayicon.
10539         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
10540         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
10541         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
10543 2006-01-04  William Jon McCann  <mccann@jhu.edu>
10545         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
10546         Request a minimum size for the progress bar so that
10547         the window doesn't shrink too small.
10549 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10551         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
10552         (add_db_entry), (db_entry_deleted_cb):
10553         Don't track the number of songs currently present, track the next ID
10554         to assign.  Fixes potential ID conflict problems.
10555         
10556         (db_entry_changed_cb), (rb_daap_share_start_publish),
10557         (rb_daap_share_stop_publish):
10558         Watch for db entry changes, and when songs become non-hidden after
10559         a successful stat, add them to the mapping tables.   Fixes #325178,
10560         making the DAAP server usable again.
10562 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10563         
10564         * shell/rb-statusbar.c: (rb_statusbar_class_init),
10565         (rb_statusbar_construct), (rb_statusbar_init),
10566         (rb_statusbar_finalize), (rb_statusbar_set_property),
10567         (rb_statusbar_get_property), (rb_statusbar_new),
10568         (rb_statusbar_sync_with_source):
10569         * shell/rb-statusbar.h:
10570         Remove visibility management code, stop watching for play order
10571         changes (status bar doesn't show play order any more), remove unused
10572         'player' property, and some other minor cleanup.
10573         
10574         * shell/rb-shell.c: (rb_shell_constructor),
10575         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
10576         (rb_shell_sync_statusbar_visibility):
10577         Manage status bar visibility here rather than in the status bar
10578         itself, so we can take small mode into account.  Fixes #323589.
10580 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10582         * widgets/eggnotificationbubble.c: (draw_bubble):
10583         Move the bubble off the visible screen while setting up bevels.  
10584         Fixes #316810.
10586 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10588         * shell/rb-shell-player.c: (rb_shell_player_init),
10589         (rb_shell_player_finalize): 
10590         Remove unused structure members.
10591         
10592         (do_next_idle), (rb_shell_player_error):
10593         Only queue one call to do_next_idle, so we don't skip tracks if we get
10594         two errors for the same song.  Fixes #325216.
10596 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10598         * data/glade/podcast-feed-properties.glade,
10599          podcast/rb-feed-podcast-properties-dialog.c:
10600         (rb_feed_podcast_properties_dialog_init),
10601         (rb_feed_podcast_properties_dialog_update):
10602         Add 'last episode' field to the podcast feed properties dialog.
10604         * podcast/rb-feed-podcast-properties-dialog.c:
10605         (rb_feed_podcast_properties_dialog_update_last_update),
10606         (rb_feed_podcast_properties_dialog_update_last_episode),
10607          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10608         Use last-seen property for the time at which we last updated the feed,
10609         and post-time for the time the last episode was published.
10611         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
10612         Handle upgrades from 0.9.2; if no post-time was found for a podcast
10613         feed, use last-seen (which in 0.9.2 was the last post time).
10615         Fixes #323894.
10617 2006-01-01  James Livingston  <jrl@ids.org.au>
10619         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
10621         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
10622         year from the ipod database.
10624 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10626         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
10627         Only set the pipeline back to NULL state for really uninteresting
10628         files.  This was causing deadlocks with various video files.
10629         Fixes #324912.
10631 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10633         * data/glade/song-info-multiple.glade:
10634         Add disc number label and field.
10635         * widgets/rb-song-info.c: (rb_song_info_construct_single),
10636         (rb_song_info_constructor): 
10637         Handle widgets for disc number.
10638         (rb_song_info_sync_entries_multiple):
10639         Set disc number property on selected entries.
10640         Fixes #324777.
10642 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10644         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
10645         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
10646         Activate the default widget when enter is pressed in these dialogs.
10647         Fixes #322887.
10649 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10651         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
10652         Use rb_shell_player_get_playing_entry, so we get the right entry
10653         when playing from the queue.  Fixes #325379.
10655 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10657         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10658         Include podcast posts with no publication date.  Typically
10659         seen in static collections rather than feeds.
10661 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10663         * shell/main.c: (main): Don't attempt to handle
10664         bonobo-only arguments if we couldn't get a bonobo
10665         client proxy.
10667 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10669         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
10670         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
10671         abort if daap sharing is disabled and then re-enabled.
10673 2005-12-29  William Jon McCann  <mccann@jhu.edu>
10675         * podcast/rb-podcast-parse.c (rb_insert_item):
10676         Add debugging.
10677         (rb_podcast_parser_start_element): Support itunes:image.
10678         Add debugging.  Don't abuse the break statement.  Warn
10679         if state is unknown.
10680         (rb_podcast_parser_end_element): Add debugging.  Warn
10681         if state is unknown.
10682         (rb_podcast_parser_characters): Warn if state is unknown.
10684         Fixes parsing of feeds that use the itunes:image element.
10685         Fixes #324632
10687 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10689         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
10690         (stations_view_drag_data_received_cb):
10691         Remove calls to rhythmdb_entry_lookup_by_location, as
10692         rb_iradio_source_add_station does that anyway.
10693         
10694         (rb_iradio_source_add_from_playlist):
10695         If the URL doesn't point to a playlist, add it as the stream
10696         URL instead.
10698 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10700         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
10701         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
10702         so we don't get an assertion failure.
10703         Fixes #325025.
10705 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10707         * shell/main.c: (load_uri_args): don't compile this in if
10708         neither bonobo nor dbus are enabled.  Fixes #324890.
10710 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10712         * sources/rb-audiocd-source.c:
10713         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
10714         so it closes the device.
10716 2005-12-20  James Livingston  <jrl@ids.org.au>
10718         * metadata/rb-metadata-gst.c: make the state changes time-out again,
10719         so that it doesn't spend forever getting stuck on the one file. Don't
10720         report errors for failing to change state on known non-audio files.
10722         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
10723         audio sink creation if we can't create the gconfaudiosink. This lets
10724         it work with only gst-plugins-base on 0.10.
10726 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
10728         * rhythmdb/rhythmdb-query-model.c:
10729         (rhythmdb_query_model_set_sort_order):
10730         Fix a tiny memory leak in the previous commit.
10732 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
10734         * rhythmdb/rhythmdb-query-model.c:
10735         (rhythmdb_query_model_set_sort_order):
10736         Don't try to emit reorders for empty query models, since it doesn't
10737         achieve anything and it results in a few warnings.
10739 2005-12-19  William Jon McCann  <mccann@jhu.edu>
10741         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
10742         Make burn dialog non-resizable so that the expander can shrink.
10743         Fixes #308951.
10745 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
10747         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
10748         add entries without a location, rather than those with one.
10750 2005-12-19  James Livingston  <jrl@ids.org.au>
10752         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
10753         the error isn't set.
10755 2005-12-19  James Livingston  <jrl@ids.org.au>
10756         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
10757         add entries without a location. Fixes bug 324290.
10759         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
10760         without a location.
10762         * shell/main.c: (main): don't crash if dbus initialisation fails
10763         without setting an error
10765 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
10767         * sources/rb-library-source.c: Remove unused structure members
10768         (rb_library_source_do_query): Actually use the cached 'all' query.
10769         Fixes #324025.
10770         
10771 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
10773         * sources/rb-audiocd-source.c 
10774         (rb_audiocd_get_cd_info): tab
10775         (rb_audiocd_scan_songs): Return boolean success/failure,
10776         fix error messages a bit.
10777         (metadata_cb): Don't crash if we have no tracks
10778         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
10779         the CD.
10780         Fixes #324222.
10782 2005-12-15  William Jon McCann  <mccann@jhu.edu>
10784         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
10785         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
10786         key.
10788         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10789         Fixes #324157
10791 2005-12-14  William Jon McCann  <mccann@jhu.edu>
10793         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
10794         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
10795         (fullscreen_changed_cb): 
10796         * lib/rb-preferences.h: 
10797         * data/ui/rhythmbox-ui.xml: 
10798         * data/rhythmbox.schemas:
10799         Add fullscreen mode.
10801         Fixes #324075.
10803 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
10805         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
10806         configure.  It was not working with RPM.
10807         * data/Makefile.am: Switched dbus directory location to use
10808         datadir instead of variable that was not working.
10810 2005-12-13  James Livingston  <jrl@ids.org.au>
10812         patch by: Alex Lancaster <alexl@users.sourceforge.net>
10814         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
10815         the podcast browser work again. Closes bug 323856.
10817 2005-12-12  William Jon McCann  <mccann@jhu.edu>
10819         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
10820         Remove C99ism.
10822         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
10823         (rb_utf_friendly_time):
10824         * lib/rb-cut-and-paste-code.h:
10826         * podcast/rb-feed-podcast-properties-dialog.c:
10827         (rb_feed_podcast_properties_dialog_parse_time):
10828         * podcast/rb-podcast-properties-dialog.c:
10829         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
10830         to display the date in a more user friendly way.
10831         For example, if the feed was updated yesterday it will say:
10832         Last updated: Yesterday 10:00 AM
10833         instead of printing the date.
10835 2005-12-12  William Jon McCann  <mccann@jhu.edu>
10837         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
10838         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
10839         (rb_validate_item_propert, rb_podcast_parser_start_element) 
10840         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
10841         Use RB style.  Check for NULL before strcmp.  No C++ comments.
10842         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
10843         Don't set invalid mime type when mime type is NULL.  Fix leaks.
10844         (rb_podcast_parse_date): Add support for some real world
10845         date formats.
10846         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
10847         (rb_podcast_parse_item_free): Style and no need to check
10848         for NULL before g_free.
10850         May fix #323742
10852 2005-12-12  James Livingston  <jrl@ids.org.au>
10854         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
10855         with gstreamer 0.10, which replaced audioscale.
10857         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
10858         function to free the SoupSession
10860         * shell/rb-source-header.c: (rb_source_header_set_property),
10861         (rb_source_header_disclosure_toggled_cb),
10862         (rb_source_header_view_browser_changed_cb),
10863         (rb_source_header_sync_control_state):
10864         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
10865         * sources/rb-library-source.c: (rb_library_source_class_init):
10866         * sources/rb-source.c: (rb_source_class_init),
10867         (rb_source_get_status), (default_get_browser_key),
10868         (rb_source_get_browser_key), (rb_source_can_browse),
10869         (rb_source_notify_status_changed),
10870         (rb_source_notify_filter_changed):
10871         * sources/rb-source.h: seperate the enabling of browsers from the use
10872         of a gconf key.
10874 2005-12-11  William Jon McCann  <mccann@jhu.edu>
10876         * data/glade/podcast-feed-properties.glade: 
10877         * data/glade/podcast-properties.glade: Use scrolled viewports
10878         for description text.  Fix regression of #320509.
10880 2005-12-11  James Livingston  <jrl@ids.org.au>
10882         * sources/rb-auto-playlist-source.c:
10883         (rb_auto_playlist_source_class_init), (impl_reset_filters),
10884         (impl_search), (rb_auto_playlist_source_do_query),
10885         (rb_auto_playlist_source_set_query),
10886         (rb_auto_playlist_source_get_query): add support for the search box
10887         to automatic playlists.
10889         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
10890         memory leak.
10892 2005-12-11  James Livingston  <jrl@ids.org.au>
10894         * NEWS: update NEWS
10896 2005-12-11  James Livingston  <jrl@ids.org.au>
10898         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
10899         (rhythmdb_load), (monitor_subdirectory),
10900         (rhythmdb_sync_library_location):  start the library sync and
10901         monitoring in an idle callback.
10903 2005-12-10  William Jon McCann  <mccann@jhu.edu>
10905         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
10906         (rb_podcast_source_constructor): Remove unused pixbuf column.
10907         (rb_podcast_source_set_property, rb_podcast_source_get_property):
10908         Use consistent style.
10910         Fixes #322961.
10912 2005-12-11  James Livingston  <jrl@ids.org.au>
10914         * rhythmdb/rhythmdb-property-model.c:
10915         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
10916         (rhythmdb_property_model_insert),
10917         (rhythmdb_property_model_delete_prop):
10918         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
10919         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
10920         (destroy_tree_property):
10921         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
10922         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
10923         GMemChunks, they are crap and deprecated. Improves startup-time and
10924         memory usage slightly.
10926 2005-12-10  William Jon McCann  <mccann@jhu.edu>
10928         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
10929         Added license and website info.
10931         * MAINTAINERS.old: Add Colin.
10932         * MAINTAINERS: Add James.
10933         * AUTHORS: Put back in order.  Add extra space between name and email
10934         to make it easier to read.  Add James and jonathan.
10936         * widgets/rb-song-info.c (rb_song_info_init) 
10937         (rb_song_info_constructor): Make sure close button is primary/rightmost.
10939 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
10941         Play queue implementation. Closes bug 107787.
10943         * data/rhythmbox.schemas: add items for whether the queue should be
10944         displayed as a sidebar, and the height of the sourcelist if it is.
10946         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
10947         playlist, and podcast popups; add 'view queue as sidebar' menu item,
10948         add popups for queue as source and as sidebar.  We need a separate
10949         popup for the sidebar view because otherwise it's hard to tell which
10950         of the visible entry views the action came from.
10952         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
10954         * po/POTFILES.in: Add new file
10956         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
10957         Add helper function for deciding if a podcast episode is available for
10958         playback.
10960         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
10961         reorder entries in the query model.
10962         (idle_process_update): Handle new update type used to insert entries
10963         at a particular position in the query model.
10964         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
10965         parameter to specify the position (-1 meaning 'at the end').
10966         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
10967         parameter.
10968         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
10969         bad entry removal updates for entries that aren't in the model.
10970         (rhythmdb_query_model_emit_reorder): Add helper function for
10971         reordering rows.
10972         (rhythmdb_query_model_move_entry): New method for moving entries
10973         around in the model
10974         (rhythmdb_query_model_entry_added_cb),
10975         (rhythmdb_query_model_update_limited_entries),
10976         (rhythmdb_query_model_do_reorder),
10977         (rhythmdb_query_model_do_insert): Pass through the index parameter,
10978         use rhythmdb_query_model_emit_reorder where appropriate.
10980         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
10981         Don't allow the queue to be deleted.
10982         (handle_playlist_entry_cb): Update for method signature change
10983         (rb_playlist_manager_save_playlists_async),
10984         (rb_playlist_manager_get_playlists): Don't save the play queue,
10985         don't report it as a playlist.
10987         * shell/rb-play-order.c: Include queue play order in the list of
10988         available orders.
10990         * shell/rb-shell.c
10991         (rb_shell_class_init), (rb_shell_get_property): Add new property 
10992         for access to the clipboard object.
10993         (rb_shell_constructor): Handle playing-from-queue signal to update the
10994         sourcelist display; add queue sidebar in to UI, listen for queue
10995         sidebar pane changes, and read initial settings from gconf.
10996         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
10997         Only tell the sourcelist the source has changed if the new source is 
10998         not the queue, as we update the sourcelist differently in that case.
10999         (rb_shell_set_window_title): Only use the cached window title if the
11000         playing state was the same when it was created.
11001         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
11002         (rb_shell_sync_pane_visibility): Only hide the side pane if the
11003         sourcelist is hidden and the queue is shown as a source.
11004         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
11005         mode, since it doesn't make any sense.
11006         (sourcelist_visibility_changed_cb): Update the visibility of the pane
11007         too.
11008         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
11009         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
11010         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
11011         playing from queue shown as sidebar.
11013         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
11014         MusicProperties action here from rb-shell-player.c, since it acts like
11015         cut/copy/paste etc.
11016         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
11017         (rb_shell_clipboard_get_property): new property for queue source.
11018         Watch for selection changes in the sidebar entry view as well as the
11019         normal one.
11020         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
11021         actions and MusicProperties.
11022         (rb_shell_clipboard_cmd_queue_delete),
11023         (rb_shell_clipboard_cmd_add_song_to_queue),
11024         (rb_shell_clipboard_cmd_song_info),
11025         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
11027         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
11028         actually came from (could be the playing source, or the queue), add a 
11029         new play order object for the queue, add a property for the queue
11030         source, add a signal for when we switch between playing from the
11031         source and from the queue.
11032         (rb_shell_player_set_property): Handle playing directly from the
11033         queue so we stop once the queue is empty.  Create queue play order
11034         when we get the queue source.
11035         (rb_shell_player_get_playing_source): Return the source we're actually
11036         playing from.
11037         (rb_shell_player_get_playing_entry): Get playing entry from queue if
11038         that's where it is.
11039         (rb_shell_player_set_playing_entry): Update the queue play order if 
11040         that's where we're playing from.
11041         (rb_shell_player_play_order_update_cb): Take has next/previous for the
11042         queue into consideration too.
11043         (swap_playing_source): Helper function for switching the playing
11044         source.
11045         (rb_shell_player_do_previous): Check the queue, even though there's
11046         never a previous entry in it (yet), swap playing source if it changed.
11047         (rb_shell_player_do_next): Check the queue for entries to play before
11048         the normal play order, and swap playing source if it changed.
11049         (rb_shell_player_do_previous_or_seek): Check the queue for previous
11050         entries to go to as well.
11051         (rb_shell_player_playpause): Check the queue before the selection and
11052         the play order, and swap playing source if it changed.
11053         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
11054         (rb_shell_player_entry_activated_cb): Use
11055         rb_podcast_manager_entry_downloaded, do some tapdancing to make
11056         activating queue entries work properly (move the activated entry to
11057         the start of the queue and then play it); if we were playing from the
11058         queue, clear its playing entry so it'll start again from the start
11059         after the activated entry.
11060         (rb_shell_player_sync_buttons): MusicProperties action handler moved
11061         to rb-shell-clipboard.c
11062         (actually_set_playing_source): Add helper for updating the playing
11063         source.
11064         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
11065         signal if we stop or start doing so; use actually_set_playing_source; 
11066         emit playing-source-changed if we actually did change source.
11068         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
11069         rb_static_playlist_source_add_location.
11071         * sources/rb-library-source.c (rb_library_source_class_init): Allow
11072         enqueueing of songs from the library.
11074         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
11075         enqueueing of sonsg from playlists.
11076         (rb_playlist_source_entry_added_cb): Add extra parameter for
11077         rhythmdb_query_model_add_entry.
11078         
11079         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
11080         Implement (can_)add_to_queue for this class.
11081         (rb_podcast_source_entry_activated): Use
11082         rb_podcast_manager_entry_downloaded.
11083         (impl_can_add_to_queue): Return TRUE if at least one entry that has
11084         been downloaded is selected.
11085         (impl_add_to_queue): Only add downloaded entries to the queue.
11087         * sources/rb-source.{c,h}:
11088         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
11089         methods.
11090         (rb_source_class_init): Don't allow enqueueing by default; implement 
11091         add_to_queue though.
11092         (default_add_to_queue): Add all selected entries to the queue.
11093         
11094         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
11095         would be playing if there wasn't anything in the queue).
11096         (set_source_playing): Helper function for manipulating tree store.
11097         (rb_sourcelist_set_playing_source): Use set_source_playing
11098         (rb_sourcelist_preempt_playing_source): Update preempted source
11099         pointer, manipulate source states.
11101         * sources/rb-static-playlist-source.{c,h}:
11102         (rb_static_playlist_source_add_location_internal),
11103         (rb_static_playlist_source_add_location),
11104         (rb_static_playlist_source_add_entry): Add index parameter for
11105         specifying where in the playlist the new entry goes.
11106         (rb_static_playlist_source_new_from_xml), (impl_paste),
11107         (rb_static_playlist_source_add_list_uri),
11108         (rb_static_playlist_source_add_location_swapped),
11109         (rb_static_playlist_source_add_locations),
11110         (rb_static_playlist_source_non_entry_dropped),
11111         (rb_static_playlist_source_row_inserted):
11112         Handle new index parameter everywhere it appears
11113         (rb_static_playlist_source_move_entry): New method for moving entries
11114         around in the playlist.
11116         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
11117         warnings when trying to scroll entry views that have never been
11118         displayed.
11120         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
11121         play order that removes the old entry when switching to a new one.
11123         * sources/rb-play-queue-source.{c,h}: New files, implementing a
11124         static playlist subclass that has a second entry view for the sidebar
11125         view using alternate formatting, and that displays the number of
11126         entries it contains in its source list entry.
11128 2005-12-10  James Livingston  <jrl@ids.org.au>
11130         * rhythmdb/rhythmdb-query-model.c:
11131         (rhythmdb_query_model_add_entry),
11132         (rhythmdb_query_model_drag_data_received):
11133         * sources/rb-static-playlist-source.c:
11134         (rb_static_playlist_source_non_entry_dropped): when things are
11135         dropped, ignore any blank lines in the list of uris. Make the source
11136         responsible for adding new items to the db.
11138         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
11139         empty string.
11141 2005-12-10  James Livingston  <jrl@ids.org.au>
11143         * shell/rb-shell-player.c: (rb_shell_player_set_property),
11144         (rb_shell_player_sync_buttons),
11145         (rb_shell_player_selection_changed_cb): watch for the
11146         "selection-changed" signal, so that the Song Properties get enabled.
11147         Closes bug 323694.
11149 2005-12-10  James Livingston  <jrl@ids.org.au>
11151         * data/rhythmbox.schemas: fix the gconf schema
11153 2005-12-10  James Livingston  <jrl@ids.org.au>
11155         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
11156         the decoded-pad callback with gstreamer 0.8, it causes problems.
11158 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11160         Remove more junk from RBEntryView. Closes bug 323640.
11162         * widgets/rb-entry-view.{c,h}:
11163         Remove unused private structure members, replace 'playing' boolean
11164         with an enum (so we know if we're paused too), and store a pointer to
11165         the RBShellPlayer too.  
11166         (rb_entry_view_class_init), (rb_entry_view_set_property),
11167         (rb_entry_view_get_property):
11168         Remove 'entry-selected' and 'changed' signals and
11169         'playing-entry' property, add 'selection-changed' signal and
11170         'shell-player' and 'playing-state' properties.
11171         (rb_entry_view_new): Take the shell player object reference
11172         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
11173         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
11174         No longer needed, shell player is the place to get this information.
11175         (rb_entry_view_busy), (rb_entry_view_get_duration),
11176         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
11177         (rb_entry_view_get_next_from_entry),
11178         (rb_entry_view_get_previous_from_entry),
11179         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
11180         (rb_entry_view_get_num_entries):
11181         Removed, callers should go to the query model directly.
11182         (rb_entry_view_playing_song_changed): Update active query model, emit
11183         row changed signals to update pixbufs, and scroll to the playing song
11184         when the playing song changes, based on a signal from the shell
11185         player.
11186         (queue_changed_sig), (rb_entry_view_row_changed_cb),
11187         (emit_entry_changed): Evil, removed.
11188         (rb_entry_view_selection_changed_cb): Remove old signals, add new
11189         selection-changed signal.
11190         (rb_entry_view_select_none), (rb_entry_view_select_entry):
11191         Remove selection lock.  It didn't work anyway.
11192         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
11193         (rb_entry_view_emit_row_changed): Simple helper function to emit
11194         row-changed signals.
11196         * widgets/Makefile.am: Entry view needs headers from the shell/
11197         directory.
11198         * widgets/rb-song-info.{c,h}: Use the query model for everything except
11200         scrolling the entry view to show the entry being displayed.
11201         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
11202         'source' property so we can watch for query model changes.
11203         (rb_song_info_finalize): Unref objects, disconnect signal handlers
11204         (rb_song_info_set_property): Watch for query model changes, don't
11205         watch for entry view changes.
11206         (rb_song_info_new): Take source as a parameter, use the source's entry
11207         view unless one was specifically supplied.
11208         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
11209         Use query model rather than entry view to move between songs.
11210         (rb_song_info_update_buttons): Use query model.
11211         (rb_song_info_query_model_changed_cb): Handle query model changes.
11213         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11214         Only one copy of the code to enable/disable the CD burning action
11215         (rb_playlist_manager_playlist_entries_changed):
11216         Use the query model to get the number of entries, not the entry view.
11218         * shell/rb-play-order-random-by-age-and-rating.c,
11219         shell/rb-play-order-random-by-age.c,
11220         shell/rb-play-order-random-by-rating.c,
11221         shell/rb-play-order-random-equal-weights.c:
11222         Use G_DEFINE_TYPE
11224         * shell/rb-shell-player.{c,h}:
11225         Remove a few unused entries from the structure.
11226         (rb_shell_player_set_property):
11227         Don't use the 'changed' signal on the entry view (it's evil)
11228         (rb_shell_player_have_first): No longer needed
11229         (rb_shell_player_play): Just tell the entry view it's playing
11230         (rb_shell_player_playpause): Tell the entry view it's paused
11231         when pausing.
11232         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
11233         (rb_shell_player_property_row_activated_cb):
11234         Get the entry to play using the query model, not the entry view.
11235         (rb_shell_player_sync_buttons): Update entry view state while we're
11236         here.
11237         (rb_shell_player_set_playing_source_internal): Update entry view state
11238         (rb_shell_player_get_playing): Ask the entry view, not the player.
11239         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
11240         and rb_shell_set_window_title work properly, so you get "(Paused)" in
11241         the window title and tray icon tooltip.
11242         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
11244         * sources/rb-iradio-source.c, sources/rb-library-source.c,
11245         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
11246         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
11247         view constructor, pass the source in to the song info widget
11248         constructor.
11250         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
11251         Use 'selection-changed' instead of 'changed', since that's what the
11252         clipboard cares about.
11253         (rb_shell_clipboard_set_source): Don't die if source == NULL
11255 2005-12-10  James Livingston  <jrl@ids.org.au>
11257         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
11258         * sources/rb-playlist-source-recorder.c:
11259         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
11260         stuff not use the deprecated API when compiled against 2.13
11262 2005-12-10  James Livingston  <jrl@ids.org.au>
11264         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11266         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
11267         problem where the genre tag was getting set to the artist. Closes bug
11268         323642.
11270 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11272         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
11273         Return NULL if can't get first iter.
11275         Fixes #323663
11277 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11279         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
11280         updated rb_station_properties_dialog_new API.
11281         (rb_iradio_source_add_from_playlist): New public function.
11282         (rb_iradio_source_first_time_changed): Use add_from_playlist.
11284         * shell/rb-shell.c (new_station_location_added): Handle
11285         iradio location added signal.
11286         (rb_shell_cmd_new_station): Use new iradio station dialog.
11288         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
11289         (rb_station_properties_dialog_new): Don't squeeze new
11290         station functionality into this class.
11291         (rb_station_properties_dialog_response_cb): ditto.
11292         (rb_station_properties_dialog_update_title): Make
11293         consistent with other properties dialogs.
11294         (rb_station_properties_dialog_location_changed_cb): Do nothing.
11296         * iradio/rb-new-station-dialog.[ch]: 
11297         * iradio/Makefile.am: Add new station dialog.
11299         * data/glade/station-new.glade: New file based on
11300         new podcast feed dialog.
11301         * data/glade/station-properties.glade: Updated to
11302         be consistent with song properties dialog.
11304         Fixes #323306.
11306 2005-12-10  James Livingston  <jrl@ids.org.au>
11308         patch by: Ståle Lyngaas <staale@lyngaas.com>
11310         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
11311         submit songs longer than 30 minutes. Fixes bug 323639.
11313 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11315         * shell/rb-shell.c (idle_save_playlist_manager): Use new
11316         async save function.
11317         (rb_shell_finalize): Remove save timeout sources.  Reorder
11318         steps a bit to make saving db and playlists a bit more
11319         failsafe in case something goes wrong later.
11320         (rb_shell_constructor): Keep track of save timeout source.
11321         (add_to_library_response_cb): Keep track of db save timeout source.
11323         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
11324         g_atomic.
11325         (rb_playlist_manager_shutdown): New function to shutdown
11326         threads etc. before exit.
11327         (rb_playlist_manager_finalize): Moved handling outstanding
11328         threads stuff to shutdown since if there are outstanding threads
11329         they hold a ref and finalize is never called.
11330         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
11331         of signal which may be required for sync save.
11332         (rb_playlist_manager_save_playlists_async): Renamed old
11333         save_playlists to save_playlists_async.  Use g_atomic.
11334         (rb_playlist_manager_save_playlists): New function to
11335         perform sync saves (symmetric with RhythmDB API).
11336         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
11338         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
11339         Style consistency anality.
11340         (rhythmdb_finalize): Remove save timeout source.
11341         (rhythmdb_set_property, rhythmdb_get_property) 
11342         (rhythmdb_process_events): More anality and keep track of
11343         save timeout source.
11344         (action_thread_main): No need to call g_thread_exit.
11345         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
11346         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
11347         (write_encoded_gvalue, read_encoded_property): La la la.
11349         Fixes #322940.
11351 2005-12-10  James Livingston  <jrl@ids.org.au>
11353         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
11354         non-audio files.
11356 2005-12-10  James Livingston  <jrl@ids.org.au>
11358         * Makefile.am:
11359         * configure.ac: remove the rpm spec files, so that automake works.
11360         oops
11362         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
11363         locking issue
11365 2005-12-09  James Livingston  <jrl@ids.org.au>
11367         * debian/: try to get cvs to actually remove the files
11369 2005-12-09  James Livingston  <jrl@ids.org.au>
11371         * rhythmbox.spec.in:
11372         * debian/: remove the distro package stuff, they are *really* old, and
11373         downstream manage it anyway.
11375 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
11377         Rework play orders to work off query models rather than 
11378         entry views, and track the playing entry themselves rather
11379         than relying on the entry view to do it.  This makes the entry
11380         view mostly just a widget. Closes bug 323612.
11382         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
11383         Use query model rather than entry view to get the number
11384         of entries in playlists.
11386         * rhythmdb/rhythmdb-query-model.{c.h}
11387         (rhythmdb_query_model_tree_path_to_entry),
11388         (rhythmdb_query_model_iter_to_entry),
11389         (rhythmdb_query_model_get_next_from_entry),
11390         (rhythmdb_query_model_get_previous_from_entry):
11391         New utility functions for iterating through query models.
11392         (rhythmdb_query_model_compute_status_normal):
11393         Have one copy of this code, not four.
11395         * shell/rb-play-order.{c,h}:
11396         Add signals for when next/previous availability changes, and
11397         when the playing entry is removed, and add a property for
11398         the current playing entry.  Add gtkdoc comments too.
11399         (rb_play_order_class_init): Add new property and signals.
11400         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
11401         (rb_play_orer_query_model_changed_cb),
11402         (rb_play_order_query_model_changed): 
11403         Use query model rather than entry view.
11404         (rb_play_order_set_property), (rb_play_order_get_property):
11405         Handle new playing-entry property.  Call playing_entry_changed virtual
11406         method so subclasses can do any processing required.
11407         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
11408         (rb_play_order_set_playing_entry):
11409         Just use the playing-entry property.
11410         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
11411         Utility methods for subclasses.
11412         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
11413         Update next/previous availability, check if the playing entry
11414         was removed.
11415         (default_playing_entry_removed):
11416         Keep the current behaviour of just stopping playback when the 
11417         playing entry is deleted.
11418         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
11419         these for subclasses that don't have go_next/go_previous, but do
11420         have get_next/get_previous.
11421         (rb_play_order_update_have_next_previous): Emit signal if the
11422         availability of next/previous entries has changed.
11424         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
11425         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
11426         Use G_DEFINE_TYPE, replace entry view iterator with query model 
11427         methods.
11428         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
11429         on the last song in the shuffled order, go back to the start. This
11430         means if you press 'play' again you'll get the whole order again, not
11431         just one song.
11433         * shell/rb-shell-player.c:
11434         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
11435         play order rather than the entry view.
11436         (rb_shell_player_set_property): Update the play order when the
11437         selected source changes and we aren't playing anything.
11438         (rb_shell_player_sync_play_order): Copy the playing entry across to
11439         the new play order so playback continues from the same song, and watch
11440         for updates to have_next/have_previous.
11441         (rb_shell_player_play_order_update_cb): Enable/disable the
11442         next/previous actions when next/previous entry availability changes.
11443         (rb_shell_player_jump_to_current): Just use the play order's idea of
11444         what's playing, not the entry view's; if not playing anything, clear
11445         the selection, so when a playlist ends and you hit play again, it'll
11446         start at the start rather than the end.
11447         (rb_shell_player_do_previous): restructure a bit.
11448         (rb_shell_player_do_next): restructure, jump to new playing entry in
11449         an idle handler instead of directly.
11450         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
11451         song if there is one.
11452         (rb_shell_player_playpause): Jump to playing song, don't update the
11453         play order if we got the song from the selection.
11454         (rb_shell_player_playing_entry_deleted_cb): Not needed.
11455         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
11456         looks after next/previous actions now.  Don't break if called while
11457         there is no selected source.
11458         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
11459         (rb_shell_player_set_playing_source_internal),
11460         (rb_shell_player_error): No need to track the attempted playing entry
11461         any more, since the play order does that.
11463         * shell/rb-shell.c:
11464         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
11465         rb_shell_player_get_playing_entry rather than going through the entry
11466         view.
11468         * shell/rb-statusbar.c (rb_statusbar_set_property),
11469         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
11470         than the entry view for status bar text changes.
11471         (rb_statusbar_sync_status): Ask the query model directly
11473         * sources/rb-source.{c}: Add query model property.
11474         (default_get_status): Get status text from query model, should be
11475         suitable for most sources.
11476         (rb_source_set_property): Listen for changes to the query model 
11477         to update the status text.
11478         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
11479         (idle_emit_status_changed): Emit status-changed signals when query
11480         model changes. 
11482         * sources/rb-library-source.c, sources/rb-podcast-source.c:
11483         (impl_get_status): Not needed, RBSource does this now
11484         (rb_library_source_do_query) (rb_podcast_source_do_query): 
11485         Update RBSource's query model reference.
11487         * sources/rb-playlist-source.c:
11488         Remove query-model property, since RBSource has one now
11489         (impl_get_status): Not needed, RBSource does this now
11490         (rb_playlist_source_row_deleted): Use query model iterator helper
11491         function.
11492         (rb_playlist_source_set_query_model): Update RBSource's query model
11493         reference too.
11495         * sources/rb-iradio-source.c:
11496         (impl_get_status): Ask the query model directly.
11497         (rb_iradio_source_do_query): Update RBSource's query model reference
11498         when we create a new query.
11500         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
11501         Use query model rather than entry view.
11503         * widgets/rb-entry-view.{c,h}: 
11504         Remove playing_entry_deleted signal (now in play order).
11505         (entry_from_tree_path), (entry_from_tree_iter): Not needed
11506          as RhythmDBQueryModel has equivalent helper functions.
11507         (rb_entry_view_*): Use query model helpers instead of the above two
11508         functions.
11510 2005-12-09  James Livingston  <jrl@ids.org.au>
11512         * configure.ac:
11513         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
11514         (rb_recorder_enabled):
11515         * shell/rb-removable-media-manager.c: (poll_tray_opened):
11516         * sources/rb-playlist-source-recorder.c:
11517         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
11518         whether libnautilusburn has the _drive_unref function, and if so use
11519         it. Stops it complaining about deprecated API.
11521 2005-12-09  James Livingston  <jrl@ids.org.au>
11523         * configure.ac: drop the minimum gstreamer version back down, it
11524         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
11526 2005-12-09  James Livingston  <jrl@ids.org.au>
11528         * widgets/rb-song-info.c: (rb_song_info_class_init),
11529         (rb_song_info_show), (rb_song_info_constructor),
11530         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
11531         (rb_song_info_forward_clicked_cb): save metadata changes when the
11532         Next/Previous buttons are pressed (closes bug 320952). use
11533         G_DEFINE_TYPE.
11535 2005-12-09  James Livingston  <jrl@ids.org.au>
11537         Patch by: <jonathan@kaolin.hn.org>
11539         * sources/rb-iradio-source.c:
11540         (stations_view_drag_data_received_cb):
11541         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
11542         of urls. Fixes bug 323610.
11544 2005-12-09  James Livingston  <jrl@ids.org.au>
11546          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
11547          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
11549         * configure.ac:
11550         * metadata/rb-metadata-gst.c:
11551         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
11552         (rb_player_construct), (rb_player_new):
11553         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
11554         (rb_recorder_gst_signal_error), (pipe_message),
11555         (rb_recorder_new_pad_cb), (rb_recorder_construct),
11556         (rb_recorder_new):
11557         * shell/main.c: (main):
11558         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
11559         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
11561 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11563         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
11565         * shell/rb-playlist-manager.c:
11566           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
11567           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
11568           (rb_playlist_manager_set_automatic_playlist),
11569           (rb_playlist_manager_cmd_new_automatic_playlist),
11570           (rb_playlist_manager_cmd_edit_automatic_playlist):
11571            Use new playlist subclasses.
11572           (rb_playlist_manager_save_playlists): Only read the dirty flag
11573            for local playlists, minor pointless reformatting
11575         * sources/Makefile.am: add new files
11577         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
11578           split lots of stuff out into two
11579           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
11580           make RBPlaylistSource abstract, add virtual methods for showing a
11581           popup for the entry view and saving the playlist to XML.
11582           Other stuff is subclass-specific, or already virtual in RBSource.
11584         * sources/rb-playlist-xml: Define playlist XML tags and attributes
11585           in one place, since they're used across three source files now
11587         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
11588           Use new static playlist class
11590         * sources/rb-ipod-source.c: (add_rb_playlist):
11591           Use new static playlist class
11593         * sources/rb-static-playlist-source.{c,h},
11594         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
11595         files.
11597         * po/POTFILES.in: add new files
11599 2005-12-07  James Livingston  <jrl@ids.org.au>
11601         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
11602         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
11603         metadata loads not attempt to write changes to disk.
11605 2005-12-07  James Livingston  <jrl@ids.org.au>
11607         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11609         * data/glade/song-info-multiple.glade:
11610         * widgets/rb-song-info.c: (rb_song_info_constructor),
11611         (rb_song_info_sync_entries_multiple): allow the year to be changed on
11612         multiple songs at once.
11614 2005-12-06  James Livingston  <jrl@ids.org.au>
11616         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
11617         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
11619 2005-12-06  James Livingston  <jrl@ids.org.au>
11621         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
11622         names rather than adding a horizontal scroll bar.
11624 2005-12-06  James Livingston  <jrl@ids.org.au>
11626         * rhythmdb/rhythmdb-query-model.c:
11627         (rhythmdb_query_model_update_limited_entries),
11628         (rhythmdb_query_model_drag_data_received): remove some pointless debug
11629         messages
11631         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
11632         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
11633         always hide rather than remove DB entries, which will make RB not lose
11634         information when tag editing happens or people move files to trash and
11635         then change their mind. Also fix some races where the monitoring code
11636         would notice the temporary files generated by saving metadata.
11638 2005-12-05  William Jon McCann  <mccann@jhu.edu>
11640         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
11641         Hide internals and add tooltips.
11642         (rb_song_display_box_size_allocate): Hide internals.
11643         (sanitize_string, info_url): Copied from rb-header.
11644         (rb_song_display_box_sync): New public function.
11646         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
11647         (rb_header_init): Use a separate row for the seek bar.
11648         (rb_header_finalize): Don't unref widgets.
11649         (rb_header_sync): Use rb_song_display_box_sync.
11650         (rb_header_set_urldata)
11651         (rb_header_set_show_artist_album): Hide instead of remove widgets.
11652         (rb_header_set_show_position_slider): Set visibility of seek bar.
11653         (rb_header_set_show_timeline): Set sensitivity of seek bar.
11654         (rb_header_get_elapsed_string): Don't shift when you first start playback.
11656         * shell/rb-statusbar.c (rb_statusbar_init)
11657         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
11659         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
11660         (rb_shell_constructor): Remove hseparator.  Monitor
11661         toolbar visibility settings.  Add toolbar.  Add
11662         volume button to toolbar.  Add tooltips for volume button.
11663         (rb_shell_view_toolbar_changed_cb) 
11664         (rb_shell_sync_toolbar_visibility)
11665         (toolbar_visibility_changed_cb): Set visibility of
11666         toolbar.
11667         (rb_shell_sync_smalldisplay): Set the toolbar style to
11668         icons only when in small display mode.
11669         (rb_shell_volume_widget_changed_cb): Save volume setting.
11671         * shell/rb-shell-player.c (rb_shell_player_constructor):
11672         Remove pause and stop actions.  Make play action "important"
11673         so that text is visible in horizontal toolbar position.
11674         Remove control buttons.
11675         (rb_shell_player_init) 
11676         (rb_shell_player_sync_song_position_slider_visibility):
11677         Set visbibility of seek bar.
11678         (rb_shell_player_cmd_play, rb_shell_player_playpause):
11679         Make play action a toggle.
11680         (rb_shell_player_sync_volume): Volume control moved
11681         to player.
11682         (gconf_song_position_slider_visibility_changed):
11683         Set visbibility of seek bar.
11684         (rb_shell_player_sync_buttons):
11685         Set sensitivity of actions instead of buttons.
11686         (rb_shell_player_playing_changed_cb): Add callback
11687         for player notify::playing changes.
11689         * lib/rb-preferences.h: Add hide toolbar and seek
11690         bar key names.
11692         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
11693         seek bar menu items.  Remove pause and stop actions
11694         from the control menu.  Add a toolbar.
11696         * data/rhythmbox.schemas: Add toolbar_hidden
11697         song_position_slider_hidden keys.
11699         Patch by: James Livingston  <jrl@ids.org.au>
11700                   William Jon McCann  <mccann@jhu.edu>
11701         Fixes #316238.
11703 2005-12-05  James Livingston  <jrl@ids.org.au>
11705         * data/glade/library-prefs.glade:
11706         * data/rhythmbox.schemas:
11707         * lib/rb-preferences.h:
11708         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
11709         (rhythmdb_sync_library_location):
11710         * sources/rb-library-source.c: (rb_library_source_class_init),
11711         (rb_library_source_finalize), (rb_library_source_constructor),
11712         (impl_get_config_widget), (rb_library_source_preferences_sync),
11713         (rb_library_source_watch_toggled_cb): allow people to disable library
11714         monitoring, because with nothing set the file chooser button selects
11715         the Home folder (and hence that will get monitored).
11717 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
11719         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
11720         attempt to fix problem with RSS parsing showing invalid feed types.
11721         Fixes bug 323153
11723 2005-12-04  James Livingston  <jrl@ids.org.au>
11725         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
11726         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
11727         importing a remote directory not block the UI.
11729 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
11731         * data/glade/podcast-feed-properties.glade:
11732         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
11734 2005-12-04  James Livingston  <jrl@ids.org.au>
11736         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
11738         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
11739         to && to fix a mistake in the earlier podcast patch.
11741 2005-12-03  James Livingston  <jrl@ids.org.au>
11743         * data/glade/podcast-new.glade:
11744         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
11745         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
11747         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
11748         GValue, which stops occasional errors.
11750         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
11751         compile issue.
11753 2005-12-03  James Livingston  <jrl@ids.org.au>
11755         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
11757         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
11758         crasher with some podcasts feeds.
11760 2005-12-03  James Livingston  <jrl@ids.org.au>
11762         * data/rhythmbox.schemas: fix the gconf schema
11764 2005-12-03  James Livingston  <jrl@ids.org.au>
11766         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
11767         add a selection timeout to the sourcelist. This lets you hold a track
11768         over the playlist source, and then have the view switch so you can
11769         insert the track in the middle of the playlist. Closes bug 323044.
11771         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
11772         (select_on_drag_timeout), (remove_select_on_drag_timeout),
11773         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
11774         (rb_tree_dnd_add_drag_dest_support):
11775         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
11776         timeout.
11778         * sources/rb-sourcelist-model.c:
11779         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
11780         the source list.
11782 2005-12-02  Bastien Nocera  <hadess@hadess.net>
11784         * data/glade/audioscrobbler-prefs.glade: add a space before the web
11785         links, so that the text doesn't touch the button
11787 2005-12-02  James Livingston  <jrl@ids.org.au>
11789         Add full support for gnome-vfs remote files. Closes bug 140355.
11791         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
11792         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
11793         for authentication information from the user doesn't block the UI.
11795         (rhythmdb_entry_set_visibility): don't emit the signal twice.
11797         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
11798         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
11799         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
11800         (rhythmdb_process_stat_event), (emit_load_error_idle),
11801         (rhythmdb_process_metadata_load),
11802         (rhythmdb_process_queued_entry_set_event),
11803         (rhythmdb_process_file_created_or_modified),
11804         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
11805         (queue_stat_uri), (add_thread_main),
11806         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
11807         (rhythmdb_load), (rhythmdb_save_thread_main),
11808         (threadsafe_entry_set), (rhythmdb_query_internal),
11809         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
11810         (rhythmdb_do_full_query_internal),
11811         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
11812         (rhythmdb_volume_unmounted_cb),
11813         (rhythmdb_check_changed_file): trivial changes to support the
11814         asynchronous stats.
11816         * shell/main.c: (main): activate the authentication manager.
11818         * shell/rb-playlist-manager.c:
11819         (rb_playlist_manager_cmd_load_playlist),
11820         (rb_playlist_manager_cmd_save_playlist):
11821         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
11822         (rb_shell_cmd_add_file_to_library):
11823         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
11824         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
11825         remote files.
11827 2005-12-02  James Livingston  <jrl@ids.org.au>
11829         * shell/rb-playlist-manager.c: makes playlist menu items use the
11830         elipses correctly. Fixes bug 322283.
11832 2005-12-02  James Livingston  <jrl@ids.org.au>
11834         * shell/rb-playlist-manager.c:
11835         (rb_playlist_manager_load_playlists): fix silly mistake
11837 2005-12-02  James Livingston  <jrl@ids.org.au>
11839         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
11840         print out metadata-write unless --debug was passed.
11842         * rhythmdb/rhythmdb.c: (rhythmdb_load):
11843         * shell/rb-playlist-manager.c:
11844         (rb_playlist_manager_load_playlists): block writes to disk if they are
11845         still being loaded.
11847 2005-12-02  James Livingston  <jrl@ids.org.au>
11849         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
11850         ctrl-T, because Ctrl-D is used by "small mode"
11852 2005-12-02  James Livingston  <jrl@ids.org.au>
11854         * shell/rb-shell-preferences.c:
11855         (rb_shell_preferences_append_view_page):
11856         * sources/rb-library-source.c: (impl_get_config_widget):
11857         * sources/rb-podcast-source.c: (impl_get_config_widget):
11858         * sources/rb-source.c: (rb_source_get_config_widget):
11859         * sources/rb-source.h: Make the preference actually work.
11861         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
11862         if Rhythmbox is being run for the first time.
11864 2005-12-02  James Livingston  <jrl@ids.org.au>
11866         Add support for Rhythmbox to watch your library, and automatically add
11867         new tracks. Fixes bug 160159.
11869         * data/glade/library-prefs.glade: add "library location" preference
11870         * data/rhythmbox.schemas: add gconf key for the library location
11872         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
11873         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
11874         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
11875         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
11876         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
11877         (rhythmdb_load_thread_main), (rhythmdb_load),
11878         (monitor_subdirectory), (monitor_library_directory),
11879         (monitor_entry_file), (rhythmdb_sync_library_location),
11880         (library_location_changed_cb), (rhythmdb_check_changed_file),
11881         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
11882         specifiec in the gconf key for new additions. Also fix monitoring code
11883         so that it works properly, and notices deletions.
11885         * lib/rb-preferences.h:
11886         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
11887         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
11888         * shell/rb-audioscrobbler.h:
11889         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
11890         (rb_shell_preferences_append_view_page),
11891         (rb_shell_preferences_new):
11892         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
11893         it's preferences pane, so that we don't need #ifdef's through
11894         rb-shell-preferences.
11896         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
11897         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
11898         "preferences" property, so that sources can acccess it. This is needed
11899         because the library location pref needs to take effect when the window
11900         is closed.
11902         * sources/rb-library-source.c:
11903         (rb_library_source_library_location_changed),
11904         (rb_library_source_dispose), (rb_library_source_finalize),
11905         (rb_library_source_constructor), (impl_get_config_widget),
11906         (rb_library_source_preferences_sync),
11907         (rb_library_source_process_library_location_change),
11908         (rb_library_source_prefs_update),
11909         (rb_library_source_process_library_handle_selection),
11910         (rb_library_source_library_location_cb): set up and control the
11911         "library location" preference.
11913         * sources/rb-audiocd-source.c:(rb_source_class_init):
11914         * sources/rb-source.c: (rb_source_class_init): remove some pointless
11915         code.
11917 2005-12-01  William Jon McCann  <mccann@jhu.edu>
11919         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
11920         (rb_feed_podcast_properties_dialog_update_title): 
11921         * data/glade/podcast-feed-properties.glade:
11922         Make the feed properties dialog consistent with the podcast
11923         properties dialog.
11925 2005-12-01  William Jon McCann  <mccann@jhu.edu>
11927         * metadata/.cvsignore: 
11928         * po/.cvsignore: 
11929         * podcast/.cvsignore: Updated.
11931         * shell/main.c (main): Support DBus 0.6 flags.
11933 2005-11-30  Bastien Nocera  <hadess@hadess.net>
11935         * data/ui/rhythmbox-ui.xml:
11936         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
11937         (rhythmbd_entry_move_to_trash_set_error),
11938         (rhythmdb_entry_move_to_trash):
11939         * rhythmdb/rhythmdb.h:
11940         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
11941         (rb_shell_clipboard_cmd_delete),
11942         (rb_shell_clipboard_cmd_move_to_trash):
11943         * sources/rb-library-source.c: (rb_library_source_class_init),
11944         (impl_delete), (impl_move_to_trash):
11945         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
11946         (impl_delete), (impl_move_to_trash):
11947         * sources/rb-removable-media-source.c:
11948         (rb_removable_media_source_class_init):
11949         * sources/rb-source.c: (rb_source_class_init),
11950         (rb_source_can_move_to_trash), (rb_source_delete),
11951         (rb_source_move_to_trash):
11952         * sources/rb-source.h:
11953         Add move_to_trash member for the sources, implement move to trash for
11954         the library and playlists
11955         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
11956         local files to the trash, and deleting them from the database
11957         (Closes: #315389)
11959 2005-11-30  William Jon McCann  <mccann@jhu.edu>
11961         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
11962         (rb_tray_icon_init, rb_tray_icon_finalize): 
11963         * shell/rb-statusbar.c (rb_statusbar_class_init) 
11964         (rb_statusbar_init, rb_statusbar_finalize): 
11965         * shell/rb-source-header.c (rb_source_header_class_init) 
11966         (rb_source_header_init, rb_source_header_finalize): 
11967         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
11968         (rb_shell_finalize): 
11969         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
11970         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
11971         * shell/rb-shell-player.c (rb_shell_player_class_init) 
11972         (rb_shell_player_init, rb_shell_player_finalize): 
11973         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
11974         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
11975         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
11976         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
11977         * shell/rb-play-order.c (rb_play_order_class_init) 
11978         (rb_play_order_init, rb_play_order_finalize): 
11979         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
11980         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
11981         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
11982         (rb_random_play_order_init, rb_random_play_order_finalize): 
11983         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
11984         (rb_history_finalize): 
11985         * shell/rb-commander.c (rb_commander_class_init) 
11986         (rb_commander_init, rb_commander_finalize): 
11987         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
11988         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
11989         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
11990         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
11991         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
11992         (rb_podcast_properties_dialog_init) 
11993         (rb_podcast_properties_dialog_finalize): 
11994         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
11995         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
11996         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
11997         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
11998         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
11999         (rb_feed_podcast_properties_dialog_init) 
12000         (rb_feed_podcast_properties_dialog_finalize): 
12001         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
12002         (rb_metadata_init, rb_metadata_finalize): 
12003         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
12004         (rb_station_properties_dialog_init) 
12005         (rb_station_properties_dialog_finalize): 
12006         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
12007         (rb_daap_share_init, rb_daap_share_dispose): 
12009         Use g_type_class_add_private in all classes. Closes bug 313688.
12010         
12011 2005-11-30  James Livingston  <jrl@ids.org.au>
12013         patch by: William Jon McCann <mccann@jhu.edu> to use
12014         g_type_class_add_private in all classes. Closes bug 313688.
12016         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
12017         (rb_thread_finalize):
12018         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
12019         (rb_player_finalize):
12020         * rhythmdb/rhythmdb-property-model.c:
12021         (rhythmdb_property_model_class_init),
12022         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
12023         * rhythmdb/rhythmdb-query-model.c:
12024         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
12025         (rhythmdb_query_model_finalize):
12026         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
12027         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
12028         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
12029         (rhythmdb_finalize):
12030         * sources/rb-daap-source.c: (rb_daap_source_class_init),
12031         (rb_daap_source_init), (rb_daap_source_dispose):
12032         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12033         (rb_iradio_source_init), (rb_iradio_source_finalize):
12034         * sources/rb-library-source.c: (rb_library_source_class_init),
12035         (rb_library_source_init), (rb_library_source_finalize):
12036         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12037         (rb_playlist_source_init), (rb_playlist_source_dispose):
12038         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
12039         (rb_podcast_source_init), (rb_podcast_source_finalize):
12040         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12041         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
12042         * sources/rb-sourcelist-model.h:
12043         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12044         (rb_sourcelist_init), (rb_sourcelist_finalize):
12045         * sources/rb-sourcelist.h:
12046         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
12047         * widgets/rb-cell-renderer-rating.c:
12048         (rb_cell_renderer_rating_init),
12049         (rb_cell_renderer_rating_class_init),
12050         (rb_cell_renderer_rating_finalize):
12051         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
12052         (rb_druid_finalize):
12053         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12054         (rb_entry_view_init), (rb_entry_view_finalize):
12055         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
12056         (rb_header_finalize):
12057         * widgets/rb-load-failure-dialog.c:
12058         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
12059         (rb_load_failure_dialog_finalize):
12060         * widgets/rb-property-view.c: (rb_property_view_class_init),
12061         (rb_property_view_init), (rb_property_view_finalize):
12062         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
12063         (rb_rating_finalize):
12064         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
12065         (rb_search_entry_init), (rb_search_entry_finalize):
12066         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12067         (rb_simple_view_init), (rb_simple_view_finalize):
12068         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
12069         (rb_song_display_box_init), (rb_song_display_box_finalize):
12070         * widgets/rb-song-info.c: (rb_song_info_class_init),
12071         (rb_song_info_init), (rb_song_info_finalize):
12072         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
12073         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
12075 2005-11-30  James Livingston  <jrl@ids.org.au>
12077         * iradio/rb-station-properties-dialog.c:
12078         (rb_station_properties_dialog_init),
12079         (rb_station_properties_dialog_new):
12080         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
12081         * lib/rb-glade-helpers.h:
12082         * podcast/rb-feed-podcast-properties-dialog.c:
12083         (rb_feed_podcast_properties_dialog_init),
12084         (rb_feed_podcast_properties_dialog_new):
12085         * podcast/rb-podcast-properties-dialog.c:
12086         (rb_podcast_properties_dialog_init),
12087         (rb_podcast_properties_dialog_new):
12088         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
12089         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
12090         * sources/rb-library-source.c: (impl_get_config_widget):
12091         * sources/rb-playlist-source-recorder.c:
12092         (rb_playlist_source_recorder_init):
12093         * widgets/rb-song-info.c: (rb_song_info_construct_single),
12094         (rb_song_info_constructor): create a single rb_glade_boldify_label()
12095         in rb-glade-helpers, rather than having eight implementation
12096         throughout the code.
12098 2005-11-30  James Livingston  <jrl@ids.org.au>
12100         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
12101         * lib/rb-util.h:
12102         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
12103         move the duration->string function into rb-utils, as it gets used in a
12104         few places.
12106         patch by: William Jon McCann <mccann@jhu.edu>
12108         * data/glade/podcast-properties.glade:
12109         * podcast/rb-podcast-properties-dialog.c:
12110         (rb_podcast_properties_dialog_init),
12111         (rb_podcast_properties_dialog_update),
12112         (rb_podcast_properties_dialog_update_title),
12113         (rb_podcast_properties_dialog_update_feed),
12114         (rb_podcast_properties_dialog_update_duration),
12115         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
12116         info dialog look more like the song info dialog. Use the same "Feed"
12117         value that is displayed in the treeview (ie. the album field), displays
12118         the duration, uses units in the bitrate field, and sort the fields in
12119         the same order.
12121 2005-11-29  James Livingston  <jrl@ids.org.au>
12123         * rhythmdb/rhythmdb-marshal.list:
12124         * rhythmdb/rhythmdb.h:
12125         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
12126         (emit_load_error_idle), (rhythmdb_process_metadata_load),
12127         (entry_to_rb_metadata), (emit_save_error_idle),
12128         (action_thread_main): emit error signal when metadata write fails.
12130         * shell/rb-shell.c: (rb_shell_constructor),
12131         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
12132         "metadata save" error and display it to the user.
12134 2005-11-29  James Livingston  <jrl@ids.org.au>
12136         * data/ui/rhythmbox-ui.xml:
12137         * sources/rb-podcast-source.c:
12138         (rb_podcast_source_songs_show_popup_cb),
12139         (rb_podcast_source_cmd_download_post),
12140         (rb_podcast_source_cmd_cancel_download): split download and cancel
12141         download commands. Replace usage of "Post" with "Esisode". Fixes bug
12142         321653.
12144 2005-11-18  William Jon McCann  <mccann@jhu.edu>
12146         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
12147         title on alert dialogs per the HIG.
12149         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
12150         the term Burn.
12151         (free_song_list): Routine to free song list.
12152         (rb_playlist_source_recorder_finalize): Use free_song_list.
12153         (rb_playlist_source_recorder_add_from_model): Return FALSE
12154         if unable to add all songs.  Check that duration of all
12155         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
12156         Fixes #321753.
12158         * sources/rb-playlist-source-recorder.c (check_media_length)
12159         (rb_playlist_source_recorder_start): Only check the duration
12160         and current media if the playlist length is longer than a
12161         standard CD (74 min).  Otherwise, just let the Recorder do the
12162         check.
12163         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
12164         drive at init.
12165         (rb_recorder_set_device): Don't leak drives.
12166         (rb_recorder_get_media_length): Use drive that was already set.
12167         (rb_recorder_burn): Let the recorder handle checking media type/size.
12168         Fixes bug 321754.
12170 2005-11-29  James Livingston  <jrl@ids.org.au>
12172         * rhythmdb/rhythmdb-query-model.c:
12173         (rhythmdb_query_model_set_sort_order):
12174         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
12175         emitting the tree-model "resorted" signal.
12177         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12178         (rb_entry_view_finalize), (rb_entry_view_set_property),
12179         (rb_entry_view_constructor), (rb_entry_view_resort_model):
12180         * widgets/rb-entry-view.h: add a function to resort the entry view,
12181         using the above function.
12183         * sources/rb-iradio-source.c:
12184         (rb_iradio_source_songs_view_sort_order_changed_cb):
12185         * sources/rb-library-source.c: (rb_library_source_finalize),
12186         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
12187         * sources/rb-playlist-source.c:
12188         (rb_playlist_source_songs_sort_order_changed_cb):
12189         * sources/rb-podcast-source.c:
12190         (rb_podcast_source_posts_view_sort_order_changed_cb),
12191         (rb_podcast_source_do_query): use the above function instead of
12192         re-creating the query model. This makes changing the sorting an order
12193         of magnitude faster, as it uses a single resorted signal rather than
12194         deleting and re-adding everything (which emits 2N signals). Closes bug
12195         315389.
12197 2005-11-29  James Livingston  <jrl@ids.org.au>
12199         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
12200         autosizing, which results in large speedups. Closes bug 312122.
12202         * po/ja.po: change the date format, so that it is a constant width
12204         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
12205         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
12206         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
12207         (rb_entry_view_constructor): make columns use fixed widths,
12208         disable column autosizing, and enable fixed-height mode.
12210         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
12211         (rb_entry_view_get_time_date_column_sample):
12212         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
12213         and get the canonical date format for the locale.
12215 ============ Version 0.9.2
12217 2005-11-28  James Livingston  <jrl@ids.org.au>
12219         * configure.ac: bump version to 0.9.2
12220         * NEWS: update with changes for 0.9.2
12222 2005-11-28  James Livingston  <jrl@ids.org.au>
12224         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12226         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
12227         Disable saving, renaming and delting for DAAP playlists.
12228         Fixes bug 322627.
12230 2005-11-28  James Livingston  <jrl@ids.org.au>
12232         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
12233         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
12234         prevent bug 322619.
12236         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12237         * sources/rb-removable-media-source.c:
12238         (rb_removable_media_source_class_init): fix ipod browser visibility
12239         problem.
12241 2005-11-28  James Livingston  <jrl@ids.org.au>
12243         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
12244         Avahi 0.6 support actually work. Fixes bug 322519.
12246 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
12248         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
12249         avahi is specified in --with-mdns
12251 2005-11-27  James Livingston  <jrl@ids.org.au>
12253         patch by: Bastien Nocera <hadess@hadess.net>
12255         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
12256         not the private one. Fixes bug 322485.
12258 2005-11-26  James Livingston  <jrl@ids.org.au>
12260         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
12261         Avahi 0.6, as well as 0.5.
12263         * configure.ac:
12264         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
12265         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
12266         (add_service):
12268 2005-11-25  James Livingston  <jrl@ids.org.au>
12270         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
12271         321926.
12273 2005-11-25  James Livingston  <jrl@ids.org.au>
12275         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
12276         correct type for checking the date against 0. Stops a warning when
12277         saving metadata.
12279 2005-11-25  James Livingston  <jrl@ids.org.au>
12281         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
12282         adjustment to be inside the element's limits. Without this songs that
12283         have large ReplayGain values will recieve no increase because they are
12284         outside the acceptable range, causing them to remain quiet.
12286 2005-11-25  James Livingston  <jrl@ids.org.au>
12288         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12289         * sources/rb-daap-source.c: (rb_daap_source_class_init):
12290         * sources/rb-ipod-source.c:
12291         * sources/rb-source.h:
12292         * sources/rb-library-source.h:
12293         * sources/rb-library-source.c: (rb_library_source_class_init),
12294         (rb_library_source_constructor),
12295         (rb_library_source_has_first_added_column),
12296         (rb_library_source_has_drop_support):
12297         * sources/rb-removable-media-source.c:
12298         (rb_removable_media_source_class_init): Make library-derived sources
12299         not show the Date Added column, as it doesn't make sense. Fixes bug
12300         322269.
12301         Move some of the feature funcs from the ipod and audio cd sources up to
12302         the removable media source.
12304 2005-11-24  James Livingston  <jrl@ids.org.au>
12306         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
12307         errors. oops.
12309 2005-11-24  James Livingston  <jrl@ids.org.au>
12311         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12312         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
12313         (rb_iradio_source_constructor): Chain up dispose method and use
12314         G_DEFINE_TYPE
12316 2005-11-24  James Livingston  <jrl@ids.org.au>
12318         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
12319         mistake in the last commit that can cause crashes.
12321 2005-11-24  James Livingston  <jrl@ids.org.au>
12323         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
12324         instead of g_printerr.
12326         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
12327         rb_debug instead of g_warning. The message happens every time for
12328         removable media/daap shares, so it's not unusual.
12330 2005-11-24  James Livingston  <jrl@ids.org.au>
12332         patch by: Tom Parker <palfrey@tevp.net>
12334         * configure.ac: fix libsoup test for enabling daap
12336 2005-11-23  James Livingston  <jrl@ids.org.au>
12338         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
12339         (rb_query_creator_init), (rb_query_creator_constructor),
12340         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
12341         empty row to queries with no criteria. Fixes bug 322078. use
12342         G_DEFINE_TYPE.
12344 2005-11-23  James Livingston  <jrl@ids.org.au>
12346         patch by:  <baptiste.millemathias@gmail.com>
12348         * help/C/quick-reference.xml: update the quick reference to have the
12349         correct key bindings.
12351 2005-11-22  James Livingston  <jrl@ids.org.au>
12353         * sources/rb-library-source.c: (genres_selection_reset_cb),
12354         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
12355         reset the query when all browser selections are removed.
12357 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
12359         * podcast/rb-podcast-manager.c:
12360         (rb_podcast_manager_db_entry_deleted_cb):
12361         Use a custom loop to remove podcast posts, rather than
12362         gtk_tree_model_foreach(), as deleting the entries within
12363         that loop causes the iterator to return the first entry
12364         twice.  Instead, we need to find the next entry before
12365         removing the current one. Fixes bug 321956.
12366         (rb_podcast_manager_entry_remove_cb): No longer needed.
12368 2005-11-22  James Livingston  <jrl@ids.org.au>
12370         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12371         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
12372         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
12374 2005-11-22  James Livingston  <jrl@ids.org.au>
12376         * sources/rb-podcast-source.c:
12377         (rb_podcast_source_post_date_cell_sort_func),
12378         (rb_podcast_source_post_status_cell_sort_func),
12379         (rb_podcast_source_post_feed_cell_sort_func):
12380         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
12381         (rb_entry_view_album_sort_func),
12382         (rb_entry_view_double_ceiling_sort_func),
12383         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
12384         the entry's location as a last resort when sorting, so the sort order
12385         is stable. This will stop entries moving around when two entries have
12386         the same sorting, and one of them gets played.
12388 2005-11-22  James Livingston  <jrl@ids.org.au>
12390         * daapsharing/rb-daap-connection.c:
12391         (rb_daap_connection_class_init), (rb_daap_connection_init),
12392         (connection_get_password), (build_message),
12393         (http_response_handler), (http_get), (handle_server_info),
12394         (handle_login), (handle_update), (handle_database_info),
12395         (handle_song_listing), (handle_playlists),
12396         (handle_playlist_entries), (rb_daap_connection_new),
12397         (rb_daap_connection_constructor), (rb_daap_connection_logout),
12398         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
12399         (rb_daap_connection_get_headers),
12400         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
12401         (rb_daap_connection_set_property),
12402         (rb_daap_connection_get_property):
12403         * daapsharing/rb-daap-connection.h:
12404         * sources/rb-daap-source.c: (rb_daap_source_dispose),
12405         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
12406         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
12407         of destroying the object when it is going to be used by a callback and
12408         fixes a double-free. Fixes bugs 321930 and 322007.
12410 2005-11-22  James Livingston  <jrl@ids.org.au>
12412         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
12413         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
12414         notification if there aren't any. Fixes bug 321968.
12416 2005-11-22  James Livingston  <jrl@ids.org.au>
12418         * rhythmdb/rhythmdb-property-model.c:
12419         (rhythmdb_property_model_set_property),
12420         (rhythmdb_property_model_finalize),
12421         (rhythmdb_property_model_compare),
12422         (rhythmdb_property_model_insert),
12423         (rhythmdb_property_model_delete_prop): Fix property model sorting
12424         where the display and sort keys are different. Fixes bug 321980.
12426 2005-11-22  James Livingston  <jrl@ids.org.au>
12428         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
12429         when import as a file or passed on the command line, and load them as
12430         playlists.
12432 2005-11-22  James Livingston  <jrl@ids.org.au>
12434         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
12436         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
12437         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
12438         a broken daap server. Fixes bug 321919.
12440 2005-11-22  James Livingston  <jrl@ids.org.au>
12442         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
12443         drag-and-drop for both the episodes and feeds list.
12444         
12445         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
12446         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
12447         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
12449         * widgets/rb-property-view.c: (rb_property_view_class_init),
12450         (rb_property_view_set_property), (rb_property_view_get_property),
12451         (rb_property_view_new), (rb_property_view_constructor):
12452         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12453         (rb_simple_view_new), (rb_simple_view_constructor):
12454         * widgets/rb-simple-view.h: add a "draggable" property to property
12455         views and set it to false for the feed list. Fixes bug 321284.
12457 2005-11-22  James Livingston  <jrl@ids.org.au>
12459         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
12461         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
12462         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12463         * sources/rb-ipod-source.c: (add_rb_playlist):
12464         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12465         (rb_playlist_source_set_property),
12466         (rb_playlist_source_get_property), (rb_playlist_source_new),
12467         (impl_receive_drag), (rb_playlist_source_add_location),
12468         (rb_playlist_source_new_from_xml):
12469         * sources/rb-playlist-source.h: give playlists and (optional)
12470         entry-type, and reject entries that don't match. Fixes bug 322006.
12472 2005-11-21  James Livingston  <jrl@ids.org.au>
12474         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
12475         (rb_source_header_finalize): remove the weak references when the
12476         source header is finalised. Stops the callbacks being called after the
12477         object is destroyed.
12479 2005-11-21  James Livingston  <jrl@ids.org.au>
12481         * shell/main.c: (main): don't try to acquite bonobo/dbus when
12482         --no-registration was passed. It causes warnings that make it
12483         impossible to run with --no-registration --g-fatal-warnings
12485 2005-11-21  James Livingston  <jrl@ids.org.au>
12487         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
12488         of strings when they are still in use. Fixes bug 321547.
12490         (rb_daap_connection_destroy): fix memory leak
12492 2005-11-21  James Livingston  <jrl@ids.org.au>
12494         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12495         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
12496         (rb_daap_mdns_resolve_cancel), (publish_cb),
12497         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
12498         support.
12500 2005-11-21  James Livingston  <jrl@ids.org.au>
12502         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
12503         sorting by genre
12505 2005-11-20  James Livingston  <jrl@ids.org.au>
12507         * podcast/rb-podcast-manager.c:
12508         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
12509         that we don't leak thread structures. Fixes bug 321636, and probably
12510         321775.
12512 2005-11-20  James Livingston  <jrl@ids.org.au>
12514         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
12515         (lookup_cd):
12516         * podcast/rb-podcast-manager.c: (start_job),
12517         (rb_podcast_manager_db_entry_deleted_cb),
12518         (rb_podcast_manager_entry_remove_cb):
12519         * podcast/rb-podcast-parse.c: (rb_insert_item),
12520         (rb_podcast_parse_load_feed):
12521         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
12522         * shell/rb-removable-media-manager.c:
12523         (rb_removable_media_manager_append_media_source):
12524         * shell/rb-shell.c: (add_to_library_response_cb):
12525         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
12526         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
12527         * sources/rb-iradio-source.c:
12528         (stations_view_drag_data_received_cb):
12529         * sources/rb-library-source.c: (string_list_equal),
12530         (impl_get_extra_views), (impl_receive_drag):
12531         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
12532         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
12533         (impl_receive_drag):
12534         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
12535         (rb_entry_view_append_column_custom), (harvest_entries):
12536         * widgets/rb-property-view.c:
12537         (rb_property_view_selection_changed_cb):
12538         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
12539         switch from using g_list_append to g_list_prepend. This changes
12540         operations from O(n^2) to O(n), which in cases like deleting a lot of
12541         tracks can give huge improvements in speed. Closes bug 321696.
12543 2005-11-20  James Livingston  <jrl@ids.org.au>
12545         * sources/rb-sourcelist.c: (rb_sourcelist_init),
12546         (rb_sourcelist_update_expander_visibility): fix indenting of child
12547         sources.
12549 2005-11-20  James Livingston  <jrl@ids.org.au>
12551         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12552         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
12553         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
12554         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
12555         (add_service), (entry_group_cb): dynamically allocate memory, rather
12556         than using static variables.
12558         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
12559         re-enable the daap share if the name hasn't changed.
12560         * shell/rb-shell-preferences.c:
12561         (share_name_entry_focus_out_event_cb): don't ask the daap share to
12562         change it's name when the checkbox is disabled. Fixed bug 321748.
12564 2005-11-18  James Livingston  <jrl@ids.org.au>
12566         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
12567         as hidden if it is on the current workspace.
12569 2005-11-17  William Jon McCann  <mccann@jhu.edu>
12571         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
12572         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
12573         (rb_podcast_properties_dialog_parse_time): 
12574         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
12575         (rb_feed_podcast_properties_dialog_parse_time):
12576         Rework the way the last mod time strings are created.  It was using
12577         thread unsafe functions, not creating value UTF, and not not checking
12578         the value of the result before modifying it.  This new method fixes
12579         these problems.
12581 2005-11-18  James Livingston  <jrl@ids.org.au>
12583         Don't reset the search box when viewing a different source, because it
12584         will change what is being played. Closes 321593.
12586         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
12587         the search box
12589         * shell/rb-source-header.c: (rb_source_header_class_init),
12590         (rb_source_header_init), (rb_source_header_finalize): use
12591         G_DEFINE_TYPE.
12593         (rb_source_header_set_property),
12594         (rb_source_header_source_weak_destroy_cb),
12595         (rb_source_header_search_cb): store the search text when leaving a
12596         source and put it in the search box when viewing it again.
12598 2005-11-18  James Livingston  <jrl@ids.org.au>
12600         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
12601         (save_entry):
12602         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
12603         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
12604         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
12605         time stamp.
12607         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
12608         last-seen as the timestamp of the last update of the feed. Don't
12609         re-add episodes that have been deleted. Closes 319759.
12611 2005-11-18  James Livingston  <jrl@ids.org.au>
12613         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
12614         that don't have the day name at the start. Closes 321645.
12616 2005-11-18  James Livingston  <jrl@ids.org.au>
12618         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
12619         (rb_podcast_manager_copy_post),
12620         (rb_podcast_manager_get_podcast_dir):
12621         * podcast/rb-podcast-manager.h:
12622         * sources/rb-podcast-source.c: (impl_get_config_widget),
12623         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
12624         download location switching to / if the prefs were opened before
12625         downloading an episode. Closes 321611.
12627 2005-11-18  James Livingston  <jrl@ids.org.au>
12629         * data/glade/podcast-new.glade:
12630         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12631         (rb_new_podcast_dialog_set_property),
12632         (rb_new_podcast_dialog_get_property),
12633         (rb_new_podcast_dialog_response_cb),
12634         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
12635         for entering new podcast urls in. Closes bug 321610.
12637 2005-11-18  James Livingston  <jrl@ids.org.au>
12639         * sources/rb-podcast-source.c: (construct_query_from_selection),
12640         (rb_podcast_source_do_query): allow podcast list to be re-sorted
12641         without restarting RB. Closes bug 321612.
12643 2005-11-18  James Livingston  <jrl@ids.org.au>
12645         * widgets/rb-entry-view.c: (set_column_visibility),
12646         (rb_entry_view_sync_columns_visible): when changing visibility of one
12647         column, don't hide and re-show all the others. Makes a show/hide
12648         column operation a lot faster.
12650 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
12652         Closes bug 321702.
12654         * iradio/rb-station-properties-dialog.c
12655          (rb_station_properties_dialog_update_bitrate):
12656         Mark the bitrate value as being kbps, using the same
12657         translatable format string as rb-song-info.c
12659         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
12660          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
12662         * shell/rb-shell-player.c (info_available_cb):
12663          Use RB_METADATA_FIELD_BITRATE to update the iradio
12664          station's bitrate value.
12666 2005-11-17  James Livingston  <jrl@ids.org.au>
12668         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
12670         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
12671         free a NULL date.
12673 2005-11-17  James Livingston  <jrl@ids.org.au>
12675         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
12677         * lib/rb-stock-icons.c: emit a single warning rather than multiple
12678         assertions. Lookup the icon size correctly.
12680 2005-11-16  William Jon McCann  <mccann@jhu.edu>
12682         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
12683         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
12684         Fix build errors.
12686 2005-11-16  James Livingston  <jrl@ids.org.au>
12688         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
12689         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
12690         (rb_shell_preferences_sync_column_button): block the toggle signal of
12691         the column checkboxes while setting their initial state. This stops
12692         the visibility being re-set, which causes a lot of time being spent
12693         measuring the columns aagin when opening the prefs window.
12695         Use G_DEFINE_TYPE.
12697 2005-11-16  James Livingston  <jrl@ids.org.au>
12699         * sources/rb-sourcelist.c: (rb_sourcelist_init),
12700         (rb_sourcelist_edit_source_name): don't assume that the editable
12701         source name is in the first column, because it isn't. Fixes bug
12702         320137.
12704 2005-11-16  James Livingston  <jrl@ids.org.au>
12706         * daapsharing/rb-daap-mdns.h:
12707         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
12708         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
12709         parts can know why operations failed. Avahi can report that the daemon
12710         was not running. Howl doesn't do this (yet).
12711         
12712         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
12713         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
12714         (browse_cb): don't display mdns errors to the user, if it wa because
12715         the daemon was not running.
12717 2005-11-16  James Livingston  <jrl@ids.org.au>
12719         * rhythmdb/rhythmdb-property-model.c:
12720         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
12721         (rhythmdb_property_model_compare),
12722         (rhythmdb_property_model_insert),
12723         (rhythmdb_property_model_insert_prop),
12724         (rhythmdb_property_model_delete),
12725         (rhythmdb_property_model_delete_prop),
12726         (rhythmdb_property_model_get_value): use RBRefStrings rather than
12727         copying the string and re-creating the sort key. Saves a little bit of
12728         memory and time.
12730         (rhythmdb_property_model_perform_sync),
12731         (rhythmdb_property_model_sync): perform the count sync in an idle
12732         callback, so that it doesn't have to be re-run once per value when
12733         loading.
12735 2005-11-16  James Livingston  <jrl@ids.org.au>
12737         * rhythmdb/rhythmdb-query-model.c:
12738         (rhythmdb_query_model_entry_deleted_cb),
12739         (rhythmdb_query_model_remove_entry): remove deleted entries from the
12740         limited list. Stops problems if they are deleted, and then things on
12741         the main list are
12743 2005-11-16  James Livingston  <jrl@ids.org.au>
12745         * NEWS: update NEWS
12747         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
12748         button's minimise-to-tray action
12750 2005-11-16  James Livingston  <jrl@ids.org.au>
12752         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
12753         leak. Disable adding newly created files for now, because it doesn't
12754         work properly.
12756         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12757         (rb_sourcelist_model_finalize):
12758         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12759         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
12761 2005-11-16  James Livingston  <jrl@ids.org.au>
12763         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
12764         problem where a GError* wasn't being set to NULL. Actually check the
12765         result.
12767 2005-11-16  James Livingston  <jrl@ids.org.au>
12769         * doc/reference/tmpl/rb-entry-view.sgml:
12770         * doc/reference/tmpl/rhythmbox-unused.sgml:
12771         * doc/reference/tmpl/rhythmdb-query-model.sgml:
12772         * doc/reference/tmpl/rhythmdb.sgml:
12773         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
12774         docs, including the patch that was on bug 
12776         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
12777         API, because it should only be used by RhythmDB itself.
12779 2005-11-16  James Livingston  <jrl@ids.org.au>
12781         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
12782         pausing by middle clicking on the tray icon.
12784 2005-11-15  James Livingston  <jrl@ids.org.au>
12786         * configure.ac: enable audioscrobbler support by default, if libsoup
12787         is present.
12789 2005-11-15  James Livingston  <jrl@ids.org.au>
12791         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12792         Closes bug 321157.
12794         * configure.ac:
12795         * daapsharing/rb-daap-connection.c: (build_message),
12796         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
12797         support gzip encoded daap connections.
12799         (handle_song_listing): fix leak
12801 2005-11-15  James Livingston  <jrl@ids.org.au>
12803         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
12804         * sources/rb-podcast-source.c:
12805         (rb_podcast_source_post_date_cell_data_func): make the date format
12806         translatable again, so that translators can choose the best format for
12807         their locale (%x is huge in some locales)
12809 2005-11-15  James Livingston  <jrl@ids.org.au>
12811         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
12812         (end_job): mark podcast episodes as failed, if the metadata load
12813         fails. This will prevent people playing non-audio enclosures, helping
12814         stop bug 320366.
12816 2005-11-14  James Livingston  <jrl@ids.org.au>
12818         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
12819         video sink to fakesink. This will stop problems (potentially crashers)
12820         that will occur if the file contains a video stream.
12822         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
12823         rather than using magic numbers everywhere.
12825         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
12826         * sources/rb-podcast-source.c:
12827         (rb_podcast_source_songs_show_popup_cb),
12828         (rb_podcast_source_cmd_download_post),
12829         (rb_podcast_source_post_status_cell_data_func),
12830         (rb_podcast_source_entry_activated_cb): use the above constants.
12832         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
12833         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
12834         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
12835         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
12836         (cancel_job), (download_progress_cb),
12837         (rb_podcast_manager_cancel_download),
12838         (rb_podcast_manager_insert_feed): use the constants, and fix a
12839         trhead-safety issue.
12841 2005-11-14  Bastien Nocera  <hadess@hadess.net>
12843         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
12844         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
12845         entry-changed events after stats on startup, fixes entry deleted from
12846         filtered views not disappearing
12848 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
12850         Fix rhythmdb query model refcount and polling problems. Closes bug
12851         321410.
12853         * rhythmdb/rhythmdb-property-model.c:
12854         (rhythmdb_property_model_finalize):
12855          Unref the query model if we have one.
12857         * rhythmdb/rhythmdb-query-model.h:
12858          Remove poll and cancel methods.  Query cancellation
12859          never did anything anyway.
12861         * rhythmdb/rhythmdb-query-model.c:
12862         (rhythmdb_query_model_init): Remove GAsyncQueues.
12863          Replace the GAsyncQueue-based update processing
12864          with a simpler g_idle_add approach; still has the
12865          same queueing properties, but now we don't poll the
12866          model forever and updates are processed immediately.
12868         (_unref_entry), (rhythmdb_query_model_finalize):
12869          Unref DB entries when finalized
12871         (rhythmdb_query_model_has_pending_changes):
12872          Use our own counter to decide if there are updates pending
12874         (rhythmdb_query_model_process_update), (idle_process_update):
12875          Process updates using g_idle_add, or directly if possible
12877         (rhythmdb_query_model_signal_complete),
12878         (rhythmdb_query_model_add_entries):
12879          Change to new update processing method
12881         (idle_poll_model), (rhythmdb_query_model_poll):
12882          Remove GAsyncQueue-based update processing.
12884         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
12885          No need to poll the model any more - updates are processed
12886          directly for synchronous queries.
12888         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
12889          Property model needs to be unref'd here
12891         * sources/rb-library-source.c: (rb_library_source_do_query):
12892          Don't try to cancel the active query (it never worked anyway),
12893          remove obsolete poll call, unref property models as required,
12894          and don't unref the cached 'all' query, since hold on to it.
12895          We unref it when the sort order changes, which forces the query
12896          to be rerun.
12898         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
12899          Unref the property model as required
12901         (rb_podcast_source_do_query):
12902          Treat any query with no selected feeds and no search text as
12903          an 'all' query.  Unref query models except for the cached
12904          'all' query, since we hold on to that.
12906         (rb_podcast_source_cmd_update_all):
12907          Unref the property model as required.
12909         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
12910          Don't try to cancel the query (it never worked anyway)
12912         (rb_entry_view_poll_model):
12913          No need for this any more.
12915         * widgets/rb-entry-view.h:
12916          Remove obsolete function rb_entry_view_poll_model
12918         * widgets/rb-property-view.c: (rb_property_view_set_property):
12919          Ref and unref the property model as required.
12921 2005-11-14  James Livingston  <jrl@ids.org.au>
12923         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12925         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
12926         for error. Closes bug 321416.
12928 2005-11-14  James Livingston  <jrl@ids.org.au>
12930         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12932         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
12933         a crasher if a feed's last-post value isn't set. Closes bug 321353.
12935 2005-11-14  James Livingston  <jrl@ids.org.au>
12937         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
12938         * shell/rb-removable-media-manager.c:
12939         (rb_removable_media_manager_set_uimanager):
12940         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
12941         translation domain for GTK action groups.
12943 2005-11-12  James Livingston  <jrl@ids.org.au>
12945         * po/POTFILES.in: remove the old station-new files
12947 2005-11-12  James Livingston  <jrl@ids.org.au>
12949         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
12950         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
12951         (save_entry): cause Rhythmbox to re-read the metadata from a file,
12952         when upgrading from a pre-Date-supporting version to a version that
12953         supports Date metadata. Closes bug 320760.
12955 2005-11-12  James Livingston  <jrl@ids.org.au>
12957         Add "update all podcast feeds" command. Closes bug 319954.
12959         * data/ui/rhythmbox-ui.xml: add to source context menu.
12961         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
12962         (register_action_group), (rb_podcast_source_cmd_download_post),
12963         (rb_podcast_source_cmd_delete_feed),
12964         (rb_podcast_source_cmd_properties_feed),
12965         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
12966         rather than the shell.
12968         (rb_podcast_source_update_feed_func),
12969         (rb_podcast_source_cmd_update_all): update every feed.
12971 2005-11-11  James Livingston  <jrl@ids.org.au>
12973         * shell/rb-shell-player.c: (rb_shell_player_class_init),
12974         (rb_shell_player_constructor), (rb_shell_player_finalize):
12975         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
12976         others follow the HIG recommentations.
12978 2005-11-11  James Livingston  <jrl@ids.org.au>
12980         * podcast/rb-podcast-manager.c:
12981         (rb_podcast_manager_subscribe_feed): check that the url is valid,
12982         before trying to use it.
12984 2005-11-11  James Livingston  <jrl@ids.org.au>
12986         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
12987         (rb_entry_view_append_column): When sorting by year, sort by album
12988         within a particular year.
12990 2005-11-11  James Livingston  <jrl@ids.org.au>
12992         * NEWS: updates
12994 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
12995         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
12996         spelling of "Language."
12998 2005-11-11  James Livingston  <jrl@ids.org.au>
13000         * rhythmdb/rhythmdb-property-model.c:
13001         (rhythmdb_property_model_row_inserted_cb),
13002         (rhythmdb_property_model_prop_changed_cb),
13003         (rhythmdb_property_model_entry_removed_cb),
13004         (rhythmdb_property_model_insert_prop),
13005         (rhythmdb_property_model_sync): display the count after the "All"
13006         entry of a property model.
13008         * widgets/rb-property-view.c: (rb_property_view_class_init),
13009         (rb_property_view_finalize), (rb_property_view_constructor): use
13010         G_DEFINE_TYPE
13012 2005-11-10  James Livingston  <jrl@ids.org.au>
13014         * rhythmdb/rhythmdb-query-model.c:
13015         (rhythmdb_query_model_remove_entry):
13016         * rhythmdb/rhythmdb-query-model.h: make
13017         rhythmdb_query_model_remove_entry return whether the entry was in the
13018         model.
13020         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
13021         don't add non-SONG entries, as it doesn't really work and can cause
13022         crashes.
13024         (rb_playlist_source_remove_location): assert if the playlist and model
13025         differ on whether the entry is in the playlist
13027 2005-11-10  James Livingston  <jrl@ids.org.au>
13029         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13030         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
13031         (rb_podcast_manager_thread_parse_feed),
13032         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
13033         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
13034         emulating one with a list and mutex. Fixes a couple of threading
13035         issues.
13036         
13037         (rb_podcast_manager_insert_feed): fix some problems with ignoring
13038         updated feeds.
13039         
13040         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
13041         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
13042         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
13043         * podcast/rb-podcast-parse.c: (rb_insert_item),
13044         (rb_podcast_parse_channel_free):
13045         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
13046         fix some typos, and make a bit of code clearer.
13048 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
13050         Make the "delete podcast" dialog better. Closes bug 320899.
13052         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
13053         Add PROP_WINDOW for rb_shell_get_property so we can access the
13054         GtkWindow widget of the main window. 
13055         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
13056         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
13057         podcast feed delete dialog less confusing as well.
13059 2005-11-09  James Livingston  <jrl@ids.org.au>
13061         * shell/rb-removable-media-manager.c:
13062         (rb_removable_media_manager_mount_volume),
13063         (rb_removable_media_manager_scan): Fix a crasher where we were getting
13064         NULL for a cd volume.
13066 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13068         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
13069         method return a gboolean indicating whether the changes
13070         to the entry have already been applied.
13072         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
13073         only modify the entry if impl_entry_set returns FALSE.
13075         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
13076         When setting the location of an entry, update the
13077         hash table mapping locations to entries.
13079 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13081         * data/glade/Makefile.am:
13082         * iradio/Makefile.am:
13083           Remove 'new station' dialog.
13085         * iradio/rb-station-properties-dialog.h:
13086         * sources/rb-iradio-source.c: (impl_song_properties):
13087         * shell/rb-shell.c: (rb_shell_cmd_new_station):
13088          Add 'new station' mode parameter to
13089          rb_station_properties_dialog_new.
13091         * (rb_station_properties_dialog_response_cb),
13092         (rb_station_properties_dialog_create_station):
13093          When in 'new station' mode, create the station
13094          when OK button is pressed.
13096         * iradio/rb-station-properties-dialog.c:
13097         (rb_station_properties_dialog_location_changed_cb):
13098          Only enable OK button if a location is specified
13099         (rb_station_properties_dialog_init),
13100         (rb_station_properties_dialog_new),
13101         (rb_station_properties_dialog_update),
13102         (rb_station_properties_dialog_update_title),
13103         (rb_station_properties_dialog_rated_cb),
13104         (rb_station_properties_dialog_update_play_count),
13105         (rb_station_properties_dialog_update_bitrate),
13106         (rb_station_properties_dialog_update_last_played),
13107         (rb_station_properties_dialog_update_rating),
13108         (rb_station_properties_dialog_update_playback_error),
13109         (rb_station_properties_dialog_show):
13110          Handle 'new station' mode, where there's no current
13111          station to edit.
13113 2005-11-08  James Livingston  <jrl@ids.org.au>
13115         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
13116         keybinding for track columns consistent between library and playlist
13117         sources.
13119 2005-11-07  James Livingston  <jrl@ids.org.au>
13121         * data/ui/rhythmbox-ui.xml:
13122         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
13123         "Edit" item to playlist menu. Closes bug 311470.
13125 2005-11-07  James Livingston  <jrl@ids.org.au>
13127         patch by: Jaap A. Haitsma <jaap@haitsma.org>
13129         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
13130         confirmation to save dialogs, with gtk 2.8 or higher.
13132 2005-11-07 James Livingston  <jrl@ids.org.au>
13133         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
13134         requirement to a general on, because people are going to have it for
13135         the other dependencies.
13137 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
13139         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
13140         delete dialog less confusing.  Use HIG recommended button order.
13141         Closes bug 320840.
13143 2005-11-06  James Livingston  <jrl@ids.org.au>
13145         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
13146         drag-and-drop error.
13147         
13148         * sources/rb-library-source.c: (rb_library_source_constructor): only
13149         add drag-and-drop for the Library itself, subclasses can add support
13150         themselves if they want it.
13152         * sources/rb-removable-media-source.c:
13153         (rb_removable_media_source_class_init): by default removable media
13154         sources do not support dnd
13156 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
13158         * data/glade/station-properties.glade:
13159          Add box containing error icon and error message label
13160         * iradio/rb-station-properties-dialog.c:
13161         (rb_station_properties_dialog_class_init),
13162         (rb_station_properties_dialog_finalize):
13163          Change this class to use G_DEFINE_TYPE
13164         (rb_station_properties_dialog_init),
13165         (rb_station_properties_dialog_update),
13166         (rb_station_properties_dialog_update_playback_error):
13167          Display error icon and message when there is one, and hide the error
13168          box otherwise.
13169         (rb_station_properties_dialog_show): Hack widget show
13170          method to update the visibility of the error info box when showing
13171          the widget.  Otherwise the icon is displayed all the time (same thing
13172          is done in rb-song-info). Closes bug 320749.
13174 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
13176         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
13177         parsing of the duration of podcast episodes from the feed. Closes bug
13178         320748.
13180 2005-11-05  James Livingston  <jrl@ids.org.au>
13182         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
13183         release date metadata ("Year"). Closes bug 166093.
13185         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
13186         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
13187         (rb_metadata_gst_add_tag_data):
13188         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13189         (save_entry):
13190         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
13191         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
13192         (set_props_from_metadata), (rhythmdb_entry_set_internal),
13193         (rhythmdb_prop_get_type):
13194         * rhythmdb/rhythmdb.h: add support for "date" property
13195         
13196         * data/glade/general-prefs.glade:
13197         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
13198         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
13199         (rb_entry_view_append_column):
13200         * widgets/rb-entry-view.h:
13201         * sources/rb-library-source.c: (rb_library_source_constructor):
13202         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
13203         "Year" colums
13205         * data/glade/song-info.glade:
13206         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
13207         (rb_song_info_construct_single), (rb_song_info_constructor),
13208         (rb_song_info_populate_dialog), (rb_song_info_update_year),
13209         (rb_song_info_sync_entry_single): Add "Year" to song info window
13211         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
13212         sorted by year.
13214 2005-11-05  James Livingston  <jrl@ids.org.au>
13216         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
13217         description if it's very long.
13219 2005-11-05  James Livingston  <jrl@ids.org.au>
13221         pathc by: Artem Baguinski <femistofel@gmail.com>
13223         * help/C/Makefile.am:
13224         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
13225         Closes bug 320613.
13227 2005-11-05  James Livingston  <jrl@ids.org.au>
13229         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13231         * daapsharing/rb-daap-share.c: (write_next_chunk),
13232         (message_finished), (databases_cb): Use chunked file loading and
13233         sending in the DAAP server. This should reduce the amount of memory
13234         required to send files to the client.
13236 2005-11-05  James Livingston  <jrl@ids.org.au>
13238         * configure.ac: make the nautilus_burn_drive_door_is_open detection
13239         work better on some systems. Closes 320622.
13241 2005-11-05  James Livingston  <jrl@ids.org.au>
13243         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
13244         homepage, so that users can find out what AudioScrobbler is. Add
13245         access keys.
13247         * data/glade/daap-prefs.glade:
13248         * data/glade/general-prefs.glade:
13249         * data/glade/library-prefs.glade: make the indent be more consistent
13251         * data/glade/podcast-prefs.glade: 
13252         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13253         (impl_get_config_widget): move thing out of code into glade, where
13254         they belong
13256 2005-11-05  James Livingston  <jrl@ids.org.au>
13258         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
13259         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
13261 2005-11-04  James Livingston  <jrl@ids.org.au>
13263         * configure.ac: don't print DAAP configure info twice
13265 2005-11-04  James Livingston  <jrl@ids.org.au>
13267         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13268         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
13269         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
13270         #ifdefs, since we removed the symbol. Oops
13272 2005-11-04  James Livingston  <jrl@ids.org.au>
13274         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
13275         after the connect line, not before. Oops.
13277 2005-11-04  James Livingston  <jrl@ids.org.au>
13279         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
13280         fix some warnings
13282 2005-11-03  James Livingston  <jrl@ids.org.au>
13284         * NEWS: update the news file
13286         * data/glade/general-prefs.glade: make the prefs refer to "time" not
13287         "duration" column.
13289         * data/ui/rhythmbox-ui.xml:
13290         * shell/rb-playlist-manager.c:
13291         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13292         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
13293         and "delete" for feeds.
13295 2005-11-03  James Livingston  <jrl@ids.org.au>
13297         * sources/rb-podcast-source.c: (impl_delete),
13298         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
13299         feed. Closes 319760.
13301 2005-11-03  James Livingston  <jrl@ids.org.au>
13303         Don't start playing from the remote site when a un-downloaded podcast
13304         is activated. Closes 319983.
13305         
13307         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13308         (write_job_data), (download_progress_cb): write the local location as
13309         soon as any data is recieved
13311         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
13312         the mountpoint to NULL for podcast episodes that haven't yet been
13313         downloaded.
13314         
13315         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
13316         start playing a podcast if it hasn't been downloaded.
13317         
13318         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13319         (rb_podcast_source_entry_activated_cb): begin downloading when the
13320         podcast is activated.
13322 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
13324         * data/glade/general-prefs.glade:  Fix capitalization.
13325         * shell/rb-removable-media-manager.c:  Add a mnemonic.
13326         * sources/rb-podcast-source.c:
13327         (rb_podcast_source_songs_show_popup_cb),
13328         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
13330 2005-11-03  James Livingston  <jrl@ids.org.au>
13332         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
13334         * shell/rb-removable-media-manager.c:
13335         (rb_removable_media_manager_mount_volume): don't check network or
13336         autofs mounts, as they're not going to be removable media. Stops
13337         sending lots of warnings to syslog. Closes 320571.
13339         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
13340         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
13341         320570.
13343 2005-11-03  James Livingston  <jrl@ids.org.au>
13345         Add support for playing audio CDs. Metadata lookup is done using
13346         SoundJuicer's MusicBrainz lookup code, which can be switched to using
13347         the library when it gets broken out of S-J.
13348         
13349         Add a "rescan media" menu item, and commands for ejecting removable
13350         media.
13352         Move nautilus-cd-burner from optional to required depenency.
13354         * configure.ac:
13355         * data/ui/rhythmbox-ui.xml:
13356         * metadata/Makefile.am:
13357         + metadata/sj-error.c:
13358         + metadata/sj-error.h:
13359         + metadata/sj-metadata-marshal.list:
13360         + metadata/sj-metadata-musicbrainz.c:
13361         + metadata/sj-metadata-musicbrainz.h:
13362         + metadata/sj-metadata.c:
13363         + metadata/sj-metadata.h:
13364         + metadata/sj-structures.c:
13365         + metadata/sj-structures.h:
13366         * player/Makefile.am:
13367         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
13368         * po/POTFILES.in:
13369         * shell/Makefile.am:
13370         * shell/rb-removable-media-manager.c:
13371         (rb_removable_media_manager_dispose), (poll_tray_opened),
13372         (end_cd_drive_monitor), (begin_cd_drive_monitor),
13373         (rb_removable_media_manager_load_media),
13374         (rb_removable_media_manager_mount_volume),
13375         (rb_removable_media_manager_cmd_eject_medium),
13376         (rb_removable_media_manager_cmd_scan_media),
13377         (rb_removable_media_manager_check_volume),
13378         (rb_removable_media_manager_unmount_volume_swap),
13379         (rb_removable_media_manager_scan):
13380         * sources/Makefile.am:
13381         + sources/rb-audiocd-source.c:
13382         + sources/rb-audiocd-source.h:
13383         * tests/Makefile.am:
13385 2005-11-02  James Livingston  <jrl@ids.org.au>
13387         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13389         * sources/rb-iradio-source.c:
13390         (stations_view_drag_data_received_cb):
13391         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
13392         don't crash when the second uri is missing frm the drop, which
13393         browsers sometimes do.
13395 2005-11-01  James Livingston  <jrl@ids.org.au>
13397         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13398         (rb_podcast_manager_insert_feed):
13399         * podcast/rb-podcast-manager.h:
13400         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
13401         (rb_set_item_value), (rb_validate_item_propert),
13402         (rb_podcast_parse_date), (rb_podcast_parse_time):
13403         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
13404         from the feed.
13406 2005-10-31  James Livingston  <jrl@ids.org.au>
13408         * ChangeLog:
13409         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
13410         huge
13412 2005-10-31  James Livingston  <jrl@ids.org.au>
13414         * sources/rb-podcast-source.c:
13415         (rb_podcast_source_post_date_cell_data_func): generate the date string
13416         in a way that is correct in all locales.
13417         
13418         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
13419         (rhythmdb_entry_sync_mirrored): make the last played/date added
13420         columns use the same format.
13422 2005-10-30  James Livingston  <jrl@ids.org.au>
13425         * podcast/rb-podcast-manager.c:
13426         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
13427         
13428         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
13429         iradio errors better.
13431 2005-10-30  James Livingston  <jrl@ids.org.au>
13433         patch by: Artem Baguinski <femistofel@gmail.com>
13435         * metadata/rb-metadata-gst.c: (rb_metadata_init):
13437 2005-10-30  James Livingston  <jrl@ids.org.au>
13439         * podcast/rb-podcast-manager.c:
13440         (rb_podcast_manager_subscribe_feed),
13441         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
13442         already been added, usually as a radio station. Closes 319434.
13444 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
13446         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
13447         mnemonics & resize issues)
13448         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
13449         & mnemonics)
13450         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
13451         widget for the "download location" label.
13453         Closes bug 320184.
13455 2005-10-29  James Livingston  <jrl@ids.org.au>
13457         Allow the search box to match words from multiple properties. Closes
13458         bug 139196. Thanks to the person from IRC who did a lot of the initial
13459         work.
13462         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
13463         * lib/rb-util.h: Add functions to split a string into words, and one
13464         to perform "search folding" which is currently like casefolding but
13465         also strips punctuation
13466         
13467         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
13468         (rhythmdb_query_preprocess):
13469         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
13470         against title, artist, album and genre (for the search box)
13471         
13472         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
13473         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13474         (save_entry), (search_match_properties),
13475         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
13476         splitting into words and matching across multiple properties.
13477         
13478         * sources/rb-library-source.c: (construct_query_from_selection): use
13479         the new SEARCH_MATCH property for the search box
13480         
13481         * widgets/rb-entry-view.c: (type_ahead_search_func):
13483 2005-10-29  James Livingston  <jrl@ids.org.au>
13485         * lib/rb-stock-icons.c: (rb_stock_icons_init):
13486         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
13487         
13488         * shell/rb-playlist-manager.c:
13489         * shell/rb-shell.c: use the above stock ids, so that the icons get set
13490         correctly.
13491         
13492         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
13493         initial state of the shuffle/repeat menu items correctly. Patch from
13494         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
13496 2005-10-29  James Livingston  <jrl@ids.org.au>
13498         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
13499         double-free.
13500         
13501         * widgets/rb-cell-renderer-pixbuf.c:
13502         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
13503         icon go black when row is not selected
13504         
13505         * doc/reference/tmpl/rb-daap-connection.sgml:
13506         * doc/reference/tmpl/rhythmdb.sgml: doc updates
13508 2005-10-29  James Livingston  <jrl@ids.org.au>
13510         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
13511         silly mistake, where it could think partial downloads has been
13512         completed.
13514 2005-10-29  James Livingston  <jrl@ids.org.au>
13516         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13518         * data/glade/song-info.glade:
13519         * widgets/rb-song-info.c: (rb_song_info_construct_single),
13520         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
13521         (rb_song_info_sync_entry_single): show the disc number in the song
13522         info window. From bug 311199.
13524 2005-10-29  James Livingston  <jrl@ids.org.au>
13526         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
13527         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
13528         regularly. Closes 155306.
13530 2005-10-29  James Livingston  <jrl@ids.org.au>
13532         * podcast/rb-podcast-manager.c:
13533         (rb_podcast_manager_download_entry),
13534         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13535         (rb_podcast_manager_insert_feed):
13536         * podcast/rb-podcast-manager.h:
13537         * podcast/rb-podcast-parse.c: (rb_set_item_value),
13538         (rb_podcast_parser_start_element):
13539         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
13540         don't download them again. However, it can't resume
13541         partially-downloaded ones.
13543 2005-10-28  James Livingston  <jrl@ids.org.au>
13545         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
13546         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
13547         work. Don't attempt to write duration as a tag.
13549         Thanks to Artem Baguinski <femistofel@gmail.com>
13551 2005-10-28  James Livingston  <jrl@ids.org.au>
13553         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
13554         don't disable the status-bar menu item when the current source doesn't
13555         use the search box.
13557 2005-10-28  James Livingston  <jrl@ids.org.au>
13559         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
13560         crash if the file has unknown length
13562 2005-10-27  James Livingston  <jrl@ids.org.au>
13564         * daapsharing/rb-daap-connection.c:
13565         (rb_daap_connection_state_done): don't assert when a daap server
13566         doesn't have any playlists
13568 2005-10-27  James Livingston  <jrl@ids.org.au>
13570         * sources/rb-sourcelist-model.c:
13571         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
13572         source for the sourcelist. Closes bug 319817.
13574 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
13576         Patch by: Renato Araujo <renatox@gmail.com>
13578         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
13579           Fix for a crasher caused by previous patch.
13581 2005-10-26  James Livingston  <jrl@ids.org.au>
13583         * data/glade/podcast-prefs.glade:
13584         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
13585         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
13586         * sources/rb-podcast-source.c: (rb_podcast_source_new):
13587         * podcast/rb-podcast-manager.c:
13588         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13589         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
13590         * shell/rb-shell.c: Change some strings to make them more consistent.
13591         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
13592         makes it clearer which is which. "Episode" may not be the best term,
13593         but it seems to be widely used.
13594         
13595         Also fix some strings that weren't marked as translatable.
13596         
13597         * podcast/rb-feed-podcast-properties-dialog.c:
13598         (rb_feed_podcast_properties_dialog_class_init),
13599         (rb_feed_podcast_properties_dialog_finalize):
13600         * podcast/rb-new-podcast-dialog.c:
13601         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
13602         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13603         (rb_simple_view_finalize), (rb_simple_view_constructor):
13604         * podcast/rb-podcast-properties-dialog.c:
13605         (rb_podcast_properties_dialog_class_init),
13606         (rb_podcast_properties_dialog_finalize):
13607         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
13608         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
13609         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
13610         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
13611         use G_DEFINE_TYPE, instead of doing it manually.
13613 2005-10-26  James Livingston  <jrl@ids.org.au>
13615         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
13616         <jrl@ids.org.au>
13618         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
13619         (rb_metadata_init): Check that the necessary plugins are present to do
13620         id3 editing.
13621         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
13622         corrupted before replacing the original.
13624 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
13626         reviewed by: James Livingston <jrl@ids.org.au>
13628         Assign sequential IDs to playlists for DAAP rather than using the
13629         address of the playlist object.  Less flaky, and should work on 64bit
13630         platforms. Closes bug 319304.
13632         * daapsharing/rb-daap-share.c: 
13633         (rb_daap_share_set_property): watch for playlist creation
13634         (_find_by_id), (_find_by_source): playlist list search functions
13635         (rb_daap_share_playlist_created),
13636         (rb_daap_share_process_playlist),
13637         (rb_daap_share_playlist_destroyed):
13638          update playlist list as it changes, use weak refs on 
13639          playlists to get notified on destroy.
13640         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
13641          destroy playlist list on shutdown
13642         (add_playlist_to_mlcl): use playlist ID rather than pointer in
13643          DAAP response
13644         (databases_cb): search for playlist ID in list rather than just
13645          converting it to a pointer; return HTTP 404 if playlist not 
13646          found.
13647         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
13648          is already used for the main library
13650 2005-10-26  James Livingston  <jrl@ids.org.au>
13652         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13654         * daapsharing/rb-daap-connection.c: (build_message),
13655         (http_response_handler), (http_get), (handle_server_info),
13656         (handle_login), (handle_update), (handle_database_info),
13657         (handle_song_listing), (handle_playlists),
13658         (handle_playlist_entries), (handle_logout),
13659         (rb_daap_connection_new), (rb_daap_connection_logout),
13660         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
13661         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
13662         * daapsharing/rb-daap-connection.h:
13663         * sources/rb-daap-source.c: (rb_daap_source_activate),
13664         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
13665         (rb_daap_source_disconnect): Make connecting to DAAP sources
13666         asynchronous, so that non-responsive servers don't hang the UI. Closes
13667         316225.
13669 2005-10-26  James Livingston  <jrl@ids.org.au>
13671         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13673         * rhythmdb/rhythmdb-query-model.c:
13674         (rhythmdb_query_model_do_reorder): generate the row re-order map
13675         correctly.
13676         
13677         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
13678         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
13679         Update selection when rows get re-ordered. Closes 319718.
13681 2005-10-26  James Livingston  <jrl@ids.org.au>
13683         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
13685         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
13686         actually set the db pointer in play orders. Closes 319818.
13688 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
13690         Patch by: Renato Araujo <renatox@gmail.com>
13692         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13693         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
13694         (rb_podcast_manager_update_synctime),
13695         (rb_podcast_manager_config_changed),
13696         (rb_podcast_manager_insert_feed):
13697         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13698         (save_entry):
13699         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13700         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13701         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
13703 2005-10-25  James Livingston  <jrl@ids.org.au>
13705         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
13706         (db_entry_deleted_cb): don't share tracks that are hidden because the
13707         file is missing.
13709 2005-10-22  James Livingston  <jrl@ids.org.au>
13711         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
13712         crash if an entry couldn't be playerd, without streamer setting an
13713         error.
13715         
13716         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
13718         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13719         (rb_new_podcast_dialog_text_changed): enable the add button when a url
13720         is pasted into the dialog.
13721         
13722         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
13723         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
13724         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
13725         (rb_podcast_parse_channel_free):
13726         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
13727         feeds
13729 2005-10-22  James Livingston  <jrl@ids.org.au>
13731         * sources/rb-iradio-source.c:
13732         (rb_iradio_source_first_time_changed): Make merging the default
13733         stations actually work.
13734         
13735         * sources/rb-podcast-source.c:
13736         (rb_podcast_source_post_status_cell_data_func): fix problem where some
13737         people weren't seing the percentages in the stats column.
13739 2005-10-21  James Livingston  <jrl@ids.org.au>
13741         Patch from Caio Marcelo <cmarcelo@gmail.com>
13743         * shell/rb-shell.c: (rb_shell_window_state_cb),
13744         (rb_shell_get_visibility), (idle_hide_mainwindow),
13745         (rb_shell_set_visibility): Make the "show window" item in the tray
13746         icon menu show the toggle state correctly. Use a better policy on
13747         deciding whether the window is "visible" or not. Closes bug 308053.
13749 2005-10-21  James Livingston  <jrl@ids.org.au>
13751         * doc/reference/tmpl/rb-shell-preferences.sgml:
13752         * shell/Makefile.am: fix building with gtk-doc
13754         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
13755         don't submit podcasts to audioscrobbler
13756         
13757         
13758         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
13759         
13760         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
13761         (rb_set_item_value): strip spaces surrounding podcast urls
13762         
13764         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
13765         
13766         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
13768 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
13770         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
13771          Audioscrobbler/Last.fm support
13773         * configure.ac:
13774         * data/glade/Makefile.am:
13775         * data/glade/audioscrobbler-prefs.glade:
13776         * data/rhythmbox.schemas:
13777         * lib/Makefile.am:
13778         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
13779         * lib/md5.h:
13780         * lib/rb-preferences.h:
13781         * po/POTFILES.in:
13782         * shell/Makefile.am:
13783         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
13784         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
13785         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
13786         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
13787         (rb_audioscrobbler_timeout_cb), (mkmd5),
13788         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
13789         (rb_audioscrobbler_do_handshake),
13790         (rb_audioscrobbler_do_handshake_cb),
13791         (rb_audioscrobbler_submit_queue),
13792         (rb_audioscrobbler_submit_queue_cb),
13793         (rb_audioscrobbler_import_settings),
13794         (rb_audioscrobbler_preferences_sync),
13795         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
13796         (rb_audioscrobbler_gconf_changed_cb),
13797         (rb_audioscrobbler_song_changed_cb),
13798         (rb_audioscrobbler_username_entry_changed_cb),
13799         (rb_audioscrobbler_username_entry_activate_cb),
13800         (rb_audioscrobbler_password_entry_changed_cb),
13801         (rb_audioscrobbler_password_entry_activate_cb),
13802         (rb_audioscrobbler_enabled_check_changed_cb),
13803         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
13804         (rb_audioscrobbler_load_entry_from_string),
13805         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
13806         (rb_audioscrobbler_print_queue),
13807         (rb_audioscrobbler_free_queue_entries):
13808         * shell/rb-audioscrobbler.h:
13809         * shell/rb-shell-preferences.c:
13810         (rb_shell_preferences_append_audioscrobbler_config):
13811         * shell/rb-shell-preferences.h:
13812         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
13813         (rb_shell_select_source), (rb_shell_cmd_preferences):
13814         * sources/Makefile.am:
13816 2005-10-21  James Livingston  <jrl@ids.org.au>
13818         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
13820         * Makefile.am:
13821         * NEWS:
13822         * configure.ac:
13823         * data/art/Makefile.am:
13824         * data/glade/Makefile.am:
13825         * data/rhythmbox.schemas:
13826         * data/ui/rhythmbox-ui.xml:
13827         * doc/reference/Makefile.am:
13828         * doc/reference/tmpl/rhythmdb.sgml:
13829         * lib/rb-stock-icons.c: (rb_stock_icons_init):
13830         * lib/rb-stock-icons.h:
13831         * po/POTFILES.in:
13832         * podcast/Makefile.am:
13833         + podcast/rb-feed-podcast-properties-dialog.c:
13834         + podcast/rb-feed-podcast-properties-dialog.h:
13835         + podcast/rb-new-podcast-dialog.c:
13836         + podcast/rb-new-podcast-dialog.h:
13837         + podcast/rb-podcast-manager.c:
13838         + podcast/rb-podcast-manager.h:
13839         + podcast/rb-podcast-marshal.list:
13840         + podcast/rb-podcast-parse.c:
13841         + podcast/rb-podcast-parse.h:
13842         + podcast/rb-podcast-properties-dialog.c:
13843         + podcast/rb-podcast-properties-dialog.h:
13844         * rhythmdb/rhythmdb-property-model.c:
13845         (rhythmdb_property_model_set_property),
13846         (rhythmdb_property_model_enable_drag):
13847         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13848         (rhythmdb_tree_parser_end_element), (save_entry),
13849         (rhythmdb_tree_save):
13850         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
13851         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
13852         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
13853         (rhythmdb_entry_podcast_feed_get_type):
13854         * rhythmdb/rhythmdb.h:
13855         * shell/Makefile.am:
13856         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
13857         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
13858         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
13859         (rb_shell_quit):
13860         * sources/Makefile.am:
13861         + sources/rb-podcast-source.c:
13862         + sources/rb-podcast-source.h:
13863         * widgets/Makefile.am:
13864         * widgets/rb-property-view.c: (rb_property_view_class_init),
13865         (rb_property_view_constructor),
13866         (rb_property_view_selection_changed_cb),
13867         (rb_property_view_get_treeview):
13868         * widgets/rb-property-view.h:
13869         + widgets/rb-simple-view.c:
13870         + widgets/rb-simple-view.h:
13872 2005-10-20  James Livingston  <jrl@ids.org.au>
13874         * NEWS: update with changes since 0.9.1
13876         * configure.ac: check whether collate_key_for_filename is available
13877         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
13878         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
13879         it if it isn't available in glib (i.e. building against 2.6)
13880         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
13881         collation to get "natural sorting". Closes bug 158599.
13883 2005-10-20  James Livingston  <jrl@ids.org.au>
13885         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
13887         * doc/reference/tmpl/rb-shell-player.sgml:
13888         * shell/rb-shell-player.c: (rb_shell_player_class_init),
13889         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
13890         (rb_shell_player_get_playing),
13891         (rb_shell_player_get_playing_time_string),
13892         (rb_shell_player_get_playing_time),
13893         (rb_shell_player_set_playing_time), (tick_cb),
13894         (rb_shell_player_get_playing_path), (filter_mmkeys):
13895         * shell/rb-shell-player.h:
13896         * shell/rb-shell-player.xml:
13897         * shell/rb-shell.c: (rb_shell_constructor),
13898         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
13899         (rb_shell_set_window_title), (rb_shell_playing_impl),
13900         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
13901         Merge the duration_changed and elapsed_changed DBUS signals into one
13902         elapsed_changed signal. Check that the output argument isn't NULL
13903         before trying to put things in it.
13905 2005-10-20  James Livingston  <jrl@ids.org.au>
13907         * rhythmdb/rhythmdb-query-model.c:
13908         (rhythmdb_query_model_entry_added_cb),
13909         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
13910         problem where hidden entries could be shown in playlists.
13911         
13912         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
13913         issues when switching in and out of small mode.
13915 2005-10-19  James Livingston  <jrl@ids.org.au>
13917         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
13918         (rb_shell_constructor), (rb_shell_window_state_cb),
13919         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
13920         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
13921         (rb_shell_view_smalldisplay_changed_cb),
13922         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
13923         (rb_shell_sync_paned): remove gconf window-state races, prevent
13924         changing small mode too often, fix window event races. Closes 122806.
13926         
13927         Patch from Caio Marcelo <cmarcelo@gmail.com>
13929         * data/rhythmbox.schemas:
13930         * shell/rb-shell.c: (rb_shell_window_state_cb),
13931         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
13932         Remember the position of the window. Closes 315289.
13934 2005-10-19  James Livingston  <jrl@ids.org.au>
13936         Patch from Christophe Fergeau  <teuf@gnome.org>
13938         * configure.ac: determine whether libgpod is present when neither
13939         --with-ipod nor --without-ipod is passed
13941 2005-10-19  James Livingston  <jrl@ids.org.au>
13943         Patch from Caio Marcelo <cmarcelo@gmail.com>
13945         * shell/rb-shell-player.c: (do_next_idle),
13946         (rb_shell_player_do_previous), (rb_shell_player_do_next),
13947         (rb_shell_player_do_previous_or_seek),
13948         (rb_shell_player_previous_button_cb),
13949         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
13950         (rb_shell_player_cmd_next), (eos_cb):
13951         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
13952         end of the playlist is reached.
13954 2005-10-19  Christopher Aillon  <caillon@redhat.com>
13956         * lib/rb-thread.c: fix a few GSource leaks
13958 2005-10-19  James Livingston  <jrl@ids.org.au>
13960         * doc/reference/tmpl/bacon-volume.sgml:
13961         * doc/reference/tmpl/disclosure-widget.sgml:
13962         * doc/reference/tmpl/eel-gconf-extensions.sgml:
13963         * doc/reference/tmpl/eggnotificationbubble.sgml:
13964         * doc/reference/tmpl/eggtrayicon.sgml:
13965         * doc/reference/tmpl/gsequence.sgml:
13966         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
13967         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
13968         * doc/reference/tmpl/rb-daap-connection.sgml:
13969         * doc/reference/tmpl/rb-daap-dialog.sgml:
13970         * doc/reference/tmpl/rb-daap-mdns.sgml:
13971         * doc/reference/tmpl/rb-daap-share.sgml:
13972         * doc/reference/tmpl/rb-daap-sharing.sgml:
13973         * doc/reference/tmpl/rb-daap-source.sgml:
13974         * doc/reference/tmpl/rb-daap-src.sgml:
13975         * doc/reference/tmpl/rb-daap-structure.sgml:
13976         * doc/reference/tmpl/rb-debug.sgml:
13977         * doc/reference/tmpl/rb-dialog.sgml:
13978         * doc/reference/tmpl/rb-druid.sgml:
13979         * doc/reference/tmpl/rb-entry-view.sgml:
13980         * doc/reference/tmpl/rb-enums.sgml:
13981         * doc/reference/tmpl/rb-file-helpers.sgml:
13982         * doc/reference/tmpl/rb-glade-helpers.sgml:
13983         * doc/reference/tmpl/rb-header.sgml:
13984         * doc/reference/tmpl/rb-history.sgml:
13985         * doc/reference/tmpl/rb-ipod-source.sgml:
13986         * doc/reference/tmpl/rb-iradio-source.sgml:
13987         * doc/reference/tmpl/rb-library-source.sgml:
13988         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
13989         * doc/reference/tmpl/rb-metadata.sgml:
13990         * doc/reference/tmpl/rb-new-station-dialog.sgml:
13991         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
13992         * doc/reference/tmpl/rb-play-order-linear.sgml:
13993         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
13994         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
13995         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
13996         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
13997         * doc/reference/tmpl/rb-play-order-random.sgml:
13998         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
13999         * doc/reference/tmpl/rb-play-order.sgml:
14000         * doc/reference/tmpl/rb-player.sgml:
14001         * doc/reference/tmpl/rb-playlist-manager.sgml:
14002         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14003         * doc/reference/tmpl/rb-playlist-source.sgml:
14004         * doc/reference/tmpl/rb-preferences.sgml:
14005         * doc/reference/tmpl/rb-property-view.sgml:
14006         * doc/reference/tmpl/rb-query-creator-private.sgml:
14007         * doc/reference/tmpl/rb-query-creator.sgml:
14008         * doc/reference/tmpl/rb-rating-helper.sgml:
14009         * doc/reference/tmpl/rb-rating.sgml:
14010         * doc/reference/tmpl/rb-recorder.sgml:
14011         * doc/reference/tmpl/rb-refstring.sgml:
14012         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14013         * doc/reference/tmpl/rb-removable-media-source.sgml:
14014         * doc/reference/tmpl/rb-search-entry.sgml:
14015         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14016         * doc/reference/tmpl/rb-shell-glue.sgml:
14017         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14018         * doc/reference/tmpl/rb-shell-player.sgml:
14019         * doc/reference/tmpl/rb-shell-preferences.sgml:
14020         * doc/reference/tmpl/rb-shell.sgml:
14021         * doc/reference/tmpl/rb-song-display-box.sgml:
14022         * doc/reference/tmpl/rb-song-info.sgml:
14023         * doc/reference/tmpl/rb-source-header.sgml:
14024         * doc/reference/tmpl/rb-source.sgml:
14025         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14026         * doc/reference/tmpl/rb-sourcelist.sgml:
14027         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14028         * doc/reference/tmpl/rb-statusbar.sgml:
14029         * doc/reference/tmpl/rb-stock-icons.sgml:
14030         * doc/reference/tmpl/rb-string-helpers.sgml:
14031         * doc/reference/tmpl/rb-thread.sgml:
14032         * doc/reference/tmpl/rb-tray-icon.sgml:
14033         * doc/reference/tmpl/rb-tree-dnd.sgml:
14034         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14035         * doc/reference/tmpl/rb-util.sgml:
14036         * doc/reference/tmpl/rhythmbox-unused.sgml:
14037         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14038         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14039         * doc/reference/tmpl/rhythmdb-tree.sgml:
14040         * doc/reference/tmpl/rhythmdb.sgml: update for changes
14041         
14042         * doc/reference/Makefile.am: make docs build with changed ipod support
14043         
14044         * po/POTFILES.in: remove sources/itunesdb
14046 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
14048         * sources/itunesdb.c:
14049         * sources/itunesdb.h: removed now useless files
14051 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
14053         * configure.ac:
14054         * shell/Makefile.am:
14055         * sources/Makefile.am:
14056         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
14057         code
14058         [1]: http://www.gtkpod.org/libgpod.html
14061 2005-10-18  James Livingston  <jrl@ids.org.au>
14063         patch from Funda Wang <fundawang@linux.net.cn>
14065         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
14066         the notification bubble string translatable.
14068 ============ Version 0.9.1
14070 2005-10-16  James Livingston  <jrl@ids.org.au>
14072         * configure.ac: bump version to 0.9.1
14073         * NEWS: update translation credits
14075 2005-10-16  James Livingston  <jrl@ids.org.au>
14077         * rhythmdb/rhythmdb-query-model.c:
14078         (rhythmdb_query_model_class_init),
14079         (rhythmdb_query_model_drag_data_received): 
14080         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
14081         notified when things are dropped into the entry view.
14082         
14083         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
14084         (rb_playlist_source_add_location_swapped),
14085         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
14086         (rb_playlist_source_non_entry_dropped),
14087         (rb_playlist_source_row_inserted): Use the new signal so that dropping
14088         things onto a playlist's entry view work correctly, and doesn't cause
14089         crashes. Allow folders to be dropped as well. (Closes 318308)
14091 2005-10-16  James Livingston  <jrl@ids.org.au>
14093         * NEWS: Update some more
14095         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14096         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
14097         with the paned size, so that it doesn't move when the window is
14098         maximised/restored. Closes bug 315852.
14100         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
14101         display the playcount column, as it's useless (it never get changed).
14103 2005-10-14  James Livingston  <jrl@ids.org.au>
14105         * Makefile.am:
14106         * data/Makefile.am:
14107         * doc/reference/Makefile.am: get "make distcheck" to pass again
14109 2005-10-11  James Livingston  <jrl@ids.org.au>
14111         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
14112         destroy the connection when retrieving the playlists fails, because
14113         tracks have already been added. Closes 318380.
14115 2005-10-11  James Livingston  <jrl@ids.org.au>
14117         * sources/rb-sourcelist.c: (rb_sourcelist_append),
14118         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
14119         (source_name_edited_cb): Ask for the columns to be resized when a
14120         source is added, deleted or changes name.
14122 2005-10-11  James Livingston  <jrl@ids.org.au>
14124         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
14125         create a thread when processing a directory. This stops up created one
14126         thread for each file in a playlist we're trying to load. Closes
14127         317850.
14129         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
14130         typo that made sort-by-artist not work correctly.
14132 2005-10-11  James Livingston  <jrl@ids.org.au>
14134         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
14135         support is enabled
14137 2005-10-11  James Livingston  <jrl@ids.org.au>
14139         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
14140         * lib/rb-file-helpers.h: add a function to turn uris into our
14141         canonical path-escaped form
14142         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
14143         above function when import playlists. This will fix the problem of
14144         duplicate entries due to different representations of the uri (bug
14145         158211).
14147 2005-10-11  James Livingston  <jrl@ids.org.au>
14149         * shell/rb-shell.c: (rb_shell_get_visibility),
14150         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
14151         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
14152         window hiding so that Alt-F4 works again.
14154         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
14155         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
14156         (rb_entry_view_string_sort_func): Stop some crashes where a string
14157         property was set to NULL.
14159 2005-10-10  James Livingston  <jrl@ids.org.au>
14161         * doc/reference/rhythmbox.types: fix gtk-doc generation
14163 2005-10-09  James Livingston  <jrl@ids.org.au>
14165         * sources/rb-sourcelist.c: (rb_sourcelist_init):
14166         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
14167         accelerators, so that we don't have as many conflicting keys.
14169 2005-10-08  James Livingston  <jrl@ids.org.au>
14171         * data/iradio-initial.pls: Update the list of radio stations. Thanks
14172         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
14173         bug 129285.
14175 2005-10-07  James Livingston  <jrl@ids.org.au>
14177         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
14178         local path names in the same way as every other URI. This should stop
14179         duplicates occurring due to different escapings. Closes bug 158211.
14181 2005-10-06  James Livingston  <jrl@ids.org.au>
14183         * NEWS: more updates
14184         
14185         patch from Jaap Haitsma <jaap@haitsma.org>:
14187         * configure.ac:
14188         * data/Makefile.am:
14189         * data/art/Makefile.am:
14190         - data/art/rhythmbox-paused.png:
14191         - data/art/rhythmbox-playback-error.png:
14192         - data/art/rhythmbox-playing.png:
14193         - data/art-clearlooks/:
14194         * lib/rb-file-helpers.c: (rb_file):
14195         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14196         * lib/rb-stock-icons.h:
14197         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
14198         * widgets/rb-cell-renderer-pixbuf.c:
14199         (rb_cell_renderer_pixbuf_render):
14200         * widgets/rb-entry-view.c: (rb_entry_view_init),
14201         (rb_entry_view_set_playing):
14202         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
14203         stock icons instead of custom art. Drop remanents of art-clearlooks.
14205 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
14207         * configure.ac: Added ne in ALL_LINGUAS
14209 2005-10-02  James Livingston  <jrl@ids.org.au>
14211         * data/glade/Makefile.am: actually install the daap prefs glade file
14213 2005-09-30  James Livingston  <jrl@ids.org.au>
14215         * po/POTFILES.in: mremove rb-string-helper.c from the list of
14216         translatable files, so that make check works and we don't annoy the
14217         translators.
14218         
14219         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
14220         sanity checking, in case a db entry is missing some properties.
14222 2005-09-29  James Livingston  <jrl@ids.org.au>
14224         - lib/rb-string-helpers.c:
14225         - lib/rb-string-helpers.h:
14226         * lib/Makefile.am:
14227         * rhythmdb/rhythmdb-tree.c:
14228         * rhythmdb/rhythmdb.c:
14229         * shell/main.c: (main):
14230         * shell/rb-shell.c:
14231         * widgets/rb-entry-view.c:
14232         * widgets/rb-property-view.c: remove rb-string-helpers, as they
14233         utility functions haven't been used in a while.
14235 2005-09-27  James Livingston  <jrl@ids.org.au>
14237         * data/art-clearlooks/Makefile.am:
14238         - data/art-clearlooks/rhythmbox-album.png:
14239         - data/art-clearlooks/rhythmbox-audiocd.png:
14240         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
14241         - data/art-clearlooks/rhythmbox-dnd.png:
14242         - data/art-clearlooks/rhythmbox-ipod.png:
14243         - data/art-clearlooks/rhythmbox-iradio.png:
14244         - data/art-clearlooks/rhythmbox-library.png:
14245         - data/art-clearlooks/rhythmbox-next.png:
14246         - data/art-clearlooks/rhythmbox-pause.png:
14247         - data/art-clearlooks/rhythmbox-play.png:
14248         - data/art-clearlooks/rhythmbox-playlist-menu.png:
14249         - data/art-clearlooks/rhythmbox-playlist.png:
14250         - data/art-clearlooks/rhythmbox-previous.png:
14251         - data/art-clearlooks/rhythmbox-repeat.png:
14252         - data/art-clearlooks/rhythmbox-rewind.png:
14253         - data/art-clearlooks/rhythmbox-shuffle.png:
14254         - data/art-clearlooks/rhythmbox-stop.png:
14255         - data/art-clearlooks/rhythmbox-visuals.png:
14256         - data/art-clearlooks/rhythmbox-volume-max.png:
14257         - data/art-clearlooks/rhythmbox-volume-medium.png:
14258         - data/art-clearlooks/rhythmbox-volume-min.png:
14259         - data/art-clearlooks/rhythmbox-volume-mute.png:
14260         - data/art-clearlooks/rhythmbox-volume-zero.png:
14261         * data/art/Makefile.am:
14262         - data/art/rhythmbox-album.png:
14263         - data/art/rhythmbox-audiocd.png:
14264         - data/art/rhythmbox-automatic-playlist.png:
14265         - data/art/rhythmbox-dnd.png:
14266         - data/art/rhythmbox-ipod.png:
14267         - data/art/rhythmbox-iradio.png:
14268         - data/art/rhythmbox-library.png:
14269         - data/art/rhythmbox-next.png:
14270         - data/art/rhythmbox-pause.png:
14271         - data/art/rhythmbox-play.png:
14272         - data/art/rhythmbox-playlist-menu.png:
14273         - data/art/rhythmbox-playlist.png:
14274         - data/art/rhythmbox-previous.png:
14275         - data/art/rhythmbox-repeat.png:
14276         - data/art/rhythmbox-rewind.png:
14277         - data/art/rhythmbox-shuffle.png:
14278         - data/art/rhythmbox-stop.png:
14279         - data/art/rhythmbox-visuals.png:
14280         - data/art/rhythmbox-volume-max.png:
14281         - data/art/rhythmbox-volume-medium.png:
14282         - data/art/rhythmbox-volume-min.png:
14283         - data/art/rhythmbox-volume-mute.png:
14284         - data/art/rhythmbox-volume-zero.png:
14285         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14286         * lib/rb-stock-icons.h:
14287         * shell/rb-playlist-manager.c:
14288         * shell/rb-shell-player.c:
14289         * sources/rb-daap-source.c: (rb_daap_get_icon):
14290         * sources/rb-ipod-source.c:
14291         * sources/rb-iradio-source.c: (rb_iradio_source_init):
14292         * sources/rb-library-source.c: (rb_library_source_new):
14293         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14294         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
14295         that hasn't been used in a LONG time, and also remove art that are
14296         now stock icons.
14298 2005-09-27  James Livingston  <jrl@ids.org.au>
14300         * README: point to the gnome.org web sites, and update the example
14301         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
14302         
14303         * rhythmdb/rhythmdb-query-model.c:
14304         (rhythmdb_query_model_set_property),
14305         (rhythmdb_query_model_get_property),
14306         (rhythmdb_query_model_finalize):
14307         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
14308         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
14309         * rhythmdb/rhythmdb.h:
14310         * sources/rb-iradio-source.c: (impl_search):
14311         * sources/rb-library-source.c: (impl_search): Add query
14312         "preprocessing", which performs operations such as casefolding any
14313         strings that will be compared to any of the *_FOLDED properties.
14314         Closes bug 316039
14316 2005-09-27  James Livingston  <jrl@ids.org.au>
14318         * data/glade/daap-prefs.glade:
14319         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
14320         file for the daap preferences pane
14321         
14322         * sources/rb-sourcelist.c: (rb_sourcelist_init),
14323         (rb_sourcelist_append), (rb_sourcelist_remove),
14324         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
14325         don't display the column for source expanders unless there is an
14326         expandable source.
14328 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
14330         * .cvsignore:
14331         * Makefile.am:
14332         * configure.ac:
14333         * doc/.cvsignore:
14334         * doc/Makefile.am:
14335         * doc/reference/.cvsignore:
14336         * doc/reference/Makefile.am:
14337         * doc/reference/rhythmbox-docs.sgml:
14338         * doc/reference/rhythmbox-sections.txt:
14339         * doc/reference/rhythmbox.types:
14340         * doc/reference/tmpl/bacon-volume.sgml:
14341         * doc/reference/tmpl/disclosure-widget.sgml:
14342         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14343         * doc/reference/tmpl/eggnotificationbubble.sgml:
14344         * doc/reference/tmpl/eggtrayicon.sgml:
14345         * doc/reference/tmpl/gsequence.sgml:
14346         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14347         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14348         * doc/reference/tmpl/rb-daap-connection.sgml:
14349         * doc/reference/tmpl/rb-daap-dialog.sgml:
14350         * doc/reference/tmpl/rb-daap-mdns.sgml:
14351         * doc/reference/tmpl/rb-daap-share.sgml:
14352         * doc/reference/tmpl/rb-daap-sharing.sgml:
14353         * doc/reference/tmpl/rb-daap-source.sgml:
14354         * doc/reference/tmpl/rb-daap-src.sgml:
14355         * doc/reference/tmpl/rb-daap-structure.sgml:
14356         * doc/reference/tmpl/rb-debug.sgml:
14357         * doc/reference/tmpl/rb-dialog.sgml:
14358         * doc/reference/tmpl/rb-druid.sgml:
14359         * doc/reference/tmpl/rb-entry-view.sgml:
14360         * doc/reference/tmpl/rb-enums.sgml:
14361         * doc/reference/tmpl/rb-file-helpers.sgml:
14362         * doc/reference/tmpl/rb-glade-helpers.sgml:
14363         * doc/reference/tmpl/rb-header.sgml:
14364         * doc/reference/tmpl/rb-history.sgml:
14365         * doc/reference/tmpl/rb-ipod-source.sgml:
14366         * doc/reference/tmpl/rb-iradio-source.sgml:
14367         * doc/reference/tmpl/rb-library-source.sgml:
14368         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14369         * doc/reference/tmpl/rb-metadata.sgml:
14370         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14371         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14372         * doc/reference/tmpl/rb-play-order-linear.sgml:
14373         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14374         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14375         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14376         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14377         * doc/reference/tmpl/rb-play-order-random.sgml:
14378         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14379         * doc/reference/tmpl/rb-play-order.sgml:
14380         * doc/reference/tmpl/rb-player.sgml:
14381         * doc/reference/tmpl/rb-playlist-manager.sgml:
14382         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14383         * doc/reference/tmpl/rb-playlist-source.sgml:
14384         * doc/reference/tmpl/rb-preferences.sgml:
14385         * doc/reference/tmpl/rb-property-view.sgml:
14386         * doc/reference/tmpl/rb-query-creator-private.sgml:
14387         * doc/reference/tmpl/rb-query-creator.sgml:
14388         * doc/reference/tmpl/rb-rating-helper.sgml:
14389         * doc/reference/tmpl/rb-rating.sgml:
14390         * doc/reference/tmpl/rb-recorder.sgml:
14391         * doc/reference/tmpl/rb-refstring.sgml:
14392         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14393         * doc/reference/tmpl/rb-removable-media-source.sgml:
14394         * doc/reference/tmpl/rb-search-entry.sgml:
14395         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14396         * doc/reference/tmpl/rb-shell-glue.sgml:
14397         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14398         * doc/reference/tmpl/rb-shell-player.sgml:
14399         * doc/reference/tmpl/rb-shell-preferences.sgml:
14400         * doc/reference/tmpl/rb-shell.sgml:
14401         * doc/reference/tmpl/rb-song-display-box.sgml:
14402         * doc/reference/tmpl/rb-song-info.sgml:
14403         * doc/reference/tmpl/rb-source-header.sgml:
14404         * doc/reference/tmpl/rb-source.sgml:
14405         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14406         * doc/reference/tmpl/rb-sourcelist.sgml:
14407         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14408         * doc/reference/tmpl/rb-statusbar.sgml:
14409         * doc/reference/tmpl/rb-stock-icons.sgml:
14410         * doc/reference/tmpl/rb-string-helpers.sgml:
14411         * doc/reference/tmpl/rb-thread.sgml:
14412         * doc/reference/tmpl/rb-tray-icon.sgml:
14413         * doc/reference/tmpl/rb-tree-dnd.sgml:
14414         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14415         * doc/reference/tmpl/rb-util.sgml:
14416         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14417         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14418         * doc/reference/tmpl/rhythmdb-tree.sgml:
14419         * doc/reference/tmpl/rhythmdb.sgml:
14420         * macros/.cvsignore:
14421         * shell/Makefile.am:
14422         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
14423         (rb_source_finalize), (rb_source_set_property),
14424         (rb_source_get_property), (default_get_pixbuf),
14425         (_rb_source_show_popup):
14426         * sources/rb-source.h:
14427         Add support for gtk-doc in rhythmbox.
14428         Convert RBSource to use newer glib functions, such as add_private.
14429         Gives RBSource a default get_pixbuf implementation.
14431 2005-09-25  James Livingston  <jrl@ids.org.au>
14433         * NEWS: Update with about a months worth of changes
14435         * data/glade/song-info-multiple.glade:
14436         * data/glade/song-info.glade:
14437         * data/rhythmbox.schemas:
14438         * lib/rb-preferences.h:
14439         * rhythmdb/rhythmdb.h:
14440         * shell/rb-shell-player.c:
14441         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
14442         few remaining parts of autorating.
14444 2005-09-24  James Livingston  <jrl@ids.org.au>
14446         * shell/rb-shell.c: (rb_shell_constructor),
14447         (rb_shell_window_state_cb), (rb_shell_set_visibility),
14448         (rb_shell_window_configure_cb): store window state in the gconf keys,
14449         so that it gets used. Closes bugs 313893 and 137068.
14451 2005-09-20  James Livingston  <jrl@ids.org.au>
14453         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
14454         crash if the entry has a NULL string in a property
14455         
14456         * shell/rb-removable-media-manager.c:
14457         (rb_removable_media_manager_load_media): fix some memory leaks
14458         
14459         (rb_removable_media_manager_mount_volume),
14460         (rb_removable_media_manager_eject_medium_cb),
14461         (rb_removable_media_manager_cmd_eject_medium): use
14462         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14463         
14464         * sources/rb-removable-media-source.c:
14465         (rb_removable_media_source_set_property),
14466         (rb_removable_media_source_get_property): use
14467         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14469 2005-09-18  James Livingston  <jrl@ids.org.au>
14471         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
14472         column
14474         * data/glade/general-prefs.glade:
14475         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
14476         (rb_shell_preferences_column_check_changed_cb),
14477         (rb_shell_preferences_sync): add checkbox to control visibility
14478         of the column
14479         
14480         
14481         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14482         (save_entry):
14483         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
14484         (rhythmdb_prop_get_type):
14485         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
14486         was as "last played" is handled
14487         
14488         * sources/rb-library-source.c: (rb_library_source_constructor):
14489         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14490         Make the column show in the library and playlists
14491         
14492         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
14493         * widgets/rb-entry-view.h: add the column
14494         
14495         * widgets/rb-query-creator-properties.c: allow automatic playlists to
14496         be sorted by the column
14498 2005-09-16  James Livingston  <jrl@ids.org.au>
14500         * shell/rb-shell-player.c: (rb_shell_player_init),
14501         (rb_shell_player_do_previous_or_seek),
14502         (rb_shell_player_previous_button_cb),
14503         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14504         (rb_shell_player_playpause_button_cb): Make the previous button act
14505         the same as the menu item. Fix an inversion of the "previous track or
14506         seek" logic.
14507         
14508         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14509         
14510         (rb_shell_player_playpause): make --play-pause stop source that can't
14511         be paused
14513 2005-09-15  James Livingston  <jrl@ids.org.au>
14515         * configure.ac: increase totem-plparser requirements to 1.1.5
14517         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
14518         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
14519         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
14520         use the newer playlist APIs to save the name of the playlist, and use
14521         the name of a loaded playlist.
14523         Closes bug 309817.
14525 2005-09-15  James Livingston  <jrl@ids.org.au>
14527         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14529         * shell/Makefile.am: stop some linker warnings
14531         * shell/main.c: (main): make --no-registration work with dbus
14533 2005-09-15  James Livingston  <jrl@ids.org.au>
14535         * daapsharing/rb-daap-sharing.c: (create_share):
14536         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
14537         reference sinking and counting issues that I caused.
14539 2005-09-15  James Livingston  <jrl@ids.org.au>
14541         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
14542         playing" icon in the "now playing" column header.
14544 2005-09-14  James Livingston  <jrl@ids.org.au>
14546         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
14547         daap shares, when sharing is turned off.
14549 2005-09-12  Bastien Nocera  <hadess@hadess.net>
14551         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
14552         the GConf value's default, especially for badly installed schema
14553         files
14555 2005-09-12  James Livingston  <jrl@ids.org.au>
14557         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
14559         Patch from Paolo Borelli <pborelli@katamail.com>
14561         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
14562         grip when maximised. Closes bug 316055.
14564 2005-09-11  James Livingston  <jrl@ids.org.au>
14566         Patch from William Jon McCann <mccann@jhu.edu>
14568         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
14569         subclass of GtkStatusbar instead of GtkHBox.
14570         (rb_statusbar_construct): Don't set border width.
14571         (rb_statusbar_init): Use resize grip.  Don't use
14572         markup.
14573         (set_statusbar_tooltip, unset_statusbar_tooltip) 
14574         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
14575         Connect tooltips for actions.
14576         (rb_statusbar_sync_status): Push new message to statusbar.
14577         (rb_statusbar_set_progress): Don't use markup.
14578         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
14579         flag here since it prevents actually showing or hiding.
14580         (rb_statusbar_sync_with_source): Push new message to statusbar.
14582 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14584         * daapsharing/rb-daap-structure.c:
14585         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
14586         around debugging definition.
14588 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14589         
14590         * daapsharing/rb-daap-structure.c:
14591         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
14592         type = version.
14594         * daapsharing/rb-daap-mdns.c/h:
14595         (resolve_cb): Updated mDNS resolve callback to send service-name &
14596         name (read from Machine Name in the TXT data or equal to service-name
14597         if not in TXT).
14599         * daapsharing/rb-daap-source.c:
14600         (rb_daap_source_class_init), (rb_daap_source_set_property), 
14601         (rb_daap_source_get_property), (rb_daap_source_new),
14602         (find_source_by_service_name), (resolve_cb), (browse_cb), 
14603         (stop_resolver), (start_browsing), (stop_browsing), 
14604         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
14605         and added 'host' and 'port' gobject properties.  Updated to use new
14606         mDNS resolve callback sending service-name & name arguments.
14608 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14610         * daapsharing/rb-daap-mdns.c:
14611         (howl_strerror): New function to report errors from Howl
14612         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
14613         (get_sw_discovery), (get_avahi_client): Better error reporting from
14614         Howl & Avahi.
14616         * sources/rb-daap-source.:
14617         (start_browsing), (stop_browsing): Fixed a bug where browsing would
14618         not get started or stopped in some situations.
14619         
14620 2005-09-12  James Livingston  <jrl@ids.org.au>
14622         * shell/rb-removable-media-manager.c: add a missing include, that
14623         would stop compilation if ipod support wasn't turned on
14625 2005-09-11  James Livingston  <jrl@ids.org.au>
14627         * daapsharing/rb-daap-dialog.c: (encode_base64),
14628         (rb_daap_password_dialog_new_run),
14629         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
14630         it is no broken in to two pieces, and remove a use of a goto
14631         
14632         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
14633         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
14634         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
14635         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
14636         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
14637         memory leaks, and some code style things.
14638         
14639         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
14640         (rb_daap_share_init), (rb_daap_share_set_property),
14641         (rb_daap_share_dispose), (rb_daap_share_new),
14642         (rb_daap_share_get_property): make the DB and the playlist manager
14643         gobject properties.
14644         
14645         (message_add_standard_headers),
14646         (message_set_from_rb_daap_structure), (server_info_cb),
14647         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
14648         (server_cb), (add_db_entry), (db_entry_added_cb),
14649         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
14650         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
14651         style and use CONF_PREFIX in the gconf keys
14652         
14653         * daapsharing/rb-daap-sharing.c: (create_share),
14654         (enable_sharing_changed_cb), (share_name_changed_cb),
14655         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
14656         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
14657         (rb_daap_src_instance_init), (rb_daap_src_dispose),
14658         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
14659         (rb_daap_src_get_property), (rb_daap_src_getcaps),
14660         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
14661         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
14662         (rb_daap_src_get_time): Deal with gconf callbacks where the key
14663         hasn't actually changed, fix some memory leaks, code style and release
14664         gconf notifications when the object is destroyed.
14665         
14666         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
14667         (rb_daap_source_class_init), (rb_daap_source_init),
14668         (rb_daap_source_dispose), (rb_daap_source_set_property),
14669         (rb_daap_source_get_property), (rb_daap_source_new),
14670         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
14671         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
14672         (rb_daap_sources_init), (rb_daap_sources_shutdown),
14673         (rb_daap_source_activate), (rb_daap_source_disconnect),
14674         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
14675         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
14676         release gconf notifications, handle gconf callbacks where the key
14677         hasn't changed, make "real name" and "password protected" gobject
14678         properties, fix some code style and fix a memory leak.
14680 2005-09-11  James Livingston  <jrl@ids.org.au>
14682         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14684         * shell/rb-playlist-manager.c:
14685         (rb_playlist_manager_save_playlists),
14686         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
14687         when we aren't supposed to. (Closes bug 315886)
14689 2005-09-11  James Livingston  <jrl@ids.org.au>
14691         * shell/rb-removable-media-manager.c:
14692         (rb_removable_media_manager_class_init),
14693         (rb_removable_media_manager_init),
14694         (rb_removable_media_manager_dispose),
14695         (rb_removable_media_manager_set_property),
14696         (rb_removable_media_manager_get_property),
14697         (rb_removable_media_manager_new),
14698         (rb_removable_media_manager_load_media),
14699         (rb_removable_media_manager_volume_mounted_cb),
14700         (rb_removable_media_manager_volume_unmounted_cb),
14701         (rb_removable_media_manager_mount_volume),
14702         (rb_removable_media_manager_unmount_volume),
14703         (rb_removable_media_manager_source_deleted_cb),
14704         (rb_removable_media_manager_append_media_source),
14705         (rb_removable_media_manager_set_uimanager),
14706         (rb_removable_media_manager_eject_medium_cb),
14707         (rb_removable_media_manager_cmd_eject_medium):
14708         * shell/rb-removable-media-manager.h:
14709         * sources/rb-removable-media-source.c:
14710         (rb_removable_media_source_class_init),
14711         (rb_removable_media_source_init),
14712         (rb_removable_media_source_dispose),
14713         (rb_removable_media_source_set_property),
14714         (rb_removable_media_source_get_property), (impl_get_pixbuf),
14715         (impl_delete_thyself):
14716         * sources/rb-removable-media-source.h: Add the four files that I
14717         somehow managed not to add to cvs in the last commit. Oops.
14719 2005-09-11  James Livingston  <jrl@ids.org.au>
14721         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
14722         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
14723         
14724         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14725         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
14726         removable-media-manager on startup, and handle creation of sources.
14727         
14728         * sources/rb-ipod-source.h:
14729         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
14730         (rb_ipod_source_init), (rb_ipod_source_constructor),
14731         (rb_ipod_source_dispose), (rb_ipod_source_new),
14732         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
14733         the iPod source over to the removable media framework.
14734         
14735         * sources/rb-library-source.c: (paned_size_allocate_cb),
14736         (rb_library_source_get_paned_key): fix a potential bug is a
14737         library-derived source doesn't have a paned-key
14739 2005-09-11  Bastien Nocera  <hadess@hadess.net>
14741         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
14742         mp3 when we can't get the suffix of a file (Closes: #315941)
14744 2005-09-10  James Livingston  <jrl@ids.org.au>
14746         * configure.ac: fix the mdns tests, so that it doesn't complain about
14747         not finding one, if daap support isn't being compiled in
14749 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
14751         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
14753         * daapsharing/rb-daap-dialog.c:
14754         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
14755         HIG compliancy & images.
14757         * daapsharing/rb-daap-mdns.c:
14758         (browse_cb), (resolve_cb): Better detection of local services.  
14759         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
14760         Howl's limitations.  Fix the way collision handling is done under
14761         Avahi.
14763         * daapsharing/rb-daap-share.c:
14764         (publish_cb): Better name collision handling (at least for Avahi).
14766 2005-09-10  James Livingston  <jrl@ids.org.au>
14768         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
14769         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
14770         preferences more HIG compliant (Closes #315889)
14771         
14772         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
14773         list of files to be translated
14775 2005-09-10  James Livingston  <jrl@ids.org.au>
14777         * configure.ac: fix it so that --enable-daap=no works
14778         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
14779         uninstalled
14781 2005-09-10  James Livingston  <jrl@ids.org.au>
14783         Patch from Christophe Fergeau <teuf@gnome.org>
14785         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
14786         the ipod code.
14788 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14789         * README.daap: Updating documentation
14791 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14792         * AUTHORS: Added myself.
14794         * daapsharing/rb-daap-connection.c:
14795         (connection_login), (rb_connection_new): Reorganized password
14796         handling.
14798         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
14800         * shell/rb-shell.c:
14801         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
14803         * sources/rb-daap-source.c:
14804         (rb_daap_source_activate): Better error handling when we are unable to
14805         connect.
14806         
14807 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14808         * README.daap: Fixed some terminology.
14810         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
14811         New --with-mdns=auto|howl|avahi flag to specify.
14813         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
14814         name collision dialogs.
14816         * daapsharing/rb-daap-connection.c:
14817         (connection_get_password), (build_message), (http_get)
14818         (connection_login): Ask for & use a password if the share demands it.
14820         * daapsharing/rb-daap-connection.h: Changed prototype of
14821         rb_daap_connection_new.
14822         
14823         * daapsharing/rb-daap-mdns.c: 
14824         (resolve_cb): Better detection of your own music share so it doesn't 
14825         appear in the sourcelist.
14827         * daapsharing/rb-daap-share.c:
14828         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
14829         that start on any available port.
14831         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
14833         * sources/rb-daap-source.c:
14834         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
14835         (browse_cb): Handle passworded shares. Resolve the host immediately
14836         instead of when activated.
14837         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
14838         (rb_daap_source_new): New GConf keys for UI state.
14839         (rb_daap_source_activate): Use RBPlaylistSource instead of
14840         RBDAAPPlaylistSource
14841         
14842         * sources/rb-daap-playlist-source.c/h: Removed
14844         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
14845         if the playlist is local (i.e. not DAAP or iPod).
14846         
14847         * shell/rb-playlist-manager.c:
14848         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
14849         wouldn't get saved if the last playlist hadn't changed.  Only save
14850         local playlists.
14851         
14852 2005-09-09  James Livingston  <jrl@ids.org.au>
14854         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
14855         iPod preferences pane, as it already uses the browser views as the
14856         library.
14858 2005-09-09  James Livingston  <jrl@ids.org.au>
14860         * sources/rb-library-source.c: (rb_library_source_finalize),
14861         (rb_library_source_constructor): fix gconf monitoring of library
14862         preference keys.
14863         * sources/rb-library-source.h: remove declaration of function that
14864         does not exist
14866 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
14868         * player/rb-player-gst.c:
14869         (rb_player_set_time): Fix seeking in daap streams.
14871 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
14873         * data/rhythmbox.schemas: Turn music share browsing on by default.
14875 2005-09-07  James Livingston  <jrl@ids.org.au>
14877         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
14879 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
14880         * player/rb-player-gst.c: 
14881         (rb_player_get_time): Fix for extra << & == that accidentally made
14882         it in.
14884         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
14885         
14886 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
14887         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
14888         it in last time.  Sorry.
14890 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
14891         
14892         * player/rb-player-gst.c:
14893         (rb_player_get_time): Fix a small crash appearing when
14894         the uri isn't set in the player, but rb_player_get_time() is
14895         still called.
14897         * configure.ac: Also check for libsoup 2.4, which is what ships with
14898         Gnome 2.12.
14900         * po/POTFILES.in: Added music sharing files that have translatable 
14901         strings.
14903         * README.daap: New file explaining "How Music Sharing Works"  
14905 2005-09-06  Bastien Nocera  <hadess@hadess.net>
14907         * daapsharing/.cvsignore: added
14909 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
14911         * daapsharing/*: Music sharing library.
14912         
14913         * sources/rb-daap-source.c/h: Music share RBSource.
14914         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
14916         * configure.ac: --enable-daap flag to turn on music sharing. Requires
14917         libsoup and a mutlicast DNS implementation (howl or avahi).
14919         * data/rhythmbox.schemas: New GConf keys for music sharing.
14921         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
14922         source right click menu.
14924         * player/rb-player-gst.c: Changes to properly play & seek in remote
14925         music share files.
14927         * shell/rb-playlist-manager.c/h:
14928         (rb_playlist_manager_get_playlists): New function to get a GList * of
14929         the playlists.
14930         (rb_playlist_manager_save_playlists): Don't save music share playlists
14931         and fixed a GObject reference leak.
14933         * shell/rb-shell.c/h:
14934         (rb_shell_append_source): No longer a local function.  Now takes a
14935         parent RBSource * argument, NULL to append a toplevel source.
14936         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
14937         source (useful for disconnecting from remote music share,
14938         specifically).
14939         (rb_shell_quit): Stop music sharing/browsing.
14940         (rb_shell_playlist_added_cb): Work with tree source structure.
14941         (rb_shell_get_property): "playlist-manager" property accessor.
14942         (rb_shell_class_init): New "playlist-manager" property.
14943         (rb_shell_construor): Append sources as toplevel sources.  Initialize
14944         daap sharing/browsing.
14945         (rb_shell_select_source): Notify source of activation/deactivation.
14947         * shell/rb-shell-prefernces.c: Music sharing preferences.
14949         * sources/rb-source.c/h: New activate, deactivate and disconnect
14950         class functions.  Activate & deactivate are notification style 
14951         functions that will tell a source when it is selected/unselected.
14952         Disconnect can be hooked up to a UI object to disconnect the source.
14954         * sources/rb-sourcelist-model.c:
14955         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
14956         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
14957         append a toplevel source.
14959 2005-09-05  James Livingston  <jrl@ids.org.au>
14961         * rhythmdb/rhythmdb-query-model.c:
14962         (rhythmdb_query_model_entry_changed_cb),
14963         (rhythmdb_query_model_do_reorder): Update the query model's totals if
14964         the duration of filesize of an entry changes.  Emit the row-changed
14965         signals that I forgot to put back in, when I was doing query sorting.
14967         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
14968         out "0 minutes" or "0 bytes".
14970 2005-09-04  James Livingston  <jrl@ids.org.au>
14972         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
14973         remove a leftover bit of the "internal-name" property of sources.
14975 2005-09-03  James Livingston  <jrl@ids.org.au>
14977         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
14978         extraneous debug message
14979         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
14980         crasher would affect any library-derived sources (which was also a
14981         memory leak).
14983 2005-09-02  Colin Walters  <walters@verbum.org>
14985         * configure.ac: Fix sytnax error.
14987         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
14988         code to disable minimization icons - need to figure out
14989         why it doesn't work...
14991 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
14993         * data/glade/song-info-multiple.glade:
14994         * data/glade/song-info.glade:
14995         * widgets/rb-song-info.c: (rb_song_info_constructor):
14996         Add a mnemonic to the newly added "Automatically rate" label
14997         in the properties dialog and use a bold typeface like all the 
14998         other labels in the dialog. (Closes bug 315089)
15000 2005-09-03  James Livingston  <jrl@ids.org.au>
15002         * sources/rb-library-source.c: (rb_library_source_class_init),
15003         (rb_library_source_finalize), (rb_library_source_constructor),
15004         (rb_library_source_set_property), (rb_library_source_get_property),
15005         (impl_get_paned_key), (paned_size_allocate_cb),
15006         (rb_library_source_state_prefs_sync), (impl_show_popup),
15007         (rb_library_source_get_paned_key):
15008         * sources/rb-library-source.h: Allow sources derived from
15009         RBLibrarySource to use different gconf keys for sort order, browser
15010         visibility and browser pane position. Fix a crasher if a derived
15011         source overrides _get_pixbuf.
15013 2005-09-02  Colin Walters  <walters@verbum.org>
15015         * shell/rb-shell.c (rb_shell_set_visibility): Move
15016         hint setting which seems to avoid races more.
15017         
15018 2005-09-03  James Livingston  <jrl@ids.org.au>
15020         * shell/rb-shell.c: fix compilation with iPod support enabled
15021         
15022 2005-09-02  Colin Walters  <walters@verbum.org>
15024         * shell/rb-shell.c (struct RBShellPrivate): Add
15025         idle_hide_mainwindow_id.
15026         (rb_shell_constructor): Move taskbar skipping hint into
15027         rb_shell_set_visibility.
15028         (idle_hide_mainwindow): New function.
15029         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
15030         racy hack to avoid rb appearing in taskbar when minimized.
15032 2005-09-01  Colin Walters  <walters@verbum.org>
15034         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
15036         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
15037         from gtkstatusicion.c.
15039         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
15041         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
15042         TrayShowWindow entry.
15043         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
15044         (rb_tray_icon_constructor): Create action group here.
15045         (rb_tray_icon_finalize): Destroy action group.
15046         (rb_tray_icon_set_property): Don't take an action group.
15047         (rb_tray_icon_new): Ditto.
15048         (tray_popup_position_menu): Some mostly boilerplate code
15049         to position menu.
15050         (rb_tray_icon_button_press_event_cb): Position menu.
15051         (rb_tray_icon_get_geom): New function used for the shell
15052         to set minimization hints.
15054         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
15056         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
15057         (struct RBShellPrivate): Change visible to iconified.
15058         (set_icon_geometry): New function from Søren Sandmann to
15059         tell Metacity where to draw the minimization animiation.
15060         (rb_shell_window_state_cb): Update iconified.
15061         (rb_shell_get_visibility): New function to say whether
15062         or not we're currently visible.
15063         (rb_shell_set_visibility): Update to minimize to
15064         tray or present as appropriate.
15065         (rb_shell_window_delete_cb): On window close, just
15066         minimize to tray if we're deleted.
15067         (rb_shell_set_window_title): Kill old notification code.
15068         (rb_shell_toggle_visibility): Nwe function.
15069         (rb_shell_cmd_toggle_visibility): Call it.
15070         (rb_shell_constructor): Skip the taskbar.
15071         (tray_destroy_cb): Better debugging.
15072         
15073 2005-09-01  Colin Walters  <walters@verbum.org>
15075         * data/ui/rhythmbox-ui.xml: Add MusicClose.
15077         * configure.ac: Enable bonobo by default.
15078         
15079 2005-09-01  Colin Walters  <walters@verbum.org>
15081         * configure.ac: Default to old art.  Add macros subdir.
15083         * Makefile.am (SUBDIRS): Add macros.
15085         * macros/Makefile.am: New.
15086         
15087 2005-09-01  Colin Walters  <walters@verbum.org>
15089         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
15090         rb-shell-player.xml.
15092         * remote/dbus/rb-remote-dbus.h: Deleted.
15093         
15094         * remote/dbus/Makefile.am: Delete all the junk, just dist
15095         rb-print-playing.py and rb-set-rating.py.
15097         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
15099         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
15101 2005-09-02  James Livingston  <jrl@ids.org.au>
15103         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
15104         file from cvs
15106         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
15107         (rb_shell_constructor): Patches from Jonathan Matthew
15108         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
15109         a crash when using "browse this artist".
15111 2005-08-31  Colin Walters  <walters@verbum.org>
15113         * configure.ac: Add --with-old-art configure switch.  Also
15114         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
15115         but it doesn't work.
15117         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
15118         Don't use eel_create_colorized_pixbuf for new art.
15119         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
15121         * data/art-clearlooks: New artwork.
15122         
15123 2005-08-31  Colin Walters  <walters@verbum.org>
15125         * shell/main.c (main): Fix Bastien's commit to continue to focus
15126         the window with GTK+ 2.8 at least.
15127         
15128 2005-08-31  Colin Walters  <walters@verbum.org>
15130         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
15131         is already loaded.
15133         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
15135 2005-08-31  Bastien Nocera  <hadess@hadess.net>
15137         * README: remove mentions of the xine-lib backend
15138         * shell/main.c: (main): make it compilable with gtk+ < 2.8
15140 2005-08-30  Colin Walters  <walters@verbum.org>
15142         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
15143         Make non-visible sources insensitive.
15144         
15145 2005-08-30  Colin Walters  <walters@verbum.org>
15147         * shell/rb-shell.c: Don't use GConf for selected source; it's
15148         confusing to have the selected source change after startup,
15149         and since we don't save other things it's not worth saving this.
15151         * sources/rb-playlist-source.c:
15152         * sources/rb-library-source.c:
15153         * sources/rb-iradio-source.c:
15154         * sources/rb-ipod-source.c: Delete internal-name property usage.
15155         * sources/rb-source.c: Delete internal-name property.
15157         * data/rhythmbox.schemas: Delete selected_source.
15158         
15159 2005-08-30  Colin Walters  <walters@verbum.org>
15161         * sources/rb-sourcelist.c: Make playing source bold instead of
15162         displaying a pixbuf; it's much less ugly.
15163         
15164 2005-08-30  Colin Walters  <walters@verbum.org>
15166         * sources/rb-source.c:
15167         * sources/rb-source.h: New virtual method try_playlist.
15169         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
15170         impl_try_playlist.
15171         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
15172         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
15173         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
15174         need to.
15175         (stations_view_drag_data_received_cb): Don't check for iradio uris;
15176         in theory we should though...
15178         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
15179         list in rb_shell_construct now.
15180         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
15181         RBiPodSource.
15182         (rb_shell_constructor): Create library, iradio, ipod here.
15183         (rb_shell_source_deleted_cb): Use source directly instead of
15184         indirecting through type.
15185         (rb_shell_sync_selected_source): Ditto.
15186         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
15187         from the type instead of special-casing.
15188         (rb_shell_guess_type_for_uri) 
15189         (rb_shell_add_uri)
15190         (handle_one_uri_with_possible_metadata): New functions.
15191         (rb_shell_load_uri): Refactor to allow loading playlists again,
15192         also use other URI infrastructure.
15194         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
15195         (rb_shell_player_error): Always set entry error on error, instead
15196         of depending on EOF behavior.
15198         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
15199         to just invoke rb_shell_add_uri.
15200         (rb_playlist_manager_parse_file): Return error instead of tossing
15201         up dialog box directly.
15202         (load_playlist_response_cb): Display error here.
15203         (add_uri_to_playlist): Delete.
15204         (handle_playlist_entry_into_playlist_cb): Renamed to
15205         handle_playlist_entry_cb.
15207         * shell/rb-playlist-manager.h: Add error, update prototype.
15209         * lib/rb-file-helpers.c:
15210         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
15212 2005-08-29  Colin Walters  <walters@verbum.org>
15214         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
15215         if entry already exists.  Use rhythmdb_entry_set_uninserted.
15217         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
15218         needlessly duping string, and use rhythmdb_entry_set_uninserted.
15219         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
15221         * shell/rb-shell.h (enum RBShellError): Add some more errors.
15222         Prototype rb_shell_set_song_property.
15224         * shell/rb-shell.xml: Export setSongProperty.
15226         * shell/rb-shell.c (rb_shell_set_song_property): New function.
15227         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
15228         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
15230         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
15231         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
15232         want to notify of the change.
15233         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
15235         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
15236         logic error; idle functions would be enqueued for each set.
15237         (rhythmdb_entry_set): Fix assertion logic error.
15239         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
15240         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
15241         Return if the entry already exists.
15242         
15243 2005-08-29  Colin Walters  <walters@verbum.org>
15245         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
15246         "inserted" member which we use to keep track of
15247         whether or not an entry is in the DB.  Prototype
15248         rhythmdb_entry_set_uninserted.
15250         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
15251         flag.
15252         (rhythmdb_entry_insert): Assert entry is not already inserted.
15253         (rhythmdb_process_metadata_load): Update to call _set_uninserted
15254         just after creating entry.
15255         (rhythmdb_entry_set): Document, and fail on uninserted entries.
15256         (rhythmdb_entry_set_nonotify): Ditto.
15257         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
15258         entries.
15259         (rhythmdb_entry_set_internal): Change notify flag to
15260         notify_if_inserted.  Also move notification after assertions.
15262         Update all existing callers of rhythmdb_entry_set_internal
15263         to give TRUE for notify_if_inserted; this should be what
15264         we want but may be an efficiency hit.
15265         
15266 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15268         * shell/rb-shell-player.c: (rb_shell_player_init),
15269         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
15270         (rb_shell_player_set_playing_source_internal),
15271         (rb_shell_player_sync_with_selected_source): Notify the player when an
15272         entry has updated the title, album or artist field, and resync the big
15273         display.
15274         
15275         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15276         * sources/rb-library-source.c: (rb_library_source_class_init),
15277         (impl_get_config_widget):
15278         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
15279         * sources/rb-source.c:
15280         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
15281         get_album functions in rb-source and adapted other sources accordingly.
15282         
15283 2005-08-29  Colin Walters  <walters@verbum.org>
15285         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
15286         signal_change member.
15287         (threadsafe_entry_set): New function.
15288         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
15289         (rhythmdb_entry_set_nonotify): New function; just call
15290         threadsafe_entry_set with FALSE.
15291         (rhythmdb_entry_set_internal): Take a notify flag; if true
15292         add the change to our pending set.
15294         Also update all internal callers of rhythmdb_entry_set_internal
15295         to pass FALSE.  Some of these may be bugs however and need to
15296         pass TRUE...
15298         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
15299         rhythmdb_entry_set, and rename rhythmdb_entry_set to
15300         rhythmdb_entry_set_nonotify.
15302         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
15303         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
15305         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
15307         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
15308         * sources/rb-source.c (rb_source_update_play_statistics): 
15309         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
15310         * sources/rb-ipod-source.c (entry_set_string_prop) 
15311         (load_ipod_db_idle_cb): 
15312         * shell/rb-shell.c (rb_shell_set_rating_impl): 
15313         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
15314         (info_available_cb): 
15315         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
15316         (rb_station_properties_dialog_sync_entries): 
15317         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
15319         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
15320         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
15321         
15322 2005-08-29  Colin Walters  <walters@verbum.org>
15324         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
15326         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
15327         linking insanity.
15329         * widgets/rb-header.c (sanitize_string): New function, extracted
15330         from old info_url.  Be sure to always strip the string.
15331         (info_url): Rewrite to take artist/album, and generate a sane
15332         URL for them from last.fm, which is better than allmusic.com in
15333         that they support Rhythmbox, and have a *SANE* URL scheme.
15334         (artist_info_url, album_info_url): Delete.
15335         (rb_header_sync): Use info_url.
15337 2005-08-29  James Livingston  <jrl@ids.org.au>
15339         * sources/rb-source.c: (rb_source_search): Check to ensure that this
15340         is implemented before calling it. Many sources don't implement the
15341         method.
15343 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
15345         * data/glade/create-playlist.glade:  Cleanup the layout,
15346         and add a few more mnemonics.
15347         * shell/rb-playlist-manager.c:
15348         (rb_playlist_manager_cmd_load_playlist),
15349         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
15350         capitalization for window titles.
15351         * widgets/rb-query-creator-properties.c: Add mnemonics
15352         to checkbutton labels.
15353         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
15354         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
15356 2005-08-28  Colin Walters  <walters@verbum.org>
15358         * data/rhythmbox.schemas: Delete search_text for library
15359         and iradio; this isn't a persistent value anymore.
15360         Closes #313757.
15361         
15362         * sources/rb-source.h:
15363         * sources/rb-source.c: Delete impl_can_search.
15365         * sources/rb-iradio-source.c: Delete search_text usage.
15366         * sources/rb-library-source.c: Ditto.
15368         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
15369         search when source is set, and just do rb_source_search in
15370         rb_source_header_search_cb.
15372         * shell/rb-shell.c (rb_shell_append_source): Don't
15373         initiate search.
15375         * shell/Makefile.am: Don't dist dashboard.c.
15377 2005-08-28  Colin Walters  <walters@verbum.org>
15379         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
15380         
15381 2005-08-28  Colin Walters  <walters@verbum.org>
15383         * data/org.gnome.Rhythmbox.service.in: New.
15385         * data/Makefile.am: Install service file.
15387         * configure.ac: Define DBUS_SERVICES_DIR.
15389         * autogen.sh: Set ACLOCAL_FLAGS.
15391         * macros/acinclude.m4: New.
15392         
15393 2005-08-28  Colin Walters  <walters@verbum.org>
15395         Initial patch from Jonathan Matthew; closes 313684.
15397         * rhythmdb/rhythmdb-tree.c:
15398         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
15399         (save_entry): Return on error.
15400         (rhythmdb_tree_save): Handle error when saving the
15401         db; additionally, handle errors from fclose and unlink,
15402         and print error too.
15404 2005-08-28  Colin Walters  <walters@verbum.org>
15406         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
15407         extra _.
15408         
15409 2005-08-28  Colin Walters  <walters@verbum.org>
15411         * configure.ac: Change iPod support to --with-ipod;
15412           automatically enable it if we have HAL.  Try to
15413           support both HAL 0.5 and HAL 0.2.  Break out
15414           totem-plparser into its own check so later we
15415           can do version tests there too.
15416           Kill dashboard support.
15417         
15418         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
15419         to support HAL > 0.5, but preserve the old code for HAL < 0.5
15420         Closes #310017.
15421         
15422         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
15423         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
15425         * sources/Makefile.am: Also handle
15426         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
15428         * shell/dashboard.c: Delete; someone should just write a little
15429         python shim which lists on the D-BUS interface and writes the
15430         stuff to Dashboard.  Even better Dashboard should be ported
15431         to D-BUS and do the listening itself, perhaps on an abstract
15432         "org.gnome.MusicPlayer" interface or something.
15434         * shell/rb-shell.c: Kill dashboard support.
15436 2005-08-28  Colin Walters  <walters@verbum.org>
15438         * remote/dbus/rb-print-playing.py: New file.
15440 2005-08-28  Colin Walters  <walters@verbum.org>
15442         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
15443         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
15445         * shell/rb-shell-player.h:
15446         * shell/rb-shell-player.c: Add playing-uri-changed signal.
15447         * shell/rb-shell-player.xml: Export it.
15449         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
15450         (rb_shell_error_quark): New.
15452         * shell/rb-shell.h: Prototype.  Also add RBShellError.
15453         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
15454         
15455 2005-08-28  Colin Walters  <walters@verbum.org>
15457         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
15458         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
15459         bonobo_unlock.
15460         (rb_remote_bonobo_preinit): Lock setting moved here.
15461         (rb_remote_bonobo_init): From here.
15463         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
15464         Also invoke handle_cmdline in the right place.
15465         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
15466         GFunc.
15468 2005-08-28  James Livingston  <jrl@ids.org.au>
15470         * NEWS: keep the NEWS file up to date, so we don't have to do it all
15471         when 0.9.1 comes around.
15473 2005-08-28  James Livingston  <jrl@ids.org.au>
15475         * iradio/rb-new-station-dialog.c:
15476         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
15477         bug 314477.
15479 2005-08-28  James Livingston  <jrl@ids.org.au>
15481         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15483         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
15484         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
15485         is a song is longer than 60 minutes. Closes bug 313311.
15487 2005-08-27  James Livingston  <jrl@ids.org.au>
15489         * data/glade/create-playlist.glade:
15490         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
15491         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
15492         "minutes" as an option in the playlist limit menu.
15494         * rhythmdb/rhythmdb-query-model.c:
15495         (rhythmdb_query_model_class_init),
15496         (rhythmdb_query_model_set_property),
15497         (rhythmdb_query_model_get_property),
15498         (rhythmdb_query_model_update_limited_entries): Allow query models to
15499         have a time limit
15500         
15501         * shell/rb-playlist-manager.c:
15502         (rb_playlist_manager_set_automatic_playlist),
15503         (rb_playlist_manager_cmd_edit_automatic_playlist):
15504         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
15505         (rb_playlist_source_get_query), (impl_receive_drag),
15506         (rb_playlist_source_new_from_xml),
15507         (rb_playlist_source_save_to_xml),
15508         (rb_playlist_source_songs_sort_order_changed_cb),
15509         (rb_playlist_source_do_query):
15510         * sources/rb-playlist-source.h:
15511         * widgets/rb-query-creator.h: Allow playlists to be limited by time
15513 2005-08-27  James Livingston  <jrl@ids.org.au>
15515         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
15517         * configure.ac:
15518         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
15519         non-standard location. Closes bug 314640.
15521 2005-08-26  Colin Walters  <walters@verbum.org>
15522         
15523         Patch from Olivier Blin <oblin@mandriva.com>
15525         * widgets/eggnotificationbubble.c (draw_bubble): 
15526         Handle extreme-left case as well.
15527         
15528 2005-08-26  Colin Walters  <walters@verbum.org>
15530         * shell/rb-shell.c (idle_save_state): Don't do this.
15531         (rb_shell_construct): Remove idle calls to idle_save_state.
15532         We should save the playlists automatically when they're
15533         modified.
15534         (rb_shell_load_uri): Don't try to re-stat entry if it already
15535         exists.
15537         * shell/rb-shell-player.c: Keep track of entry we are attempting
15538         to play.
15539         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
15540         Don't double-free error.
15541         (rb_shell_player_play_entry): Signal errors.
15542         (rb_shell_player_entry_activated_cb): Ditto.
15543         (rb_shell_player_property_row_activated_cb): Ditto.
15544         (rb_shell_player_set_playing_source_internal): Unset attempted
15545         playing entry.
15546         (rb_shell_player_error): Refactor to be usable both sync and
15547         async.  Handle case where displayed entry differs from entry.
15548         (error_cb): Move GDK locking here.
15550         * shell/main.c (main): Drop most commandline arguments for D-BUS;
15551         people can just use dbus-send or python.  We only support focusing
15552         and loading files.
15553         (load_uri_args): New function, extracted from handle_cmdline.
15554         (dbus_load_uri, bonobo_load_uri): New functions.
15556         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
15557         appropriate.
15559         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
15560         * remote/dbus/rb-remote-dbus.c: Deleted.
15562         * player/rb-player-gst.c: Clear any pending idle handlers when we
15563         close the player.  Signal errors generated during open/play etc
15564         as synchronous errors.
15566         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
15567         
15568 2005-08-26  Colin Walters  <walters@verbum.org>
15570         * shell/rb-shell.c (rb_shell_present): Try harder.
15572 2005-08-26  Colin Walters  <walters@verbum.org>
15574         * shell/rb-shell.c (rb_shell_present): Try to handle
15575         GTK_MINOR_VERSION < 8.
15577 2005-08-26  James Livingston  <jrl@ids.org.au>
15579         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
15580         <pbrobinson@gmail.com>
15582 2005-08-26  Colin Walters  <walters@verbum.org>
15584         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
15586 2005-08-25  Colin Walters  <walters@verbum.org>
15588         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
15589         Delete.
15590         (rb_shell_player_do_next_with_rating): Move back into
15591         rb_shell_player_do_next.
15592         (rb_shell_player_entry_activated_cb): Remove call to
15593         rb_shell_player_auto_adjust_rating.
15594         (do_next_idle): Just call rb_shell_player_do_next.
15596         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
15598 2005-08-25  Colin Walters  <walters@verbum.org>
15600         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
15601         before gtk_window_present_with_time.
15602         
15603 2005-08-25  Colin Walters  <walters@verbum.org>
15605         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
15606         default.
15608         * shell/rb-shell.c (rb_shell_constructor): Adapted from
15609         rb_shell_construct.  This is so we only have to do g_object_new.
15610         (rb_shell_get_player): New function.
15611         (rb_shell_get_player_path): Ditto.
15612         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
15613         
15614         * shell/rb-shell.h: Prototype them.
15616         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
15617         export over D-BUS.
15618         (reemit_playing_signal): New function.
15619         (rb_shell_player_open_playlist_location): Use return values from
15620         rb_player_open, rb_player_close, etc. instead of checking "error".
15621         Return a gboolean on failure.
15622         (rb_shell_player_open_entry): Just open entry location, don't
15623         print to stderr.
15624         (rb_shell_player_play): Handle retval from rb_player_play.  Return
15625         a gboolean.
15626         (do_next_idle): Move logic for handling of end of playlist here.
15627         (rb_shell_player_set_playing_entry): Take a GError, return a
15628         gboolean.  Update to use gboolean return values.
15629         (rb_shell_player_do_previous): Delete lots of crazy duplicate
15630         logic.  Signal an error on end of playlist.  Also signal error if
15631         we're not playing.  Move heuristic for replaying the song into
15632         rb_shell_player_cmd_previous.
15633         (rb_shell_player_do_next_with_rating): Signal error on end of
15634         playlist.
15635         (rb_shell_player_do_next): Return errors.
15636         (rb_shell_player_cmd_previous): Heuristic for restarting song
15637         moved here; the idea is you generally only want that from the GUI.
15638         (rb_shell_player_cmd_play): Handle error.
15639         (rb_shell_player_playpause): Signal errors.
15640         (filter_mmkeys): Use rb_shell_player_cmd_previous and
15641         rb_shell_player_cmd_next in favor of the internal _do functions.
15642         
15643         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
15644         errors.  Update prototypes for above changes.
15646         * shell/main.c: More tightly integrate D-BUS; register various
15647         major singleton objects here.  Fix handle_cmdline so we only
15648         process extra arguments, not every argument.
15650         * shell/Makefile.am: Generate D-BUS glue headers.
15652         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
15653         into shell/main.c.  Now this file just acts as a client library.
15654         Not heavily tested.
15656         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
15657         Moved here.
15658         (rb_remote_bonobo_init): Move long CORBA rant here along with
15659         setting of lock functions.
15661         * player/rb-player-gst.c (rb_player_construct)
15662         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
15663         on error.
15665         * player/rb-player.h: Update prototypes.
15667         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
15668         rb-remote-bonobo.c.
15669         (rb_threads_init): Don't set gdk lock functions here.
15671 2005-08-25  James Livingston  <jrl@ids.org.au>
15673         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15675         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
15676         * lib/rb-tree-dnd.h:
15677         * rhythmdb/rhythmdb-property-model.c:
15678         (rhythmdb_property_model_class_init),
15679         (rhythmdb_property_model_drag_source_init),
15680         (rhythmdb_property_model_iter_parent),
15681         (rhythmdb_property_model_row_draggable),
15682         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
15683         (rhythmdb_property_model_drag_data_get),
15684         (rhythmdb_property_model_enable_drag):
15685         * rhythmdb/rhythmdb-property-model.h:
15686         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
15687         (rb_playlist_manager_set_property), (append_new_playlist_source),
15688         (rb_playlist_manager_save_playlists):
15689         * shell/rb-shell.c: (rb_shell_construct),
15690         (sourcelist_drag_received_cb):
15691         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15692         * sources/rb-playlist-source.c: (impl_receive_drag):
15693         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
15694         (rb_sourcelist_model_drag_dest_init),
15695         (rb_sourcelist_model_set_dnd_targets),
15696         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
15697         (rb_sourcelist_model_row_drop_position),
15698         (rb_sourcelist_model_get_drag_target),
15699         (rb_sourcelist_model_drag_data_get):
15700         * sources/rb-sourcelist-model.h:
15701         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
15702         (rb_sourcelist_init), (rb_sourcelist_get_property),
15703         (rb_sourcelist_selection_changed_cb):
15704         * sources/rb-sourcelist.h:
15705         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
15706         improve drag-n-drop support. Allow dragging of item from property
15707         views to the source list, to create new automatic playlists. Allow
15708         playlist re-ordering. Fix dragging from Rhythmbox to other
15709         applications. (Closes bug 147337)
15711 2005-08-24  Colin Walters  <walters@verbum.org>
15713         Patch from Olivier Blin <oblin@mandriva.com>
15715         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
15716         correctly in the case where the window is next to monitor edge.
15718 2005-08-24  James Livingston  <jrl@ids.org.au>
15720         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
15721         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
15722         a gobject property to get the query model that backs the playlist.
15724 2005-08-24  James Livingston  <jrl@ids.org.au>
15726         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
15727         (handle_playlist_entry_into_playlist_cb),
15728         (rb_playlist_manager_playlist_entries_changed): Disable the "create
15729         audio cd" menu item when a non-playlist source is selected, or the
15730         playlist is empty. (Closes Bug 313253)
15732 2005-08-24  James Livingston  <jrl@ids.org.au>
15734         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
15735         Fix the playlist length checkso it doesn't report 0 for automatic
15736         playlists. This was stopping automati playlists being burnt to cd.
15738 2005-08-24  James Livingston  <jrl@ids.org.au>
15740         * configure.ac:
15741         * sources/rb-playlist-source-recorder.c: (burn_cd):
15742         * sources/rb-playlist-source.c:
15743         (rb_playlist_source_songs_sort_order_changed_cb):
15744         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
15745         more warnings that occur when compiling RPMs on Fedora.
15747 2005-08-24  James Livingston  <jrl@ids.org.au>
15749         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
15750         was stopping some distros gcc version compiling.
15752 2005-08-24  James Livingston  <jrl@ids.org.au>
15754         * NEWS:
15755         * data/glade/create-playlist.glade:
15756         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
15757         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
15758         (rhythmdb_query_free), (rhythmdb_query_serialize),
15759         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
15760         * rhythmdb/rhythmdb.h:
15761         * shell/rb-playlist-manager.c:
15762         (rb_playlist_manager_set_automatic_playlist),
15763         (rb_playlist_manager_cmd_edit_automatic_playlist):
15764         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
15765         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
15766         (impl_receive_drag), (rb_playlist_source_new_from_xml),
15767         (rb_playlist_source_save_to_xml),
15768         (rb_playlist_source_songs_sort_order_changed_cb),
15769         (rb_playlist_source_do_query):
15770         * sources/rb-playlist-source.h:
15771         * widgets/Makefile.am:
15772         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
15773         (rb_entry_view_set_sorting_order):
15774         * widgets/rb-query-creator-private.h:
15775         * widgets/rb-query-creator-properties.c:
15776         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
15777         (stringCriteriaGetWidgetData),
15778         (escapedStringCriteriaSetWidgetData),
15779         (escapedStringCriteriaGetWidgetData), (set_rating_score),
15780         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
15781         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
15782         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
15783         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
15784         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
15785         (relativeTimeCriteriaCreateWidget),
15786         (relativeTimeCriteriaSetWidgetData),
15787         (relativeTimeCriteriaGetWidgetData):
15788         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
15789         (rb_query_creator_class_init), (rb_query_creator_constructor),
15790         (rb_query_creator_dispose), (rb_query_creator_set_property),
15791         (rb_query_creator_get_property), (rb_query_creator_load_query),
15792         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
15793         (get_entry_for_property), (rb_query_creator_get_query),
15794         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
15795         (limit_toggled_cb), (lookup_row_by_widget),
15796         (remove_button_click_cb), (append_row),
15797         (get_property_index_from_proptype), (select_criteria_from_value),
15798         (property_option_menu_changed), (create_property_option_menu),
15799         (create_criteria_option_menu), (sort_option_menu_changed),
15800         (setup_sort_option_menu):
15801         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
15802         playlists. The two most notable improvements are 1) adding more
15803         properties to the query creator, making it much easier to add more in
15804         the future, and 2) allow playlists to be sorted, from the query editor
15805         if they gave limits, and by clicking on column headers if they don't.
15807         Files added: widgets/rb-query-creator-private.h,
15808         sources/rb-query-creator-properties.c
15810 2005-08-21  James Livingston  <jrl@ids.org.au>
15812         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
15813         error=NULL. This stops some crashes.
15815 2005-08-19  Colin Walters  <walters@verbum.org>
15817         Patch from Olivier Blin <oblin@mandriva.com>
15819         * widgets/eggnotificationbubble.c (force_window): Support top
15820         orientation.
15821         * widgets/eggnotificationbubble.h: Remove
15822         egg_notification_bubble_force_window from header.
15823         
15824 2005-08-18  James Livingston  <jrl@ids.org.au>
15826         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
15827         with the changes since then.
15829 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
15831         * shell/rb-shell-player.c: (rb_shell_player_init),
15832         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
15833         (rb_shell_player_volume_widget_changed_cb):
15834         * sources/rb-iradio-source.c:
15835         * sources/rb-library-source.c:
15836         * sources/rb-playlist-source.c:
15837         * widgets/Makefile.am:
15838         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
15839         (bacon_volume_button_class_init), (bacon_volume_button_init),
15840         (bacon_volume_button_dispose), (bacon_volume_button_new),
15841         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
15842         (bacon_volume_button_scroll), (bacon_volume_button_press),
15843         (cb_button_timeout), (cb_button_press), (cb_button_release),
15844         (bacon_volume_release_grab), (cb_dock_press),
15845         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
15846         (bacon_volume_scale_new), (bacon_volume_scale_press),
15847         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
15848         * widgets/bacon-volume.h:
15849         * widgets/rb-volume.c:
15850         * widgets/rb-volume.h:
15851           Use BaconVolumeButton (#300867).
15853 2005-08-17  James Livingston  <jrl@ids.org.au>
15855         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
15856         (rhythmdb_process_metadata_load): don't reset the First Seen time
15857         whenever we recheck the metadata.
15859 2005-08-17  James Livingston  <jrl@ids.org.au>
15861         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
15862         temporary workaround to stop crashes when trying to burn an empty
15863         playlist. Doesn't disable the menu item which is the better solution
15864         (Bug 313253).
15866 2005-08-15  James Livingston  <jrl@ids.org.au>
15868         * shell/rb-source-header.c: (rb_source_header_init),
15869         (rb_source_header_sync_control_state),
15870         (rb_source_header_search_activate_cb):
15871         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
15872         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
15873         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
15874         (rb_search_entry_init), (rb_search_entry_searching),
15875         (rb_search_entry_activate_cb):
15876         * widgets/rb-search-entry.h: Move focus to the entry view when user
15877         presses enter in the search box. Patch from Paolo Borelli
15878         <pborelli@katamail.com> (Closes bug 128110)
15880 2005-08-15  James Livingston  <jrl@ids.org.au>
15882         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
15883         (rb_playlist_manager_new_playlist):
15884         * shell/rb-playlist-manager.h:
15885         * shell/rb-shell.c: (rb_shell_construct),
15886         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
15887         the source list to be shown when a new playlist is created. (Closes
15888         bug 161935)
15890 2005-08-15  James Livingston  <jrl@ids.org.au>
15892         * widgets/rb-header.c: (rb_header_init),
15893         (rb_header_set_show_timeline): disable the seek slider, rather than
15894         hiding it, which more closely follows the HIG. (Closes bug 139102)
15896 2005-08-13  Colin Walters  <walters@verbum.org>
15898         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
15899         rb_shell_hidden_notify.
15900         (rb_shell_hidden_notify): Notify if the shell is hidden.
15901         (rb_shell_set_visibility_impl): Debug goo.
15903         * shell/rb-shell.h: Export rb_shell_hidden_notify.
15905         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
15906         when the user clicks on notification.
15908         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
15909         CD burn is complete.
15910         (rb_playlist_source_recorder_finalize): Unref shell.
15911         (rb_playlist_source_recorder_new): Take shell.
15913         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
15914         Pass shell to RBPlaylistSourceRecorder.
15915         
15916 2005-08-13  Colin Walters  <walters@verbum.org>
15918         * lib/rb-thread.c:
15919         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
15920           time to convert.
15922 2005-08-13  Colin Walters  <walters@verbum.org>
15924         * widgets/eggnotificationbubble.h:
15925         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
15926         * widgets/eggtrayicon.c:
15927         * widgets/eggtrayicon.h: Add notification API.
15928         * shell/rb-tray-icon.c:
15929         * shell/rb-tray-icon.h: Add notification API.
15930         * shell/rb-shell.c: Notify on song change.
15932 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15934         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
15935         Correct an inversion of two lines causing NULL to be unreffed
15937 ============ Version 0.9.0
15939 2005-08-10  Bastien Nocera  <hadess@hadess.net>
15941         * configure.ac: 0.9.0, whee!
15942         * NEWS: badly updated
15943         * remote/bonobo/Makefile.am:
15944         * remote/bonobo/rb-remote-bonobo.h:
15945         * shell/Makefile.am:
15946         * shell/main.c: make distcheck fixes