2006-10-24 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
blob4b7e83013d62f44717d39c22887773490cfcf60f
1 2006-10-24  James Livingston  <doclivingston@gmail.com>
3         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
5         * configure.ac: fix some typos and leftovers from disabled->enabled
6         changes. Fixes #364217
8 2006-10-23  William Jon McCann  <mccann@jhu.edu>
10         * shell/rb-source-header.c (rb_source_header_init):
11         Don't require source header cells to be homogeneous.
12         Patch from #359188
14 2006-10-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
16         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
17         Pause the pipeline while buffering.  Fixes #358290.
19 2006-10-23  Bastien Nocera  <hadess@hadess.net>
21         * configure.ac: update required libgpod version to avoid crashes
22         when starting up with an iPod connect (Closes: #352972)
23         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path),
24         (hal_udi_is_ipod): remove outdated ifdefs
26 2006-10-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
28         * plugins/Makefile.am:
29         * plugins/power-manager/rb-power-manager-plugin.c:
30         Don't try to build the power-manager plugin with dbus < 0.35.
32 2006-10-22  James Livingston  <doclivingston@gmail.com>
34         patch by: Ed Catmur  <ed@catmur.co.uk>
36         * plugins/artdisplay/Makefile.am:
37         * plugins/artdisplay/artdisplay/__init__.py:
38         * plugins/artdisplay/rhythmbox-missing-artwork.svg: display some
39         placeholder art when none is available, to avoid having the widget pop
40         in and out of existance.
42 2006-10-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
44         * plugins/lyrics/lyrics.py:
45         Set the lyrics window transient for the main window so it can
46         actually be seen in party mode.  Fixes #362981.
48 2006-10-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
50         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
51         * sources/rb-source.c: (rb_source_class_init),
52         (rb_source_can_show_properties), (rb_source_song_properties):
53         * sources/rb-source.h:
54         Only enable the 'properties' item in the 'music' menu if the selected
55         source implements the show_properties method.  Fixes #356485.
57 2006-10-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
59         * shell/rb-shell-player.c:
60         (rb_shell_player_property_row_activated_cb):
61         Take the entry to play from the play order, rather than grabbing the
62         first entry in the query model.  Fixes #362042.
64 2006-10-16  James Livingston  <doclivingston@gmail.com>
66         * shell/main.c: (main): save custom menu accelerators before exiting.
67         Fixed #362300
69 2006-10-13  Ryan P Skadberg  <skadz@stigmata.org>
71         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
72         I HATE adding this patch, but I'm sick of hitting Yes once
73         and hour.  Working around brain-dead podcasts.
75 2006-10-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
77         * plugins/lyrics/lyrics.py:
78         Disconnect the create-song-info handler when deactivated.
79         Fixes #361882.
81 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
83         * widgets/rb-search-entry.c: (rb_search_entry_changed_cb):
84         Reset the style when clearing the search text.  Fixes #361295.
86 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
88         * rhythmdb/rhythmdb-query-model.c:
89         (rhythmdb_query_model_entry_changed_cb):
90         Don't emit entry-prop-changed for hidden signals from chained query
91         models, as the model will also propagate the parent model's
92         entry-prop-changed signal.  Fixes mysteriously unreported crashes.
94 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
96         * sources/rb-ipod-source.c: (generate_ipod_filename):
97         * lib/rb-cut-and-paste-code.c: (rb_make_valid_utf8):
98         * lib/rb-cut-and-paste-code.h:
99         Move eel_make_valid_utf8 to lib/, make the replacement
100         character a parameter.
102         * rhythmdb/rhythmdb.c: (make_access_failed_error),
103         (rhythmdb_execute_multi_stat_info_cb),
104         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_load):
105         When constructing an error message that includes a URI, make sure the
106         URI is valid utf-8.  Fixes #353588.
108 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
110         * player/rb-recorder-gst.c: (rb_recorder_construct),
111         (acb_wave_time):
112         Add an extra audioconvert element to allow endianness conversion on
113         big-endian machines, and fix a few endianness issues in the .wav
114         reading code.  Fixes #355611.
116 2006-10-09  James Livingston  <doclivingston@gmail.com>
118         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
120         * widgets/eggtrayicon.c: (egg_tray_icon_notify): work around a
121         libnotify 0.3.0 bug, as it doesn't handle escaped messages properly.
122         Fixes #357553.
124 2006-10-09  James Livingston  <doclivingston@gmail.com>
126         patch by: Luca Ferretti  <elle.uca@libero.it>
128         * data/glade/song-info-multiple.glade:
129         * data/glade/song-info.glade: Fix a few HIG issues.
131 2006-10-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
133         * plugins/audioscrobbler/rb-lastfm-source.c:
134         (rb_lastfm_source_class_init):
135         Return TRUE from impl_try_playlist so playback starts in a separate
136         thread.
138 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
140         * shell/main.c: (main):
141         Call bind_textdomain_codeset ("gstreamer-0.10", "UTF-8") so we get
142         UTF-8 GStreamer messages.  Fixes #357973.
144 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
146         * shell/rb-shell.c: (rb_shell_constructor):
147         Remove a line that accidentally slipped in from some other universe.
149 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
151         * plugins/audiocd/rb-audiocd-plugin.c: (_delete_cb):
152         Don't remove sources from the hash table while iterating it on
153         shutdown.  Fixes #359583.
155 2006-10-07  James Livingston  <doclivingston@gmail.com>
157         patch from Alex Lancaster  <alexl@users.sourceforge.net>
159         * shell/rb-shell.c: change the keybinding for "Plugins" to not
160         conflict with others. Fixes #355904
162 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
164         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
165         (rhythmdb_query_model_chain),
166         (rhythmdb_query_model_entry_changed_cb),
167         (rhythmdb_query_model_base_entry_prop_changed),
168         (rhythmdb_query_model_base_entry_removed):
169         For chained models, propagate the parent model's entry-prop-changed
170         signal rather than emitting one from the db entry-changed handler.
171         This ensures that when the change filters the entry out of the parent
172         model, property models attached to the child model get the entry
173         change signal before the post-entry-delete signal, so they can
174         decrement the refcount for the right property value.  Fixes #359083.
176 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
178         * plugins/audioscrobbler/Makefile.am:
179         define NULL
181 2006-10-07  James Livingston  <doclivingston@gmail.com>
183         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
184         (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
185         * plugins/audioscrobbler/rb-lastfm-source.c:
186         (rb_lastfm_source_get_playback_uri): work around GStreamer not support
187         hypens in URI schemes.
189 2006-10-06  William Jon McCann  <mccann@jhu.edu>
191         * plugins/iradio/Makefile.am:
192         * plugins/audioscrobbler/Makefile.am:
193         * plugins/cd-recorder/Makefile.am:
194         Don't clean all plugin_DATA.
195         Fixes #360210
197 2006-10-06  James Livingston  <doclivingston@gmail.com>
199         patch from Matt N  <fisxoj@gmail.com>
201         * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
202         (rb_player_gst_bus_cb):
203         * backends/rb-player.c: (rb_player_interface_init),
204         (_rb_player_emit_tick), (_rb_player_emit_event):
205         * backends/rb-player.h: let the backend emit named "events", for
206         things that the core shouldn't know about.
208         * rhythmdb/rhythmdb.h:
209         * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
210         support for streams containing album metadata.
212         * plugins/audioscrobbler/Makefile.am:
213         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
214         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
215         (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
216         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
217         * plugins/audioscrobbler/rb-lastfm-source.c:
218         * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
219         of last.fm streams. From #313049.
221 2006-10-06  James Livingston  <doclivingston@gmail.com>
223         * plugins/magnatune/magnatune/Makefile.am: add a file I missed
224         committing. Oops.
226 2006-10-06  James Livingston  <doclivingston@gmail.com>
228         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
230         * configure.ac:
231         * data/rhythmbox.schemas:
232         * plugins/Makefile.am:
233         * plugins/magnatune/Makefile.am:
234         * plugins/magnatune/magnatune-loading.glade:
235         * plugins/magnatune/magnatune-prefs.glade:
236         * plugins/magnatune/magnatune-purchase.glade:
237         * plugins/magnatune/magnatune.rb-plugin.desktop.in:
238         * plugins/magnatune/magnatune/BuyAlbumHandler.py:
239         * plugins/magnatune/magnatune/MagnatuneSource.py:
240         * plugins/magnatune/magnatune/TrackListHandler.py:
241         * plugins/magnatune/magnatune/__init__.py:
242         * plugins/magnatune/magnatune_circle_small.png:
243         * plugins/magnatune/magnatune_logo_color_small.png:
244         * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
245         play and download tracks from the MagnaTune online music store. From
246         #345783.
248 2006-10-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
250         * lib/rb-proxy-config.c: (rb_proxy_config_init),
251         (rb_proxy_config_dispose), (rb_proxy_config_finalize),
252         (check_auto_proxy_config), (get_proxy_config):
253         Don't crash when eel_gconf_get_string returns NULL.
254         Fixes #359974.
256 2006-10-04  James Livingston  <doclivingston@gmail.com>
258         patch by: Fryderyk Dziarmagowski  <freetz@gmx.net>
260         * plugins/audiocd/Makefile.am: fix the plugin when linking with
261         --as-needed. Fixes #358730
263 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
265         patch by:  William Jon McCann  <mccann@jhu.edu>
267         * sources/rb-iradio-source.c: (playing_source_changed_cb):
268         Fix some stupidity I introduced that caused crashes on shutdown.
269         Fixes #359181.
271 2006-10-02  William Jon McCann  <mccann@jhu.edu>
273         * plugins/audiocd/Makefile.am:
274         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
275         * plugins/iradio/.cvsignore:
276         * plugins/iradio/Makefile.am:
277         * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
278         (impl_deactivate):
279         * plugins/power-manager/.cvsignore:
280         Install missing iradio ui file.  Don't leak ui filename.
281         Fix iradio install dir. Fix audiocd install dir.
282         Remove unused code from audio cd plugin.
284         Fixes #359170
286 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
288         * sources/rb-ipod-source.c: (impl_move_to_trash):
289         Uncomment rhythmdb_entry_move_to_trash call that I accidentally
290         commented out while fixing bug 355235.  Oops.
292 2006-10-03  James Livingston  <doclivingston@gmail.com>
294         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
295         non-unicode warnings to debug statements, since they can occur with
296         slightly broken files.
298         * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
299         * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
300         iradio plugin is disabled and re-enabled.
302 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
304         * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
305         (rhythmdb_entry_podcast_post_get_type):
306         * rhythmdb/rhythmdb.h:
307         * tests/bench-rhythmdb-load.c: (main):
308         Add definitions for some common extra-metadata fields,
309         remove iradio entry type definition, add the concept of entry type
310         categories, define categories for the core entry types.
311         Categories are used to decide if an entry can be copied to a removable
312         device, if it should be reported to audioscrobbler, etc.
314         * shell/Makefile.am:
315         * shell/rb-shell-player.c: (rb_shell_player_class_init),
316         (rb_shell_player_constructor), (rb_shell_player_init),
317         (rb_shell_player_get_property), (open_location_thread),
318         (rb_shell_player_open_location),
319         (rb_shell_player_sync_with_source),
320         (rb_shell_player_set_playing_source_internal), (tick_cb):
321         * shell/rb-shell.c: (construct_widgets), (construct_sources),
322         (rb_shell_player_elapsed_changed_cb):
323         Remove iradio-specific code, use extra metadata fields for streaming
324         title and artist name.
326         * data/ui/rhythmbox-ui.xml:
327         Add a placeholder for 'new ...' menu items.
329         * Makefile.am:
330         * sources/Makefile.am:
331         * configure.ac:
332         * data/rhythmbox.schemas:
333         * plugins/Makefile.am:
334         * plugins/iradio/Makefile.am:
335         * plugins/iradio/iradio-ui.xml:
336         * plugins/iradio/iradio.rb-plugin.desktop.in:
337         * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
338         (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
339         (rb_iradio_plugin_class_init):
340         iradio plugin, enabled and hidden by default.
342         * plugins/audioscrobbler/rb-audioscrobbler.c:
343         (rb_audioscrobbler_song_changed_cb):
344         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
345         * sources/rb-daap-source.c: (rb_daap_source_new):
346         * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
347         Define entry type categories, and use them where appropriate.
349         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
350         (rb_iradio_source_constructor), (rb_iradio_source_new),
351         (impl_get_status), (impl_want_uri), (buffering_cb),
352         (check_entry_type), (streaming_title_request_cb),
353         (streaming_artist_request_cb), (extra_metadata_gather_cb),
354         (info_available_cb), (playing_entry_changed_cb),
355         (playing_source_changed_cb):
356         Move streaming metadata and buffering handling here from
357         rb-shell-player.c.  Emit extra-metadata notify signals when the streaming
358         title or artist changes, and handle request and gather signals for
359         those.
361         * widgets/rb-header.c: (rb_header_class_init),
362         (rb_header_set_property), (rb_header_get_property),
363         (rb_header_new), (append_and_free), (rb_header_sync):
364         * widgets/rb-header.h:
365         Rework to use streaming artist and title extra-metadata.
366         streaming-artist overrides entry artist, and streaming-title means
367         entry title is a stream name, displayed in brackets.
369         * doc/reference/Makefile.am:
370         * doc/reference/rhythmbox.types:
371         Remove iradio stuff from gtk-doc build.
373         Fixed #347097.
375 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
377         patch mostly by: Ed Catmur  <ed@catmur.co.uk>
379         * bindings/python/rhythmdb.defs:
380         * lib/rb-marshal.list:
381         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
382         (rhythmdb_emit_entry_deleted),
383         (rhythmdb_entry_extra_metadata_accumulator),
384         (rhythmdb_entry_request_extra_metadata),
385         (rhythmdb_emit_entry_extra_metadata_notify),
386         (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
387         * rhythmdb/rhythmdb.h:
388         Add signals for dealing with transient metadata outside the set stored
389         in RhythmDBEntry:
390         - entry_extra_metadata_request returns a value for the requested
391           metadata field
392         - entry_extra_metadata_notify notifies observers of a change to an
393           extra metadata field
394         - entry_extra_metadata_gather returns the values of all extra metadata
395           fields
397         * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
398         (rb_shell_player_extra_metadata_cb):
399         Sync the display on extra metadata changes and emit dbus signals when
400         we can marshal the value.
402         * shell/rb-shell.c: (rb_shell_get_song_properties):
403         Implement rb_shell_song_get_properties using
404         rhythmdb_entry_gather_metadata.
406         * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
407         (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
408         * configure.ac:
409         Add GValue marshaller for python (until bug 351072 is fixed)
411         From #345592.
413 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
415         * configure.ac:
416         * data/rhythmbox.schemas:
417         * plugins/Makefile.am:
418         * plugins/power-manager/Makefile.am:
419         * plugins/power-manager/power-manager.rb-plugin.desktop.in:
420         * plugins/power-manager/rb-power-manager-plugin.c:
421         (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
422         (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
423         (playing_changed_cb), (impl_activate), (impl_deactivate):
424         gnome-power-manager integration: inhibit suspend while playing.
425         Fixes #344979.
427 2006-10-02  James Livingston  <doclivingston@gmail.com>
429         update by: Aloriel  <jorge.gonzalez.gonzalez@hispalinux.es>
430         and Alex Lancaster  <alexl@users.sourceforge.net>
432         * help/C/rhythmbox.xml: fix some mispellings and grammer.
433         Fixes #353143, #353146 and #353147.
435 ============ Version 0.9.6
437 2006-10-01  James Livingston  <doclivingston@gmail.com>
439         * configure.ac: bump version to 0.9.6. enable tag-writing and
440         ipod-writing by default
442         * NEWS: update NEWS
444 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
446         patch by:  William Jon McCann  <mccann@jhu.edu>
448         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
449         Use a local GError in case no error pointer pointer is passed in.
450         From bug #358396.
452 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
454         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
455         Don't reference members of freed structures.
457 2006-09-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
459         patch by:  William Jon McCann  <mccann@jhu.edu>
461         * player/rb-recorder-gst.c: (rb_recorder_burn):
462         Drop GDK lock before entering n-c-b.  Fixes #353894?
464 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
466         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
467         (impl_activate):
468         Handle error/hangup conditions on the LIRC connection.  Fixes #358049.
470 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
472         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
473         Call lirc_init before lirc_readconfig so we don't crash if the user's
474         .lircrc file has any mode sections. Fixes #357419.
476 2006-09-24  James Livingston  <doclivingston@gmail.com>
478         * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
479         if we get called twice, as that can happen. Fixes #357214.
481 2006-09-24  James Livingston  <doclivingston@gmail.com>
483         * backends/rb-encoder.h: add "file access" error
485         * lib/rb-file-helpers.c: (rb_dot_dir):
486         * podcast/rb-podcast-manager.c:
487         (rb_podcast_manager_download_file_info_cb): remove directory creation
488         race condition.
490         * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
491         (create_parent_dirs), (rb_encoder_gst_encode): check result of
492         directory creation. Fixes #347743
494 2006-09-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
496         * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
497         Strip trailing whitespace
499 2006-09-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
501         * rhythmdb/Makefile.am:
502         * rhythmdb/rhythmdb-private.h:
503         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
504         (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
505         * rhythmdb/rhythmdb-tree.h:
506         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
507         (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
508         * rhythmdb/rhythmdb.h:
509         Rather than aborting, show an error and refuse to load the database when
510         it appears to come from the future.  From bug #350304.
512 2006-09-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
514         * bindings/python/rhythmdb.override:
515         Make entry_foreach usable.
517 2006-09-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
519         * sources/rb-podcast-source.c: (rb_podcast_source_init):
520         Scale the icon so it matches the rest of the sources.
521         Fixes #351410.
523 2006-09-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
525         * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
526         (rhythmdb_property_model_set_query_model_internal),
527         (rhythmdb_property_model_row_inserted_cb),
528         (rhythmdb_property_model_prop_changed_cb),
529         (rhythmdb_property_model_entry_removed_cb),
530         (rhythmdb_property_model_delete),
531         (rhythmdb_property_model_perform_sync):
532         Use the hash table to track hidden entries, rather than visible
533         entries.  Cuts memory usage fairly significantly.  From bug #347425.
535 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
537         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
538         Patch from Christian Becke to fix compilation with -O3, bug #355945.
540 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
542         * sources/rb-ipod-source.c: (add_rb_playlist),
543         (impl_move_to_trash), (impl_delete_thyself):
544         Delete ipod playlists when the ipod source is deleted.  Fixes #355235.
546         * sources/rb-sourcelist.c: (rb_sourcelist_remove):
547         Make sure we don't leave the sourcelist thinking a deleted source is
548         still playing.  Fixes nothing.
550 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
552         * shell/rb-shell.c:
553         Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
554         'Music->Import Folder' menu item for better icon theme coverage.
555         Fixes #354575.
557 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
559         * rhythmdb/rhythmdb-private.h:
560         * rhythmdb/rhythmdb.c: (rhythmdb_init),
561         (rhythmdb_start_action_thread), (rhythmdb_finalize),
562         (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
563         (rhythmdb_load), (rhythmdb_save_async):
564         Use a limited thread pool for adding URIs to the database.
565         Fixes #352494.
567 2006-09-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
569         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
570         Do something like the previous change, but for gstreamer 0.10
571         this time.  Oops.  Really fixes #349569.
573 2006-09-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
575         * backends/gstreamer/rb-player-gst.c: (error_cb):
576         Ignore 'internal data flow error' messages if we've already got an
577         error for the file.  Fixes #349569.
579 2006-09-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
581         * shell/rb-shell-clipboard.c:
582         (rb_shell_clipboard_playlist_deleted_cb):
583         Rebuild 'add to playlist' menu before removing actions for deleted
584         playlists, and don't unref the action, as we never had a reference on
585         it to begin with.  Fixes #354599.
587 2006-09-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
589         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
590         (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
591         Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
593 2006-09-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
595         * daapsharing/rb-daap-connection.c: (handle_playlists):
596         Reverse the list of playlists on the DAAP server so it ends up in the
597         right order.  Fixes #353926.
599 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
601         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
602         Fully process each code so the LIRC client returns to its normal state
603         when we're done.  Makes LIRC actually work properly for me.
605 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
607         patch by: Ed Catmur  <ed@catmur.co.uk>
609         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
610         (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
611         Don't show unused GdkWindows in SexyIconEntry.  Fixes #353671.
613 2006-09-02  William Jon McCann  <mccann@jhu.edu>
615         patch by: James Livingston <doclivingston@gmail.com>
617         * configure.ac:
618         * data/rhythmbox.schemas:
619         * metadata/Makefile.am:
620         * plugins/Makefile.am:
621         * plugins/audiocd/.cvsignore:
622         * plugins/audiocd/Makefile.am:
623         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
624         * plugins/audiocd/rb-audiocd-plugin.c:
625         (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
626         (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
627         (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
628         (end_cd_drive_monitor), (begin_cd_drive_monitor),
629         (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
630         (rb_audiocd_plugin_playing_uri_changed_cb),
631         (nautilus_burn_drive_get_device),
632         (rb_audiocd_plugin_source_deleted), (create_source_cb),
633         (impl_activate), (_delete_cb), (impl_deactivate):
634         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
635         (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
636         * shell/main.c: (main):
637         * shell/rb-removable-media-manager.c:
638         (rb_removable_media_manager_finalize),
639         (rb_removable_media_manager_load_media),
640         (rb_removable_media_manager_mount_volume),
641         (rb_removable_media_manager_scan):
642         * sources/Makefile.am:
643         * sources/rb-audiocd-source.c:
644         * sources/rb-audiocd-source.h:
645         Make auto CD support a plugin.
647         Fixes #349415.
649 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
651         * daapsharing/rb-daap-connection.c: (handle_song_listing):
652         Add a final rhythmdb_commit to make sure all songs from the share show
653         up in the daap source.  Fixes #353913.
655 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
657         * sources/rb-sourcelist-model.c:
658         (rb_sourcelist_model_drag_data_received),
659         (rb_sourcelist_model_row_drop_possible):
660         Re-enable dragging of a set of tracks to the source list to create a
661         new static playlist.  Fixes #353893.
663 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
665         * widgets/bacon-volume.c: (cb_button_timeout):
666         Actually drop the GDK lock, rather than returning while holding it.
667         Fixes #353895.
669 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
671         * plugins/generic-player/rb-generic-player-source.c:
672         (rb_generic_player_source_constructor),
673         (rb_generic_player_source_get_device_info), (impl_delete_thyself),
674         (rb_generic_player_source_load_songs), (load_playlist_file),
675         (default_load_playlists), (get_hal_context):
676         Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
677         Fixes #353483.
679 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
681         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
682         Canonicalise URIs received from gnome-vfs file monitor.
683         Fixes #353447.
685 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
687         * help/C/rhythmbox.xml: unbreak help build
688         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
689         Unbuffer the IO channel.  Fixes some weirdness for me.
691 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
693         * help/C/rhythmbox.xml:
694         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
695         (impl_activate), (impl_deactivate):
696         Add 'playpause' LIRC command.
698 2006-08-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
700         * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
701         (rb_source_finalize):
702         Remove idle callbacks in dispose, rather than finalize. Fixes crashes
703         when disconnecting generic audio players.
705 2006-08-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
707         patch by: Paolo Borelli  <pborelli@katamail.com>
709         * plugins/rb-python-plugin.c: (rb_python_object_get_type):
710         Fix a small leak.
712 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
714         * backends/gstreamer/rb-player-gst.c:
715         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
716         Don't actually disable the seek bar for non-seekable songs,
717         because we can't reliably tell yet.
719 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
721         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
722         (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
723         (db_entry_deleted_cb), (rb_daap_share_server_start),
724         (rb_daap_share_server_stop):
725         * rhythmdb/rhythmdb-private.h:
726         * rhythmdb/rhythmdb-tree.c: (save_entry):
727         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
728         (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
729         (rhythmdb_entry_get_ulong):
730         * rhythmdb/rhythmdb.h:
731         Give db entries a numeric ID property, replacing the daap server's
732         entry->id map.  From #347665.
734 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
736         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
737         * widgets/rb-header.c: (rb_header_class_init),
738         (rb_header_set_property), (rb_header_get_property),
739         (rb_header_set_playing_entry), (rb_header_sync),
740         (rb_header_sync_time):
741         * widgets/rb-header.h:
742         Add a 'seekable' property on RBHeader, and use it to make the seek bar
743         insensitive when the player backend tells us we can't seek in the
744         current song.  From #330410.
746 2006-08-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
748         * widgets/rb-song-info.c: (rb_song_info_update_buttons):
749         Don't try to unref previous/next entries if they aren't there.
750         Fixes #351806.
752 2006-08-15  James Livingston  <doclivingston@gmail.com>
754         * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
755         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
756         mountpoint into a RBRefString and compare equality of those, rather
757         than doign lots of strcmp()s.
759         * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
760         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
761         status notification as well as the visibility update in an idle
762         callback. Makes it take much less time to update after a volume
763         mount/unmount event.
765 2006-08-15  James Livingston  <doclivingston@gmail.com>
767         patch by: Christian Becke  <christianbecke@web.de>
769         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
770         multiple selections in the Import Folder dialog. Fixes #351414.
772 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
774         * shell/rb-shell.c: (construct_widgets):
775         * shell/rb-statusbar.c: (rb_statusbar_class_init),
776         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
777         (rb_statusbar_get_property), (rb_statusbar_new):
778         * shell/rb-statusbar.h:
779         Use the connect-proxy signal from the UI manager, which covers all
780         action groups, rather than just one.  Fixes #351280.
782 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
784         * widgets/rb-library-browser.c: (rebuild_child_model):
785         Fix query model reference counts (bug #349601).
787 2006-08-15  James Livingston  <doclivingston@gmail.com>
789         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
790         Error signals be non-recursive. Fixes a highly-unlikely issue that
791         could have caused #322972.
793 2006-08-14  James Livingston  <doclivingston@gmail.com>
795         * sources/rb-auto-playlist-source.c:
796         (rb_auto_playlist_source_init):
797         * sources/rb-static-playlist-source.c:
798         (rb_static_playlist_source_init):
800 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
802         * sources/rb-browser-source.c:
803         * sources/rb-import-errors-source.c:
804         * sources/rb-iradio-source.c:
805         * sources/rb-library-source.c:
806         * sources/rb-missing-files-source.c:
807         * sources/rb-play-queue-source.c:
808         * sources/rb-playlist-source.c:
809         * sources/rb-podcast-source.c:
810         * sources/rb-source.c:
811         Make entry-type a property on RBSource, rather than on most of its
812         subclasses.  Fixes #347288.
814 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
816         * remote/dbus/rb-client.c: (parse_pattern),
817         (create_rb_shell_proxies), (main):
818         Actually implement %ag and %aG (genre) for --print-playing-format
820 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
822         * lib/rb-debug.c: (rb_debug_real):
823         No point allocating a buffer for the timestamp when we can just put it
824         on the stack.
826 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
828         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
829         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
831 2006-08-11  James Livingston  <doclivingston@gmail.com>
833         * podcast/rb-podcast-manager.c:
834         (rb_podcast_manager_update_synctime): fix accidental commit in the
835         last, which caused a warning.
837 2006-08-11  James Livingston  <doclivingston@gmail.com>
839         * data/rhythmbox.schemas:
840         * podcast/rb-podcast-manager.c:
841         (rb_podcast_manager_update_synctime): change the schema's
842         update-inteval value from 0 to 1, which causes it to update on
843         startup, rather than never. Should fixs #343818.
845 2006-08-11  James Livingston  <doclivingston@gmail.com>
847         * configure.ac:
848         * data/Makefile.am:
849         - data/rhythmbox.desktop.in:
850         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
851         the @VERSION@ can be substituted in. Fix some issues with newer
852         bug-buddy versions. Fixes #348853.
854 2006-08-10  William Jon McCann  <mccann@jhu.edu>
856         * data/rhythmbox.schemas:
857         * plugins/Makefile.am:
858         * plugins/artdisplay/Makefile.am:
859         * plugins/audioscrobbler/Makefile.am:
860         * plugins/cd-recorder/Makefile.am:
861         * plugins/generic-player/Makefile.am:
862         * plugins/ipod/Makefile.am:
863         * plugins/lirc/Makefile.am:
864         * plugins/lyrics/Makefile.am:
865         * plugins/pythonconsole/Makefile.am:
866         * plugins/rb-module.c:
867         * plugins/rb-module.h:
868         * plugins/rb-plugin-manager.c: (configure_button_cb),
869         (plugin_manager_view_cell_cb), (cursor_changed_cb),
870         (plugin_manager_populate_lists), (plugin_manager_set_active),
871         (plugin_manager_toggle_active),
872         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
873         (rb_plugin_manager_finalize):
874         * plugins/rb-plugin-manager.h:
875         * plugins/rb-plugin.c: (rb_get_plugin_paths),
876         (rb_plugin_find_file):
877         * plugins/rb-plugin.h:
878         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
879         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
880         (rb_plugins_engine_init), (rb_plugin_info_free),
881         (load_plugin_module), (rb_plugins_engine_activate_plugin),
882         (rb_plugins_engine_deactivate_plugin),
883         (rb_plugins_engine_plugin_is_active),
884         (rb_plugins_engine_plugin_is_visible),
885         (rb_plugins_engine_plugin_is_configurable),
886         (rb_plugins_engine_configure_plugin),
887         (rb_plugins_engine_get_plugin_name),
888         (rb_plugins_engine_get_plugin_description),
889         (rb_plugins_engine_get_plugin_authors),
890         (rb_plugins_engine_get_plugin_website),
891         (rb_plugins_engine_get_plugin_copyright),
892         (rb_plugins_engine_get_plugin_icon):
893         * plugins/rb-plugins-engine.h:
894         * plugins/rb-python-module.c: (rb_python_module_init_python),
895         (rb_python_module_load), (rb_python_module_unload),
896         (rb_python_module_class_init), (rb_python_module_new),
897         (finalise_collect_cb), (rb_python_shutdown):
898         * plugins/rb-python-module.h:
899         * plugins/rb-python-plugin.c: (call_python_method),
900         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
901         (impl_is_configurable), (rb_python_object_get_type):
902         * plugins/rb-python-plugin.h:
903         * plugins/rb/Makefile.am:
905         Use TRUE/FALSE in schemas to make it easier to read.  Remove
906         spurious whitespace.  Don't use libgnome explicitly.  Replace the
907         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
908         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
909         special case loading of dirs.  Install plugins to subdirectors of
910         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
911         not DATADIR.  Fixes #350352
913 2006-08-10  James Livingston  <doclivingston@gmail.com>
915         * daapsharing/rb-daap-connection.c: (connection_connected),
916         (connection_disconnected), (connection_operation_done):
917         * daapsharing/rb-daap-share.c: (name_collision_cb):
918         * plugins/generic-player/rb-generic-player-source.c:
919         (rb_generic_player_source_load_playlists):
920         * podcast/rb-podcast-manager.c:
921         (rb_podcast_manager_download_entry),
922         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
923         (end_job), (rb_podcast_manager_event_loop):
924         * rhythmdb/rhythmdb-property-model.c:
925         (rhythmdb_property_model_perform_sync):
926         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
927         (rhythmdb_query_model_process_update), (idle_process_update),
928         (rhythmdb_query_model_reapply_query_cb):
929         * shell/rb-play-order.c: (sync_playing_entry_cb):
930         * shell/rb-removable-media-manager.c:
931         (rb_removable_media_manager_load_media):
932         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
933         (rb_shell_clipboard_sync),
934         (rb_shell_clipboard_entryview_changed_cb),
935         (rb_shell_clipboard_entries_changed_cb),
936         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
937         (rebuild_playlist_menu_idle),
938         (rb_shell_clipboard_playlist_added_cb):
939         * shell/rb-shell-player.c: (notify_playing_idle),
940         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
941         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
942         (rb_shell_quit):
943         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
944         * sources/rb-library-source.c: (add_child_sources_idle):
945         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
946         (burn_cd_idle):
947         * sources/rb-source.c: (update_visibility_idle):
948         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
949         (cb_button_press):
950         * widgets/rb-druid.c: (idle_set_sensitive):
951         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
952         take the GDK lock when we should be, from #348588
954 2006-08-09  James Livingston  <doclivingston@gmail.com>
956         * rhythmdb/rhythmdb-property-model.c:
957         (rhythmdb_property_model_get_path),
958         (rhythmdb_property_model_get_value),
959         (rhythmdb_property_model_iter_next): don't attempt to verify the
960         iterator if it's the All value, since it isn't valid. Fixes a
961         potential crasher.
963 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
965         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
966         (rb_podcast_manager_download_file_info_cb),
967         (rb_podcast_manager_abort_download), (download_info_free),
968         (download_info_new):
969         Use gnome_vfs_async_get_file_info to figure out the local filename for
970         a podcast episode, so we get the filename from the target of any
971         redirects, rather than the source.  When creating the GnomeVFSURI, hide
972         the query string, then append it later, to stop gnome-vfs from
973         converting 'http://' to 'http:/'.  If the local filename ends with the
974         query string, remove it.  Fixes #330766 and #321991.
976 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
978         * sources/rb-library-source.c: (impl_want_uri):
979         * sources/rb-static-playlist-source.c: (impl_want_uri):
980         Treat sftp:// URIs as likely indicators of songness.
982 2006-08-07  James Livingston  <doclivingston@gmail.com>
984         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
985         remote tracks with GStreamer 0.10, and remember their visibility like
986         local ones.
988 2006-08-07  James Livingston  <doclivingston@gmail.com>
990         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
991         apparently it's a borrowed reference. Should fix #347072.
993 2006-08-06  James Livingston  <doclivingston@gmail.com>
995         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
996         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
997         (rb_shuffle_play_order_get_previous),
998         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
999         (remove_from_history), (add_randomly_to_history),
1000         (rb_shuffle_sync_history_with_query_model),
1001         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
1002         (query_model_and_history_contents_match): remove the tentatative
1003         history stuff, which is from older code, like we did for -random a few
1004         weeks ago.
1006 2006-08-06  James Livingston  <doclivingston@gmail.com>
1008         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
1009         (rb_queue_play_order_get_previous):
1010         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
1011         (rb_random_play_order_go_next),
1012         (rb_random_play_order_get_previous), (rb_random_db_changed):
1013         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1014         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1015         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
1016         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
1017         (rb_shuffle_entry_removed),
1018         (query_model_and_history_contents_match):
1019         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
1020         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1021         (default_has_next), (default_has_previous),
1022         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
1023         various play orders, after reviewing the code. Should fix #349601.
1025 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1027         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
1028         Pass the items_per_notification parameter to
1029         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
1030         with some versions of python.
1032 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1034         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
1035         Don't try to draw the icon if the drawable area is too small.
1036         Fixes #349838.
1038 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
1040         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
1042         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
1044 2006-08-05  James Livingston  <doclivingston@gmail.com>
1046         * configure.ac: tell libtool not to check for C++/fortran/ etc
1047         compilers
1049         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
1050         watch, to fix some gconf warnings.
1052 2006-08-04  James Livingston  <doclivingston@gmail.com>
1054         patch by: William Jon McCann  <mccann@jhu.edu>
1056         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
1058 2006-08-04  James Livingston  <doclivingston@gmail.com>
1060         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
1061         actually fix #349722 this time
1063 2006-08-04  James Livingston  <doclivingston@gmail.com>
1065         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
1066         to seach for local art from http:// URIs, or those gnome-vfs doesn't
1067         know about. Fixes #348571.
1069 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
1071         various fixes for valgrind complaints:
1072         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
1073         (init_rb_tree_dnd_data):
1074           free the associated target list, too
1075         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
1076           initialize allocation.{x,y,width,height} correctly
1077         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
1078         (rb_entry_view_constructor):
1079           free strings when no longer needed
1081 2006-08-03  James Livingston  <doclivingston@gmail.com>
1083         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
1084         real GtkTreeModel not the filter. Fixes #349722
1086 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1088         * backends/gstreamer/rb-player-gst.c:
1089         Only use DAAP seek hacks for GStreamer 0.8 builds.
1091         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
1092         (rb_daap_src_open):
1093         * daapsharing/rb-daap-src.h:
1094         Implement normal GStreamer seeking for GStreamer 0.10 builds.
1096         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1097         (rb_daap_source_get_headers):
1098         * sources/rb-daap-source.h:
1099         Reimplement rb_daap_source_get_headers for the case where we've
1100         already got the byte offset.  Add a small hack to
1101         rb_daap_source_class_init to prevent the linker from dropping
1102         rb-daap-src.o entirely.
1104         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
1106 2006-08-02  James Livingston  <doclivingston@gmail.com>
1108         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
1109         (handle_song_listing), (handle_playlist_entries),
1110         (rb_daap_connection_dispose):
1111         * sources/rb-daap-source.c: (_add_location_to_playlist),
1112         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
1113         for playlist URIs, not pointless duplicate strings. From #347425.
1115 2006-08-02  James Livingston  <doclivingston@gmail.com>
1117         * data/rhythmbox.schemas:
1118         * lib/rb-preferences.h:
1119         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
1120         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
1121         (plugin_manager_set_active), (plugin_manager_toggle_active),
1122         (plugin_manager_get_selected_plugin), (name_search_cb),
1123         (plugin_manager_construct_tree), (rb_plugin_manager_new),
1124         (rb_plugin_manager_finalize):
1125         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
1126         (rb_plugins_engine_load_all), (rb_plugin_info_free),
1127         (rb_plugins_engine_plugin_is_visible),
1128         (rb_plugins_engine_plugin_visible_cb):
1129         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
1130         per-user plugins, and 2) hide plugins from the manager UI. From #349395
1132 2006-08-02  James Livingston  <doclivingston@gmail.com>
1134         * sources/rb-sourcelist-model.c:
1135         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
1136         drop on a source. Fixes #349580.
1138 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1140         * configure.ac:
1141         * daapsharing/rb-daap-dialog.c:
1142         * daapsharing/rb-daap-dialog.h:
1143         * shell/Makefile.am:
1144         * sources/Makefile.am:
1145         * sources/rb-daap-source.c: (connection_auth_cb),
1146         (rb_daap_source_connection_cb), (rb_daap_source_activate):
1147         Add gnome-keyring support for DAAP passwords and use
1148         gnome-password-dialog instead of our own.  
1149         Patch mostly by James Livingston.  Fixes bug #330346.
1151 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1153         * shell/rb-shell-player.c:
1154         (rb_shell_player_set_playing_source_internal),
1155         (rb_shell_player_sync_with_selected_source):
1156         Remove call to rb_source_have_url, as we never did anything with the
1157         result.
1159         * sources/rb-browser-source.c: (rb_browser_source_class_init):
1160         * sources/rb-import-errors-source.c:
1161         (rb_import_errors_source_class_init):
1162         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1163         (impl_song_properties), (impl_want_uri), (impl_add_uri):
1164         * sources/rb-library-source.c: (rb_library_source_class_init),
1165         (impl_want_uri), (impl_add_uri):
1166         * sources/rb-missing-files-source.c:
1167         (rb_missing_files_source_class_init):
1168         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
1169         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1170         (impl_want_uri), (impl_add_uri):
1171         * sources/rb-source.c: (rb_source_class_init),
1172         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
1173         * sources/rb-source.h:
1174         * sources/rb-static-playlist-source.c:
1175         (rb_static_playlist_source_class_init), (search_action_changed),
1176         (impl_want_uri):
1177         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
1178         When adding a URI, want_uri gets called for each source; the one that
1179         wants it most gets the URI passed to its add_uri method.
1180         
1181         * shell/rb-shell.h:
1182         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
1183         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
1184         (handle_playlist_entry_cb), (rb_shell_load_uri):
1185         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
1186         Use want_uri and add_uri to simplify and make generic
1187         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
1189         If a source that returns TRUE from try_playlist wants all the URIs in
1190         the playlist, give it the playlist URI instead.  This retains the
1191         existing behaviour for adding iradio playlists.
1193         * bindings/python/rb.defs: Update for above changes.
1195         From bug #347097.
1197 2006-07-31  James Livingston  <doclivingston@gmail.com>
1199         * data/Makefile.am:
1200         * data/generate-keys.sh: fix the build I broke with the last commit.
1201         Oops.
1203 2006-07-31  James Livingston  <doclivingston@gmail.com>
1205         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
1206         in a long time. Fixes #349179.
1208 2006-07-30  James Livingston  <doclivingston@gmail.com>
1210         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
1211         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1212         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
1214 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1216         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1217         Don't tell the browser the query is still pending when doing a subset
1218         search.  Fixes #348617 again.
1220 2006-07-30  James Livingston  <doclivingston@gmail.com>
1222         * bindings/python/rb.override: remove an extraneous _wrap_ from the
1223         override definition. Fixes #348893.
1225 2006-07-30  James Livingston  <doclivingston@gmail.com>
1227         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
1228         rb_error_dialog, as it's above this in the stack.
1230         * lib/rb-util.c: (rb_gvalue_compare):
1231         * lib/rb-util.h: change the return type to int, as we're returning
1232         -1/0/1
1234         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
1235         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1236         (rb_query_creator_set_sorting): minor leak fixes
1238 2006-07-28  James Livingston  <doclivingston@gmail.com>
1240         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1241         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
1242         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
1243         (get_or_create_genre), (remove_entry_from_album),
1244         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1245         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
1246         (rhythmdb_tree_entry_lookup_by_location),
1247         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1248         (rhythmdb_hash_tree_foreach),
1249         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
1250         threadsafe. Fix a nasty problem if the _foreach callback function
1251         caused the addition/removal of entries.
1253 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1255         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
1256         Clear selection before changing our idea of the model.  Fixes crashes
1257         on model changes while playing.
1259 2006-07-27  James Livingston  <doclivingston@gmail.com>
1261         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
1262         a missing rb_refstring_unref.
1264         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1265         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
1266         oops. should hopefully fix the crash reported on #347425.
1268 2006-07-27  James Livingston  <doclivingston@gmail.com>
1270         * backends/gstreamer/rb-encoder-gst.c:
1271         (get_profile_from_mime_type): fix encoding error issue, from #310774.
1273         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
1274         thread-safety issue.
1276 2006-07-27  James Livingston  <doclivingston@gmail.com>
1278         * rhythmdb/rb-refstring.c: (rb_refstring_find):
1279         * rhythmdb/rb-refstring.h: add a new function which returns the
1280         RBRefString that matches a string, but never creates a new one.
1282         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
1283         (monitor_entry_file), (rhythmdb_check_changed_file),
1284         (rhythmdb_directory_change_cb):
1285         * rhythmdb/rhythmdb-private.h:
1286         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1287         (unparent_entries), (free_unknown_entries),
1288         (rhythmdb_tree_parser_start_element),
1289         (rhythmdb_tree_parser_end_element), (save_entry),
1290         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
1291         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1292         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
1293         (rhythmdb_tree_entry_type_registered):
1294         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
1295         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
1296         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
1297         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1298         (rhythmdb_process_metadata_load),
1299         (rhythmdb_process_file_created_or_modified),
1300         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
1301         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
1302         (action_thread_main), (rhythmdb_entry_set_internal),
1303         (rhythmdb_entry_move_to_trash_set_error),
1304         (rhythmdb_entry_move_to_trash),
1305         (rhythmdb_entry_lookup_by_location),
1306         (rhythmdb_entry_lookup_by_location_refstring),
1307         (default_sync_metadata), (rhythmdb_entry_get_string),
1308         (rhythmdb_entry_get_refstring):
1309         * rhythmdb/rhythmdb.h:
1310         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
1311         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1312         (rb_playlist_source_row_deleted),
1313         (rb_playlist_source_entry_added_cb),
1314         (rb_playlist_source_location_in_map),
1315         (rb_playlist_source_add_to_map): Make the LOCATION field of
1316         RhythmDBEntry be a RBRefString instead, which reduces some of the
1317         memory-fragmentation on startup and saves RBStaticPlaylistSource
1318         duplicating all the strings.
1320 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1322         * rhythmdb/rhythmdb-query-model.c:
1323         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
1324         * rhythmdb/rhythmdb-query-model.h:
1325         Add function to copy contents from one query model to another,
1326         filtered by the destination model's query.
1328         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1329         Use the above to create a new query model for subset searches, rather
1330         than filtering the existing model. Fixes #348617.
1332 2006-07-25  James Livingston  <doclivingston@gmail.com>
1334         * rhythmdb/rhythmdb-query-model.c:
1335         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
1336         lost from static playlists. Yet again. Fixes #323095.
1338         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
1339         case for the above, so that we should know if a change will break it
1340         again.
1342 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1344         * data/rhythmbox.schemas: Fix for last commit.
1346         * podcast/rb-podcast-manager.c:
1347         (rb_podcast_manager_download_entry),
1348         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
1349         (rb_podcast_manager_db_entry_deleted_cb):
1350         * rhythmdb/rhythmdb-property-model.c:
1351         (rhythmdb_property_model_set_query_model_internal),
1352         (rhythmdb_property_model_set_property),
1353         (rhythmdb_property_model_finalize),
1354         (rhythmdb_property_model_drag_data_get):
1355         * rhythmdb/rhythmdb-query-model.c:
1356         (rhythmdb_query_model_set_query_internal),
1357         (rhythmdb_query_model_set_property),
1358         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
1359         * rhythmdb/rhythmdb-query-model.h:
1360         * sources/rb-browser-source.c: (rb_browser_source_dispose),
1361         (rb_browser_source_do_query):
1362         * sources/rb-import-errors-source.c:
1363         (rb_import_errors_source_constructor):
1364         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1365         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
1366         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
1367         (impl_search), (impl_get_status),
1368         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
1369         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
1370         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
1371         * sources/rb-missing-files-source.c:
1372         (rb_missing_files_source_constructor),
1373         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
1374         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
1375         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1376         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
1377         (rb_playlist_source_save_playlist),
1378         (rb_playlist_source_new_from_xml),
1379         (rb_playlist_source_save_to_xml),
1380         (rb_playlist_source_setup_entry_view),
1381         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
1382         (rb_playlist_source_get_query_model),
1383         (rb_playlist_source_mark_dirty),
1384         (rb_playlist_source_location_in_map),
1385         (rb_playlist_source_add_to_map):
1386         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
1387         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
1388         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
1389         (impl_delete), (rb_podcast_source_state_prefs_sync),
1390         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
1391         (impl_get_config_widget), (rb_podcast_source_add_feed),
1392         (rb_podcast_source_cmd_download_post),
1393         (rb_podcast_source_cmd_cancel_download),
1394         (rb_podcast_source_cmd_delete_feed),
1395         (rb_podcast_source_cmd_update_feed),
1396         (rb_podcast_source_cmd_update_all),
1397         (rb_podcast_source_cb_interval_changed_cb),
1398         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
1399         (rb_podcast_source_entry_activated_cb):
1400         * sources/rb-source.c: (rb_source_finalize),
1401         (rb_source_set_query_model_internal), (rb_source_set_property),
1402         (default_get_status):
1403         * sources/rb-static-playlist-source.c:
1404         (rb_static_playlist_source_dispose),
1405         (rb_static_playlist_source_finalize),
1406         (rb_static_playlist_source_constructor),
1407         (rb_static_playlist_source_do_query):
1408         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
1409         (rb_entry_view_set_shell_player_internal),
1410         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
1411         (rb_entry_view_set_model), (rb_entry_view_append_column),
1412         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
1413         (rb_entry_view_set_state):
1414         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
1415         (rb_library_browser_finalize), (rb_library_browser_new),
1416         (update_browser_property_visibilty), (view_selection_reset_cb),
1417         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
1418         (restore_selection), (rebuild_child_model),
1419         (rb_library_browser_set_selection), (rb_library_browser_set_model):
1420         * widgets/rb-property-view.c:
1421         (rb_property_view_set_model_internal),
1422         (rb_property_view_set_selection_mode), (rb_property_view_reset),
1423         (rb_property_view_get_model), (rb_property_view_set_model),
1424         (rb_property_view_get_num_properties),
1425         (rb_property_view_set_selection),
1426         (rb_property_view_append_column_custom),
1427         (rb_property_view_set_search_func):
1428         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
1429         From #347446
1431 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1433         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
1434         Work around a small n-c-b API change.
1436 2006-07-25  James Livingston  <doclivingston@gmail.com>
1438         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
1440         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
1441         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
1442         aborting entry-emission on finalise
1444 2006-07-25  James Livingston  <doclivingston@gmail.com>
1446         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
1447         warning when entry is NULL.
1449 2006-07-25  James Livingston  <doclivingston@gmail.com>
1451         * help/sv/.cvsignore:
1452         * lib/.cvsignore:
1453         * plugins/generic-player/.cvsignore:
1454         * remote/.cvsignore:
1455         * remote/dbus/.cvsignore:
1456         * shell/.cvsignore:
1457         * tests/.cvsignore: more .cvsignore updates
1459 2006-07-24  James Livingston  <doclivingston@gmail.com>
1461         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
1462         (transparent_expose_event), (make_transparent_again),
1463         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
1464         apply a patch for EggTrayIcon so that it handled transparent panels
1465         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
1466         Fixes #348208.
1468 2006-07-24  James Livingston  <doclivingston@gmail.com>
1470         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
1471         queries rather than taking ownership when parsing a subquery. Fixed a
1472         crash exposed by the recent leak fixes.
1474         * doc/reference/tmpl/disclosure-widget.sgml:
1475         * doc/reference/tmpl/rb-debug.sgml:
1476         * doc/reference/tmpl/rb-metadata.sgml:
1477         * doc/reference/tmpl/rb-play-order.sgml:
1478         * doc/reference/tmpl/rb-playlist-manager.sgml:
1479         * doc/reference/tmpl/rb-playlist-source.sgml:
1480         * doc/reference/tmpl/rb-shell-player.sgml:
1481         * doc/reference/tmpl/rb-shell.sgml:
1482         * doc/reference/tmpl/rb-song-display-box.sgml:
1483         * doc/reference/tmpl/rhythmbox-unused.sgml:
1484         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
1486 2006-07-24  James Livingston  <doclivingston@gmail.com>
1488         * lib/.cvsignore:
1489         * plugins/artdisplay/.cvsignore:
1490         * plugins/artdisplay/artdisplay/.cvsignore:
1491         * plugins/lyrics/.cvsignore:
1492         * plugins/pythonconsole/.cvsignore:
1493         * plugins/rb/.cvsignore: add/update various .cvsignore files
1495 2006-07-24  James Livingston  <doclivingston@gmail.com>
1497         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1498         (rb_refstring_ref): don't emit critical warnings when the refstring
1499         is NULL, as that happens often for podcast metadata.
1501         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
1502         missing rhythmdb_entry_ref call
1504 2006-07-23  William Jon McCann  <mccann@jhu.edu>
1506         * bindings/python/rb.override:
1507         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
1508         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1509         (playlist_row_inserted_cb):
1510         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
1511         * plugins/rb-plugin-manager.c:
1512         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
1513         (rb_podcast_manager_copy_post),
1514         (rb_podcast_manager_db_entry_deleted_cb),
1515         (rb_podcast_manager_insert_feed):
1516         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1517         (rb_refstring_ref), (rb_refstring_get_sort_key):
1518         * rhythmdb/rhythmdb-private.h:
1519         * rhythmdb/rhythmdb-property-model.c:
1520         (rhythmdb_property_model_set_property),
1521         (rhythmdb_property_model_get_property),
1522         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
1523         (rhythmdb_property_model_row_inserted_cb),
1524         (rhythmdb_property_model_prop_changed_cb),
1525         (rhythmdb_property_model_compare),
1526         (rhythmdb_property_model_insert),
1527         (rhythmdb_property_model_iter_from_string),
1528         (rhythmdb_property_model_get_column_type),
1529         (rhythmdb_property_model_get_iter),
1530         (rhythmdb_property_model_get_value),
1531         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
1532         (rhythmdb_property_model_enable_drag):
1533         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
1534         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
1535         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
1536         (rhythmdb_query_model_chain),
1537         (rhythmdb_query_model_entry_added_cb),
1538         (rhythmdb_query_model_entry_changed_cb),
1539         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
1540         (rhythmdb_query_model_add_entry),
1541         (rhythmdb_query_model_insert_into_main_list),
1542         (rhythmdb_query_model_insert_into_limited_list),
1543         (rhythmdb_query_model_remove_from_main_list),
1544         (rhythmdb_query_model_remove_from_limited_list),
1545         (rhythmdb_query_model_update_limited_entries),
1546         (rhythmdb_query_model_emit_reorder),
1547         (rhythmdb_query_model_do_reorder),
1548         (rhythmdb_query_model_do_insert),
1549         (rhythmdb_query_model_move_entry),
1550         (rhythmdb_query_model_remove_entry),
1551         (rhythmdb_query_model_entry_to_iter),
1552         (rhythmdb_query_model_iter_to_entry),
1553         (rhythmdb_query_model_get_previous_from_entry),
1554         (rhythmdb_query_model_row_draggable),
1555         (rhythmdb_query_model_drag_data_delete),
1556         (rhythmdb_query_model_drag_data_get),
1557         (rhythmdb_query_model_drag_data_received),
1558         (rhythmdb_query_model_row_drop_possible),
1559         (rhythmdb_query_model_row_drop_position),
1560         (rhythmdb_query_model_add_results),
1561         (rhythmdb_query_model_query_complete),
1562         (rhythmdb_query_model_get_column_type),
1563         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
1564         (rhythmdb_query_model_iter_nth_child),
1565         (apply_updated_entry_sequence),
1566         (rhythmdb_query_model_child_index_to_base_index),
1567         (rhythmdb_query_model_get_entry_index),
1568         (rhythmdb_query_model_base_row_inserted),
1569         (rhythmdb_query_model_base_row_deleted),
1570         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
1571         (rhythmdb_query_model_location_sort_func),
1572         (rhythmdb_query_model_title_sort_func),
1573         (rhythmdb_query_model_album_sort_func),
1574         (rhythmdb_query_model_artist_sort_func),
1575         (rhythmdb_query_model_track_sort_func),
1576         (rhythmdb_query_model_double_ceiling_sort_func),
1577         (rhythmdb_query_model_ulong_sort_func),
1578         (rhythmdb_query_model_date_sort_func),
1579         (rhythmdb_query_model_string_sort_func),
1580         (rhythmdb_query_model_within_limit):
1581         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
1582         (rhythmdb_tree_parser_start_element),
1583         (rhythmdb_tree_parser_end_element),
1584         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
1585         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
1586         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
1587         (save_entry_uint64), (save_entry_double), (save_entry),
1588         (set_entry_album), (rhythmdb_tree_entry_new),
1589         (get_genres_hash_for_type), (get_or_create_genre),
1590         (get_or_create_artist), (get_or_create_album), (remove_child),
1591         (remove_entry_from_album), (rhythmdb_tree_entry_set),
1592         (rhythmdb_tree_entry_delete), (remove_one_song),
1593         (rhythmdb_tree_entry_delete_by_type),
1594         (rhythmdb_tree_evaluate_query), (search_match_properties),
1595         (evaluate_conjunctive_subquery), (do_conjunction),
1596         (conjunctive_query_songs), (clone_remove_ptr_array_index),
1597         (conjunctive_query_albums), (conjunctive_query_artists),
1598         (conjunctive_query_genre), (conjunctive_query),
1599         (split_query_by_disjunctions), (do_query_recurse),
1600         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
1601         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1602         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
1603         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
1604         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
1605         (extract_gtype_from_enum_entry),
1606         (extract_nice_name_from_enum_entry), (rhythmdb_init),
1607         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
1608         (rhythmdb_event_free), (rhythmdb_finalize),
1609         (rhythmdb_set_property), (rhythmdb_get_property),
1610         (rhythmdb_thread_create), (free_entry_changes),
1611         (emit_entry_changed), (sync_entry_changed),
1612         (process_added_entries_cb), (process_deleted_entries_cb),
1613         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
1614         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
1615         (rhythmdb_entry_insert), (rhythmdb_entry_new),
1616         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
1617         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
1618         (rhythmdb_entry_is_editable), (set_props_from_metadata),
1619         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1620         (rhythmdb_process_metadata_load),
1621         (rhythmdb_process_file_created_or_modified),
1622         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
1623         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
1624         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
1625         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
1626         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
1627         (record_entry_change), (rhythmdb_entry_set_internal),
1628         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
1629         (rhythmdb_entry_move_to_trash_cb),
1630         (rhythmdb_entry_move_to_trash_set_error),
1631         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
1632         (rhythmdb_nice_elt_name_from_propid),
1633         (rhythmdb_propid_from_nice_elt_name),
1634         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
1635         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
1636         (rhythmdb_compute_status_normal), (default_sync_metadata),
1637         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
1638         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
1639         (podcast_get_playback_uri), (podcast_data_destroy),
1640         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
1641         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
1642         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
1643         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
1644         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
1645         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
1646         * rhythmdb/rhythmdb.h:
1647         * shell/rb-play-order-linear-loop.c:
1648         (rb_linear_play_order_loop_get_next),
1649         (rb_linear_play_order_loop_get_previous):
1650         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
1651         (rb_linear_play_order_get_previous):
1652         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
1653         * shell/rb-play-order-random.c: (get_query_model_contents):
1654         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
1655         (get_query_model_contents):
1656         * shell/rb-play-order.c: (rb_play_order_constructor),
1657         (rb_play_order_finalize),
1658         (rb_play_order_set_playing_entry_internal),
1659         (rb_play_order_set_property), (rb_play_order_new),
1660         (rb_play_order_get_player), (rb_play_order_get_source),
1661         (rb_play_order_get_db), (rb_play_order_get_query_model),
1662         (rb_play_order_player_is_playing),
1663         (rb_play_order_set_playing_entry),
1664         (rb_play_order_get_playing_entry),
1665         (rb_play_order_playing_source_changed),
1666         (rb_play_order_query_model_changed),
1667         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1668         (default_has_next), (default_has_previous),
1669         (sync_playing_entry_cb), (default_playing_entry_removed),
1670         (rb_play_order_has_next), (rb_play_order_get_next),
1671         (rb_play_order_go_next), (rb_play_order_has_previous),
1672         (rb_play_order_get_previous), (rb_play_order_go_previous),
1673         (rb_play_order_model_not_empty),
1674         (rb_play_order_update_have_next_previous):
1675         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
1676         (rb_playlist_manager_save_playlists),
1677         (rb_playlist_manager_set_automatic_playlist),
1678         (rb_playlist_manager_cmd_edit_automatic_playlist),
1679         (_queue_track_cb), (rb_playlist_manager_get_playlists),
1680         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
1681         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
1682         * shell/rb-shell-player.c: (rb_shell_player_constructor),
1683         (volume_pre_unmount_cb), (reemit_playing_signal),
1684         (notify_playing_idle), (rb_shell_player_open_playlist_url),
1685         (rb_shell_player_handle_eos_unlocked),
1686         (rb_shell_player_handle_eos), (rb_shell_player_init),
1687         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
1688         (playlist_entry_cb), (rb_shell_player_open_entry),
1689         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
1690         (rb_shell_player_set_play_order),
1691         (rb_shell_player_set_playback_state),
1692         (rb_shell_player_sync_play_order),
1693         (rb_shell_player_play_order_update_cb),
1694         (rb_shell_player_jump_to_current), (swap_playing_source),
1695         (rb_shell_player_do_previous), (rb_shell_player_do_next),
1696         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
1697         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
1698         (rb_shell_player_entry_activated_cb),
1699         (rb_shell_player_property_row_activated_cb),
1700         (rb_shell_player_entry_changed_cb),
1701         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
1702         (rb_shell_player_pause),
1703         (rb_shell_player_get_playing_song_duration),
1704         (rb_shell_player_error), (error_cb), (tick_cb),
1705         (info_available_cb), (buffering_cb),
1706         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
1707         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
1708         (rb_shell_jump_to_current):
1709         * sources/rb-auto-playlist-source.c:
1710         (rb_auto_playlist_source_finalize), (impl_receive_drag),
1711         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
1712         (rb_auto_playlist_source_get_query):
1713         * sources/rb-auto-playlist-source.h:
1714         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1715         * sources/rb-import-errors-source.c:
1716         (rb_import_errors_source_constructor):
1717         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
1718         * sources/rb-library-source.c: (filepath_parse_pattern):
1719         * sources/rb-missing-files-source.c:
1720         (rb_missing_files_source_constructor):
1721         * sources/rb-play-queue-source.c:
1722         (rb_play_queue_source_clear_queue),
1723         (rb_play_queue_source_track_info_cell_data_func):
1724         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
1725         (rb_playlist_source_get_property), (playlist_iter_func),
1726         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
1727         (rb_playlist_source_track_cell_data_func):
1728         * sources/rb-podcast-source.c: (construct_query_from_selection),
1729         (rb_podcast_source_post_status_cell_data_func),
1730         (rb_podcast_source_post_feed_cell_data_func),
1731         (rb_podcast_source_feed_title_search_func),
1732         (rb_podcast_source_post_date_cell_data_func):
1733         * sources/rb-source.c: (default_get_status),
1734         (rb_source_get_status), (rb_source_browser_toggled),
1735         (rb_source_update_play_statistics), (rb_source_search),
1736         (rb_source_get_config_widget), (default_add_to_queue),
1737         (rb_source_add_to_queue), (rb_source_receive_drag),
1738         (rb_source_gather_hash_keys):
1739         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
1740         (rb_sourcelist_model_is_row_visible),
1741         (rb_sourcelist_model_row_is_separator),
1742         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
1743         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
1744         (rb_sourcelist_model_drag_data_get):
1745         * sources/rb-sourcelist.c: (rb_sourcelist_append),
1746         (match_source_to_iter), (rb_sourcelist_source_to_iter),
1747         (rb_sourcelist_visible_source_to_iter),
1748         (rb_sourcelist_edit_source_name), (set_source_playing),
1749         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
1750         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
1751         (drop_received_cb), (row_activated_cb), (emit_show_popup),
1752         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
1753         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
1754         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
1755         (rb_static_playlist_source_add_location_internal),
1756         (rb_static_playlist_source_row_inserted):
1757         * widgets/rb-entry-view.c: (type_ahead_search_func),
1758         (rb_entry_view_finalize), (rb_entry_view_set_model),
1759         (rb_entry_view_playing_cell_data_func),
1760         (rb_entry_view_rating_cell_data_func),
1761         (rb_entry_view_long_cell_data_func),
1762         (rb_entry_view_play_count_cell_data_func),
1763         (rb_entry_view_duration_cell_data_func),
1764         (rb_entry_view_year_cell_data_func),
1765         (rb_entry_view_quality_cell_data_func),
1766         (rb_entry_view_location_cell_data_func),
1767         (rb_entry_view_string_cell_data_func),
1768         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
1769         (rb_entry_view_get_sorting_order),
1770         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
1771         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
1772         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
1773         (rb_entry_view_playing_song_changed), (harvest_entries),
1774         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
1775         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
1776         (set_column_visibility):
1777         * widgets/rb-entry-view.h:
1778         * widgets/rb-header.c: (rb_header_new),
1779         (rb_header_set_playing_entry), (rb_header_set_title):
1780         * widgets/rb-library-browser.c: (rebuild_child_model),
1781         (rb_library_browser_set_model):
1782         * widgets/rb-property-view.c:
1783         (rb_property_view_set_model_internal), (rb_property_view_finalize),
1784         (rb_property_view_set_property), (rb_property_view_get_property),
1785         (rb_property_view_reset), (rb_property_view_get_model),
1786         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
1787         (rb_property_view_button_press_cb):
1788         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1789         (rb_query_creator_get_property), (rb_query_creator_load_query),
1790         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
1791         (rb_query_creator_get_query), (rb_query_creator_get_limit),
1792         (rb_query_creator_get_sort_order), (limit_toggled_cb),
1793         (lookup_row_by_widget), (remove_button_click_cb),
1794         (add_button_click_cb), (create_property_option_menu):
1795         * widgets/rb-song-info.c: (rb_song_info_constructor),
1796         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
1797         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
1798         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
1799         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
1801 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1803         * shell/rb-shell-player.c: (rb_shell_player_class_init),
1804         (rb_shell_player_get_property):
1805         Add a property providing access to the player backend object.
1807 2006-07-23  James Livingston  <doclivingston@gmail.com>
1809         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
1810         (get_history), (rb_random_filter_history),
1811         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
1812         remove the tentative history, since it appears to be a remanent from
1813         older play order code. The only thing it was doing was using up
1814         CPU-time and memory. From #345857
1816 2006-07-23  James Livingston  <doclivingston@gmail.com>
1818         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
1820         * shell/main.c: (main):
1821         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
1822         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
1823         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
1824         (rb_playlist_manager_load_playlists),
1825         (rb_playlist_manager_save_data):
1826         * shell/rb-playlist-manager.h:
1827         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
1828         (rb_shell_get_property), (rb_shell_sync_state),
1829         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
1830         (construct_sources), (idle_handle_load_complete):
1831         * shell/rb-shell.h: Add a command-line option for changing the
1832         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
1834 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1836         * daapsharing/rb-daap-share.c: (databases_cb):
1837         Make sure we set status codes on HTTP responses.
1839 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1841         * configure.ac:
1842         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1843         (chunked_message_finished), (send_chunked_file),
1844         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
1845         Use GMappedFile to send local files to DAAP clients where possible.  
1846         iTunes can't seek properly in files sent using chunked transfer 
1847         encoding.  Also remove the useless bitrate calculation code, as we
1848         never even used the result anyway.  From #330410.
1850 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1852         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
1854         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
1855         Enable multiple selection for 'import file'.  Fixes #347478.
1857 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
1859         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
1860         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
1861         deprecated dbus_connection_disconnect () with dbus_connection_close ().
1862         Fixes #348098.
1864 2006-07-20  James Livingston  <doclivingston@gmail.com>
1866         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
1867         aren't NULL before calling strstr. Fixes #347998.
1869 2006-07-19  James Livingston  <doclivingston@gmail.com>
1871         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
1873         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
1874         MB that only have years. Fixes #347906.
1876 2006-07-19  James Livingston  <doclivingston@gmail.com>
1878         * rhythmdb/rhythmdb-private.h:
1879         * rhythmdb/rhythmdb.c: (rhythmdb_init),
1880         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
1881         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
1882         (rhythmdb_finalize), (timeout_rhythmdb_commit),
1883         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
1884         (rhythmdb_execute_stat), (queue_stat_uri),
1885         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
1886         (rhythmdb_load), (rhythmdb_entry_register_type),
1887         (rhythmdb_entry_register_type_alias): Keep track of outstanding
1888         asynchronous vfs operations, and cancel them when shutting down the
1889         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
1891         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
1892         (test_rhythmdb_shutdown): wait until the db has been finalised before
1893         continuing on to the next test.
1895 2006-07-19  James Livingston  <doclivingston@gmail.com>
1897         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
1898         right thing in the #ifdef. From #347832.
1900 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1902         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1903         Fix compile warning.
1905 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1907         * rhythmdb/rhythmdb-query-model.c:
1908         (rhythmdb_query_model_set_property),
1909         (rhythmdb_query_model_reapply_query_cb):
1910         Ignore old query == new query case.
1911         Fixes auto playlists with time-relative queries.
1913         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
1914         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
1915         (rhythmdb_query_to_string):
1916         * rhythmdb/rhythmdb.h:
1917         Add debug helper for printing queries in case someone needs it again.
1919 2006-07-18  James Livingston  <doclivingston@gmail.com>
1921         patch by: Ståle Lyngaas  <staale@lyngaas.com>
1922         * sources/rb-audiocd-source.c: store the MB track ids in the database.
1923         Fixes #347832
1925         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
1926         write then into files.
1928 2006-07-17  William Jon McCann  <mccann@jhu.edu>
1930         * daapsharing/rb-daap-connection.c:
1931         (rb_daap_connection_set_property):
1932         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
1933         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
1934         (add_playlist_to_mlcl), (databases_cb):
1935         * daapsharing/rb-daap-sharing.c: (create_share):
1936         * iradio/rb-new-station-dialog.c:
1937         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
1938         * iradio/rb-station-properties-dialog.c:
1939         (rb_station_properties_dialog_finalize),
1940         (rb_station_properties_dialog_set_property),
1941         (rb_station_properties_dialog_get_current_entry):
1942         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
1943         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
1944         * plugins/generic-player/rb-generic-player-source.c:
1945         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
1946         (handle_playlist_entry_cb):
1947         * plugins/generic-player/rb-nokia770-source.c:
1948         (rb_nokia770_source_new), (hal_udi_is_nokia770):
1949         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
1950         (visit_playlist_dirs), (hal_udi_is_psp):
1951         * podcast/rb-podcast-manager.c:
1952         * podcast/rb-podcast-properties-dialog.c:
1953         (rb_podcast_properties_dialog_finalize),
1954         (rb_podcast_properties_dialog_set_entry_view),
1955         (rb_podcast_properties_dialog_set_property):
1956         * rhythmdb/rhythmdb-property-model.c:
1957         * rhythmdb/rhythmdb-query-model.c:
1958         (rhythmdb_query_model_set_property),
1959         (rhythmdb_query_model_reapply_query_cb):
1960         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
1961         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
1962         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1963         (rhythmdb_event_free), (rhythmdb_shutdown),
1964         (rhythmdb_thread_create), (action_thread_main),
1965         (rhythmdb_do_full_query_async_parsed),
1966         (rhythmdb_do_full_query_internal):
1967         * shell/main.c: (main):
1968         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
1969         * shell/rb-play-order.c: (rb_play_order_finalize),
1970         (rb_play_order_set_player),
1971         (rb_play_order_set_playing_entry_internal),
1972         (rb_play_order_set_property),
1973         (rb_play_order_playing_source_changed),
1974         (rb_play_order_query_model_changed):
1975         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
1976         (rb_playlist_manager_set_source),
1977         (rb_playlist_manager_set_shell_internal),
1978         (rb_playlist_manager_set_property):
1979         * shell/rb-removable-media-manager.c:
1980         (rb_removable_media_manager_set_property),
1981         (rb_removable_media_manager_set_uimanager),
1982         (rb_removable_media_manager_cmd_eject_medium),
1983         (rb_removable_media_manager_cmd_copy_tracks):
1984         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
1985         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
1986         (rb_shell_clipboard_set),
1987         (rb_shell_clipboard_cmd_add_to_playlist_new),
1988         (rb_shell_clipboard_playlist_add_cb),
1989         (rb_shell_clipboard_playlist_renamed_cb),
1990         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
1991         (rebuild_playlist_menu):
1992         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
1993         (rb_shell_player_set_queue_source_internal),
1994         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
1995         (rb_shell_player_entry_activated_cb),
1996         (rb_shell_player_property_row_activated_cb),
1997         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
1998         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
1999         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2000         (rb_shell_finalize), (construct_widgets),
2001         (rb_shell_playing_from_queue_cb),
2002         (rb_shell_player_stream_song_changed_cb),
2003         (rb_shell_player_volume_changed_cb):
2004         * shell/rb-statusbar.c: (rb_statusbar_new):
2005         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
2006         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
2007         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2008         * sources/rb-auto-playlist-source.c:
2009         (rb_auto_playlist_source_class_init),
2010         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
2011         (rb_auto_playlist_source_constructor), (impl_receive_drag),
2012         (rb_auto_playlist_source_do_query),
2013         (rb_auto_playlist_source_set_query),
2014         (rb_auto_playlist_source_browser_changed_cb),
2015         (search_action_changed):
2016         * sources/rb-auto-playlist-source.h:
2017         * sources/rb-browser-source.c: (rb_browser_source_finalize),
2018         (search_action_changed), (rb_browser_source_constructor),
2019         (rb_browser_source_cmd_choose_artist), (impl_delete),
2020         (rb_browser_source_browser_changed_cb),
2021         (rb_browser_source_do_query):
2022         * sources/rb-daap-source.c: (rb_daap_source_dispose),
2023         (rb_daap_source_finalize), (rb_daap_source_class_init),
2024         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
2025         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2026         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2027         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
2028         (rb_daap_source_get_headers):
2029         * sources/rb-import-errors-source.c:
2030         (rb_import_errors_source_constructor),
2031         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
2032         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2033         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
2034         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
2035         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
2036         (impl_paste), (impl_receive_drag):
2037         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
2038         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
2039         (impl_song_properties):
2040         * sources/rb-library-source.c: (rb_library_source_constructor),
2041         (rb_library_source_new), (impl_paste),
2042         (rb_library_source_add_child_source):
2043         * sources/rb-missing-files-source.c: (impl_delete),
2044         (impl_get_status):
2045         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
2046         (rb_play_queue_source_class_init),
2047         (rb_play_queue_source_constructor):
2048         * sources/rb-playlist-source.c: (rb_playlist_source_init),
2049         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
2050         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
2051         (rb_playlist_source_new_from_xml),
2052         (rb_playlist_source_save_to_xml):
2053         * sources/rb-podcast-source.c: (rb_podcast_source_init),
2054         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
2055         (search_action_changed), (rb_podcast_source_constructor),
2056         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2057         (construct_query_from_selection),
2058         (rb_podcast_source_cmd_download_post),
2059         (rb_podcast_source_cmd_cancel_download),
2060         (rb_podcast_source_cmd_delete_feed),
2061         (rb_podcast_source_start_download_cb),
2062         (rb_podcast_source_finish_download_cb),
2063         (rb_podcast_source_feed_updates_avaliable_cb),
2064         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
2065         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2066         (impl_get_status):
2067         * sources/rb-removable-media-source.c: (impl_delete_thyself):
2068         * sources/rb-source.c: (rb_source_get_property),
2069         (default_add_to_queue), (default_move_to_trash),
2070         (_rb_source_show_popup), (rb_source_gather_selected_properties),
2071         (_rb_source_register_action_group):
2072         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2073         (rb_sourcelist_model_is_row_visible),
2074         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
2075         (rb_sourcelist_model_row_draggable),
2076         (rb_sourcelist_model_drag_data_get):
2077         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
2078         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
2079         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
2080         (visibility_notify_cb):
2081         * sources/rb-static-playlist-source.c:
2082         (rb_static_playlist_source_class_init),
2083         (rb_static_playlist_source_init),
2084         (rb_static_playlist_source_finalize),
2085         (rb_static_playlist_source_constructor), (impl_delete),
2086         (rb_static_playlist_source_browser_changed_cb),
2087         (rb_static_playlist_source_add_location_internal),
2088         (search_action_changed):
2089         * sources/rb-static-playlist-source.h:
2090         * widgets/rb-druid.c:
2091         * widgets/rb-entry-view.c:
2092         (rb_entry_view_set_shell_player_internal),
2093         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
2094         (rb_entry_view_get_property), (rb_entry_view_new),
2095         (rb_entry_view_button_press_cb):
2096         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
2097         (rb_library_browser_set_property),
2098         (rb_library_browser_get_property):
2099         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
2100         (get_entry_for_property), (get_property_index_from_proptype):
2101         * widgets/rb-song-info.c: (rb_song_info_constructor),
2102         (rb_song_info_finalize), (rb_song_info_set_source_internal),
2103         (rb_song_info_set_property), (rb_song_info_get_property):
2105         More leak and reference counting fixes.  From bug #347446.
2107 2006-07-17  James Livingston  <doclivingston@gmail.com>
2109         * sources/rb-auto-playlist-source.c:
2110         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
2111         rather than setting the base model, as that lets us not import all the
2112         entries from the base model. This fixes some issues whether the search
2113         box wasn't filting automatic playlists.
2115 2006-07-17  James Livingston  <doclivingston@gmail.com>
2117         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
2118         error, which caused blacklist creation to fail.
2120 2006-07-17  James Livingston  <doclivingston@gmail.com>
2122         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
2123         running with -n, because we don't start it then. Fixes a crash on
2124         exit.
2126 2006-07-17  James Livingston  <doclivingston@gmail.com>
2128         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2130         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
2131         Save not Open for the button. Fixes #345816
2133 2006-07-17  James Livingston  <doclivingston@gmail.com>
2135         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2137         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
2138         when track transfer is disabled. Fixes #347705
2140 2006-07-17  James Livingston  <doclivingston@gmail.com>
2142         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2144         * sources/rb-library-source.c: (impl_get_config_widget): fix build
2145         with track transfer disabled. Fixes #347705
2147 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2149         * rhythmdb/rhythmdb-query-model.c:
2150         (rhythmdb_query_model_set_property):
2151         * shell/main.c: (main):
2152         * shell/rb-shell-clipboard.c: (unset_source_internal),
2153         (rb_shell_clipboard_finalize),
2154         (rb_shell_clipboard_set_source_internal),
2155         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
2156         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2157         (rb_shell_player_set_db_internal),
2158         (rb_shell_player_set_queue_source_internal),
2159         (rb_shell_player_finalize), (rb_shell_player_set_property):
2160         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
2161         * sources/rb-auto-playlist-source.c:
2162         (rb_auto_playlist_source_constructor),
2163         (rb_auto_playlist_source_new_from_xml):
2164         * sources/rb-daap-source.c: (create_pixbufs):
2165         * sources/rb-ipod-source.c:
2166         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
2167         * sources/rb-library-source.c:
2168         (rb_library_source_add_child_source):
2169         * sources/rb-play-queue-source.c:
2170         (rb_play_queue_sync_playing_state),
2171         (rb_play_queue_source_track_info_cell_data_func):
2172         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
2173         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2174         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2175         (impl_can_add_to_queue), (impl_add_to_queue):
2176         * sources/rb-source.c: (rb_source_set_property):
2177         * sources/rb-sourcelist.c: (rb_sourcelist_append):
2178         * sources/rb-static-playlist-source.c:
2179         (rb_static_playlist_source_constructor),
2180         (rb_static_playlist_source_load_from_xml):
2181         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
2182         * widgets/rb-entry-view.c: (rb_entry_view_init),
2183         (rb_entry_view_finalize), (rb_entry_view_append_column),
2184         (rb_entry_view_constructor):
2185         * widgets/rb-song-info.c: (rb_song_info_set_property):
2186         Fix leaks.  From bug #347446.
2188 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2190         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
2191         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
2192         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
2193         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
2194         (add_decoding_pipeline), (profile_bin_find_encoder),
2195         (get_profile_from_mime_type), (extract_track), (transcode_track),
2196         (rb_encoder_gst_encode):
2197         * backends/gstreamer/rb-encoder-gst.h:
2198         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
2199         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
2200         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
2201         (rb_player_gst_construct):
2202         * backends/gstreamer/rb-player-gst.h:
2203         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
2204         * backends/rb-encoder.h:
2205         * backends/rb-player.c: (_rb_player_emit_tick):
2206         * backends/rb-player.h:
2207         * daapsharing/rb-daap-connection.c: (build_message),
2208         (actual_http_response_handler), (http_response_handler),
2209         (http_get), (entry_set_string_prop), (emit_progress_idle),
2210         (handle_server_info), (handle_database_info),
2211         (handle_song_listing), (handle_playlists),
2212         (handle_playlist_entries), (rb_daap_connection_new),
2213         (connected_cb), (rb_daap_connection_do_something),
2214         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
2215         (rb_daap_connection_get_property):
2216         * daapsharing/rb-daap-connection.h:
2217         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
2218         (rb_daap_collision_dialog_new_run):
2219         * daapsharing/rb-daap-dialog.h:
2220         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
2221         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
2222         (DigestToString), (rb_daap_hash_generate):
2223         * daapsharing/rb-daap-hash.h:
2224         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
2225         (resolve_cb), (browse_cb):
2226         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
2227         (resolve_cb), (rb_daap_mdns_browser_resolve),
2228         (rb_daap_mdns_browser_start), (resolver_free):
2229         * daapsharing/rb-daap-mdns-browser.h:
2230         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
2231         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
2232         (publish_cb):
2233         * daapsharing/rb-daap-mdns-publisher.h:
2234         * daapsharing/rb-daap-share.c: (name_collision_cb),
2235         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
2236         (message_set_from_rb_daap_structure), (content_codes_cb),
2237         (session_id_validate), (logout_cb), (update_cb),
2238         (add_entry_to_mlcl), (add_playlist_to_mlcl),
2239         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
2240         (rb_daap_share_server_start), (rb_daap_share_server_stop),
2241         (rb_daap_share_publish_start):
2242         * daapsharing/rb-daap-share.h:
2243         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
2244         (share_password_changed_cb), (rb_daap_sharing_shutdown):
2245         * daapsharing/rb-daap-sharing.h:
2246         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
2247         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
2248         (rb_daap_src_open):
2249         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
2250         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
2251         (rb_daap_structure_parse_container_buffer),
2252         (rb_daap_structure_parse), (gnode_find_node),
2253         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
2254         (print_rb_daap_item):
2255         * daapsharing/rb-daap-structure.h:
2256         * iradio/rb-new-station-dialog.c:
2257         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
2258         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
2259         (rb_new_station_dialog_text_changed):
2260         * iradio/rb-station-properties-dialog.c:
2261         (rb_station_properties_dialog_init),
2262         (rb_station_properties_dialog_new),
2263         (rb_station_properties_dialog_response_cb),
2264         (rb_station_properties_dialog_get_current_entry),
2265         (rb_station_properties_dialog_rated_cb),
2266         (rb_station_properties_dialog_update_rating),
2267         (rb_station_properties_dialog_update_playback_error),
2268         (rb_station_properties_dialog_sync_entries):
2269         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
2270         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
2271         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
2272         (rb_metadata_can_save), (rb_metadata_save):
2273         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
2274         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
2275         (_handle_message), (_new_connection), (main):
2276         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
2277         (rb_metadata_dbus_read_from_message):
2278         * metadata/rb-metadata-dbus.h:
2279         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
2280         (rb_add_id3_tagger), (rb_metadata_init),
2281         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
2282         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
2283         (rb_metadata_gst_new_decoded_pad_cb),
2284         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
2285         * metadata/sj-error.c: (sj_error_quark):
2286         * metadata/sj-error.h:
2287         * metadata/sj-metadata-musicbrainz.c:
2288         (sj_metadata_musicbrainz_instance_init),
2289         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
2290         (get_rdf), (lookup_cd):
2291         * metadata/sj-metadata.c: (sj_metadata_get_type):
2292         * metadata/sj-structures.c:
2293         * metadata/sj-structures.h:
2294         * metadata/test-metadata.c: (load_metadata_cb), (main):
2295         * podcast/rb-feed-podcast-properties-dialog.c:
2296         (rb_feed_podcast_properties_dialog_init),
2297         (rb_feed_podcast_properties_dialog_update_title):
2298         * podcast/rb-feed-podcast-properties-dialog.h:
2299         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
2300         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
2301         (rb_new_podcast_dialog_text_changed):
2302         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
2303         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
2304         (rb_podcast_manager_set_property),
2305         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
2306         (rb_podcast_manager_download_entry),
2307         (rb_podcast_manager_update_feeds),
2308         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
2309         (rb_podcast_manager_copy_post),
2310         (rb_podcast_manager_thread_parse_feed),
2311         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
2312         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
2313         (download_info_free), (download_info_new), (start_job),
2314         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
2315         (download_progress_cb), (download_progress_update_cb),
2316         (rb_podcast_manager_remove_feed),
2317         (rb_podcast_manager_db_entry_deleted_cb),
2318         (rb_podcast_manager_cancel_download),
2319         (rb_podcast_manager_update_synctime),
2320         (rb_podcast_manager_set_remove_files),
2321         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
2322         (rb_podcast_manager_abort_subscribe),
2323         (rb_podcast_manager_get_podcast_dir):
2324         * podcast/rb-podcast-manager.h:
2325         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
2326         (rb_validate_channel_propert), (rb_validate_item_propert),
2327         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
2328         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
2329         (rb_podcast_parse_date), (rb_podcast_parse_time),
2330         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
2331         * podcast/rb-podcast-parse.h:
2332         * podcast/rb-podcast-properties-dialog.c:
2333         (rb_podcast_properties_dialog_init),
2334         (rb_podcast_properties_dialog_get_current_entry),
2335         (rb_podcast_properties_dialog_update_title),
2336         (rb_podcast_properties_dialog_update_duration),
2337         (rb_podcast_properties_dialog_update_date):
2338         * podcast/rb-podcast-properties-dialog.h:
2339         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
2340         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
2341         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
2342         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
2343         (g_sequence_search), (g_sequence_set_aggregate_data),
2344         (g_sequence_node_update_fields), (g_sequence_node_rotate),
2345         (find_min), (g_sequence_node_find_by_pos),
2346         (g_sequence_node_find_closest), (g_sequence_node_free),
2347         (g_sequence_node_split), (g_sequence_node_insert_before),
2348         (g_sequence_node_get_length), (g_sequence_node_remove),
2349         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
2350         (g_sequence_calc_tree_height):
2351         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
2352         (rb_refstring_get):
2353         * rhythmdb/rb-refstring.h:
2354         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
2355         (rhythmdb_gda_init), (dump_model), (execute_query),
2356         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
2357         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
2358         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
2359         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
2360         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
2361         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
2362         * rhythmdb/rhythmdb-gda.h:
2363         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
2364         (rhythmdb_finalize_monitoring), (monitor_entry_file),
2365         (monitor_library_directory), (rhythmdb_check_changed_file),
2366         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
2367         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
2368         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
2369         * rhythmdb/rhythmdb-private.h:
2370         * rhythmdb/rhythmdb-property-model.c:
2371         (rhythmdb_property_model_set_property),
2372         (rhythmdb_property_model_row_inserted_cb),
2373         (rhythmdb_property_model_prop_changed_cb),
2374         (rhythmdb_property_model_compare),
2375         (rhythmdb_property_model_get_value),
2376         (rhythmdb_property_model_iter_nth_child),
2377         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
2378         (rhythmdb_property_model_drag_data_get),
2379         (rhythmdb_property_model_enable_drag),
2380         (rhythmdb_property_model_column_get_type):
2381         * rhythmdb/rhythmdb-property-model.h:
2382         * rhythmdb/rhythmdb-query-model.c:
2383         (rhythmdb_query_model_class_init),
2384         (rhythmdb_query_model_set_property),
2385         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
2386         (rhythmdb_query_model_has_pending_changes),
2387         (rhythmdb_query_model_entry_changed_cb),
2388         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2389         (rhythmdb_query_model_add_entry),
2390         (rhythmdb_query_model_remove_from_main_list),
2391         (rhythmdb_query_model_remove_entry),
2392         (rhythmdb_query_model_drag_data_received),
2393         (rhythmdb_query_model_row_drop_possible),
2394         (rhythmdb_query_model_compute_status_normal),
2395         (rhythmdb_query_model_set_sort_order),
2396         (rhythmdb_query_model_get_entry_index),
2397         (rhythmdb_query_model_base_row_inserted),
2398         (rhythmdb_query_model_base_row_deleted),
2399         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2400         (rhythmdb_query_model_date_sort_func),
2401         (rhythmdb_query_model_within_limit):
2402         * rhythmdb/rhythmdb-query-model.h:
2403         * rhythmdb/rhythmdb-query-results.c:
2404         (rhythmdb_query_results_query_complete):
2405         * rhythmdb/rhythmdb-query-results.h:
2406         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
2407         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
2408         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
2409         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
2410         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
2411         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
2412         (rhythmdb_tree_parser_start_element),
2413         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
2414         (save_entry), (save_entry_type), (save_unknown_entry_type),
2415         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
2416         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
2417         (get_or_create_genre), (remove_entry_from_album),
2418         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2419         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
2420         (search_match_properties), (evaluate_conjunctive_subquery),
2421         (clone_remove_ptr_array_index), (conjunctive_query_albums),
2422         (conjunctive_query_artists), (conjunctive_query_genre),
2423         (conjunctive_query), (split_query_by_disjunctions),
2424         (do_query_recurse), (rhythmdb_tree_entry_foreach),
2425         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2426         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
2427         (rhythmdb_hash_tree_foreach),
2428         (rhythmdb_tree_entry_type_registered):
2429         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
2430         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
2431         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2432         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2433         (rhythmdb_shutdown), (rhythmdb_finalize),
2434         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
2435         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2436         (rhythmdb_entry_example_new),
2437         (set_metadata_string_default_unknown), (is_ghost_entry),
2438         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2439         (rhythmdb_process_metadata_load),
2440         (rhythmdb_process_queued_entry_set_event),
2441         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
2442         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
2443         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
2444         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
2445         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
2446         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2447         (rhythmdb_entry_delete_by_type),
2448         (rhythmdb_propid_from_nice_elt_name),
2449         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
2450         (rhythmdb_compute_status_normal),
2451         (rhythmdb_entry_register_type_alias),
2452         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
2453         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
2454         (rhythmdb_entry_import_error_get_type),
2455         (rhythmdb_entry_podcast_post_get_type),
2456         (rhythmdb_entry_podcast_feed_get_type),
2457         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2458         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
2459         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
2460         * rhythmdb/rhythmdb.h:
2461         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
2462         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
2463         (rb_history_limit_size):
2464         * shell/rb-history.h:
2465         * shell/rb-play-order-linear-loop.c:
2466         (rb_linear_play_order_loop_get_next):
2467         * shell/rb-play-order-linear-loop.h:
2468         * shell/rb-play-order-linear.c:
2469         * shell/rb-play-order-linear.h:
2470         * shell/rb-play-order-queue.c:
2471         (rb_queue_play_order_playing_entry_removed):
2472         * shell/rb-play-order-queue.h:
2473         * shell/rb-play-order-random-by-age-and-rating.c:
2474         * shell/rb-play-order-random-by-age-and-rating.h:
2475         * shell/rb-play-order-random-by-age.c:
2476         (rb_random_by_age_get_entry_weight):
2477         * shell/rb-play-order-random-by-age.h:
2478         * shell/rb-play-order-random-by-rating.c:
2479         * shell/rb-play-order-random-by-rating.h:
2480         * shell/rb-play-order-random-equal-weights.c:
2481         * shell/rb-play-order-random-equal-weights.h:
2482         * shell/rb-play-order-random.c: (rb_random_filter_history),
2483         (rb_random_get_total_weight), (rb_random_play_order_get_next),
2484         (rb_random_db_changed), (rb_random_playing_entry_changed),
2485         (rb_random_db_entry_deleted):
2486         * shell/rb-play-order-shuffle.c: (remove_from_history),
2487         (add_randomly_to_history), (get_query_model_contents),
2488         (rb_shuffle_playing_entry_changed):
2489         * shell/rb-play-order-shuffle.h:
2490         * shell/rb-play-order.c: (rb_play_order_class_init),
2491         (rb_play_order_set_property),
2492         (rb_play_order_playing_source_changed),
2493         (rb_play_order_query_model_changed_cb),
2494         (rb_play_order_query_model_changed),
2495         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
2496         * shell/rb-play-order.h:
2497         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2498         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
2499         (rb_playlist_manager_set_property),
2500         (rb_playlist_manager_parse_file),
2501         (rb_playlist_manager_load_playlists),
2502         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
2503         (rb_playlist_manager_save_playlists),
2504         (rb_playlist_manager_new_playlist),
2505         (rb_playlist_manager_new_playlist_from_selection_data),
2506         (rb_playlist_manager_cmd_new_automatic_playlist),
2507         (rb_playlist_manager_cmd_edit_automatic_playlist),
2508         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
2509         (save_playlist_response_cb), (export_set_extension_cb),
2510         (filter_get_export_filter_label), (setup_format_menu),
2511         (rb_playlist_manager_cmd_save_playlist),
2512         (rb_playlist_manager_get_playlists),
2513         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
2514         (rb_playlist_manager_delete_playlist),
2515         (rb_playlist_manager_export_playlist):
2516         * shell/rb-playlist-manager.h:
2517         * shell/rb-removable-media-manager.c:
2518         (rb_removable_media_manager_class_init),
2519         (rb_removable_media_manager_dispose),
2520         (rb_removable_media_manager_finalize),
2521         (rb_removable_media_manager_set_property),
2522         (split_drive_from_cdda_uri),
2523         (rb_removable_media_manager_playing_uri_changed_cb),
2524         (rb_removable_media_manager_load_media),
2525         (rb_removable_media_manager_volume_mounted_cb),
2526         (remove_volume_by_source),
2527         (rb_removable_media_manager_source_deleted_cb),
2528         (rb_removable_media_manager_volume_unmounted_cb),
2529         (rb_removable_media_manager_mount_volume),
2530         (rb_removable_media_manager_set_uimanager),
2531         (rb_removable_media_manager_scan), (do_transfer),
2532         (rb_removable_media_manager_cmd_copy_tracks):
2533         * shell/rb-removable-media-manager.h:
2534         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
2535         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
2536         (rb_shell_clipboard_sync),
2537         (rb_shell_clipboard_idle_poll_deletions),
2538         (rb_shell_clipboard_cmd_add_to_playlist_new),
2539         (rb_shell_clipboard_playlist_add_cb),
2540         (rb_shell_clipboard_playlist_deleted_cb),
2541         (rb_shell_clipboard_playlist_renamed_cb),
2542         (rb_shell_clipboard_playlist_visible_cb),
2543         (rb_shell_clipboard_playlist_added_cb):
2544         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2545         (rb_shell_player_constructor), (volume_pre_unmount_cb),
2546         (rb_shell_player_init), (rb_shell_player_set_property),
2547         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
2548         (rb_shell_player_open_location),
2549         (rb_shell_player_set_playing_entry),
2550         (rb_shell_player_play_order_update_cb),
2551         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
2552         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
2553         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
2554         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
2555         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2556         (gconf_song_position_slider_visibility_changed),
2557         (rb_shell_player_entry_activated_cb),
2558         (rb_shell_player_property_row_activated_cb),
2559         (rb_shell_player_entry_changed_cb),
2560         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2561         (actually_set_playing_source),
2562         (rb_shell_player_set_playing_source_internal),
2563         (rb_shell_player_get_playing_song_duration), (eos_cb),
2564         (rb_shell_player_error), (error_cb), (info_available_cb),
2565         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
2566         (rb_shell_player_error_get_type):
2567         * shell/rb-shell-player.h:
2568         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
2569         (rb_shell_preferences_append_page),
2570         (share_check_button_toggled_cb),
2571         (password_check_button_toggled_cb), (add_daap_preferences),
2572         (rb_shell_preferences_column_check_changed_cb),
2573         (rb_shell_preferences_sync_column_button),
2574         (rb_shell_preferences_sync),
2575         (rb_shell_preferences_browser_views_activated_cb):
2576         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
2577         (rb_shell_set_property), (rb_shell_get_property),
2578         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
2579         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
2580         (rb_shell_get_visibility), (rb_shell_set_visibility),
2581         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
2582         (rb_shell_register_entry_type_for_source),
2583         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
2584         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
2585         (rb_shell_player_stream_song_changed_cb),
2586         (rb_shell_set_window_title),
2587         (rb_shell_view_smalldisplay_changed_cb),
2588         (rb_shell_view_queue_as_sidebar_changed_cb),
2589         (rb_shell_cmd_plugins), (add_to_library_response_cb),
2590         (rb_shell_cmd_add_folder_to_library),
2591         (rb_shell_cmd_add_file_to_library),
2592         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
2593         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
2594         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
2595         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
2596         (handle_playlist_entry_cb), (rb_shell_load_uri),
2597         (rb_shell_add_to_queue), (rb_shell_present),
2598         (rb_shell_get_song_properties), (rb_shell_set_song_property),
2599         (rb_shell_volume_widget_changed_cb),
2600         (rb_shell_player_volume_changed_cb),
2601         (rb_shell_ui_location_get_type):
2602         * shell/rb-shell.h:
2603         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
2604         (rb_source_header_init), (rb_source_header_set_source_internal),
2605         (rb_source_state_sync), (rb_source_header_clear_search),
2606         (rb_source_header_view_browser_changed_cb):
2607         * shell/rb-source-header.h:
2608         * shell/rb-statusbar.c: (rb_statusbar_construct),
2609         (rb_statusbar_init), (rb_statusbar_finalize),
2610         (rb_statusbar_set_property), (rb_statusbar_set_progress),
2611         (rb_statusbar_source_status_changed_cb):
2612         * shell/rb-statusbar.h:
2613         * shell/rb-tray-icon.c: (rb_tray_icon_init),
2614         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
2615         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
2616         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
2617         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
2618         (rb_audiocd_create_track_entry):
2619         * sources/rb-auto-playlist-source.c:
2620         (rb_auto_playlist_source_class_init),
2621         (rb_auto_playlist_source_constructor),
2622         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
2623         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
2624         (rb_auto_playlist_source_query_complete_cb),
2625         (rb_auto_playlist_source_do_query),
2626         (rb_auto_playlist_source_set_query),
2627         (rb_auto_playlist_source_browser_changed_cb),
2628         (search_action_to_prop):
2629         * sources/rb-auto-playlist-source.h:
2630         * sources/rb-browser-source.c: (rb_browser_source_init),
2631         (rb_browser_source_dispose), (search_action_to_prop),
2632         (rb_browser_source_constructor),
2633         (rb_browser_source_cmd_choose_genre),
2634         (rb_browser_source_cmd_choose_artist),
2635         (rb_browser_source_cmd_choose_album), (impl_search),
2636         (rb_browser_source_browser_changed_cb),
2637         (rb_browser_source_do_query):
2638         * sources/rb-browser-source.h:
2639         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2640         (rb_daap_source_init), (rb_daap_source_dispose),
2641         (rb_daap_source_set_property), (start_browsing),
2642         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2643         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2644         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
2645         (rb_daap_source_get_headers), (rb_daap_source_get_status):
2646         * sources/rb-daap-source.h:
2647         * sources/rb-import-errors-source.h:
2648         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2649         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
2650         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
2651         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
2652         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
2653         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
2654         (ipod_mkdir_with_parents), (build_ipod_dir_name),
2655         (generate_ipod_filename), (ipod_path_from_unix_path),
2656         (impl_delete_thyself):
2657         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2658         (rb_iradio_source_init), (rb_iradio_source_constructor),
2659         (rb_iradio_source_new), (guess_uri_scheme),
2660         (rb_iradio_source_add_station),
2661         (rb_iradio_source_async_update_play_statistics),
2662         (genre_selection_reset_cb), (rb_iradio_source_do_query),
2663         (stations_view_drag_data_received_cb),
2664         (rb_iradio_source_cmd_new_station):
2665         * sources/rb-iradio-source.h:
2666         * sources/rb-library-source.c: (rb_library_source_dispose),
2667         (rb_library_source_constructor),
2668         (rb_library_source_location_button_clicked_cb),
2669         (impl_get_config_widget), (rb_library_source_library_location_cb),
2670         (sanitize_path), (filepath_parse_pattern),
2671         (layout_example_label_update),
2672         (rb_library_source_layout_filename_changed), (build_filename),
2673         (impl_can_paste), (impl_paste),
2674         (rb_library_source_add_child_source),
2675         (rb_library_source_sync_child_sources):
2676         * sources/rb-library-source.h:
2677         * sources/rb-missing-files-source.h:
2678         * sources/rb-play-queue-source.c:
2679         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
2680         * sources/rb-play-queue-source.h:
2681         * sources/rb-playlist-source-recorder.c:
2682         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
2683         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
2684         (rb_playlist_source_recorder_init),
2685         (rb_playlist_source_recorder_new):
2686         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2687         (rb_playlist_source_save_playlist),
2688         (rb_playlist_source_entry_added_cb),
2689         (rb_playlist_source_set_query_model),
2690         (rb_playlist_source_add_to_map):
2691         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2692         (rb_podcast_source_init), (rb_podcast_source_dispose),
2693         (rb_podcast_source_finalize), (search_action_to_prop),
2694         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
2695         (rb_podcast_source_get_property), (rb_podcast_source_new),
2696         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2697         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
2698         (rb_podcast_source_show_browser), (construct_query_from_selection),
2699         (rb_podcast_source_do_query), (impl_get_config_widget),
2700         (rb_podcast_source_btn_file_change_cb),
2701         (posts_view_drag_data_received_cb),
2702         (rb_podcast_source_cmd_download_post),
2703         (rb_podcast_source_cmd_cancel_download),
2704         (rb_podcast_source_cmd_delete_feed),
2705         (rb_podcast_source_cmd_properties_feed),
2706         (rb_podcast_source_cmd_update_feed),
2707         (rb_podcast_source_post_status_cell_data_func),
2708         (rb_podcast_source_post_feed_cell_data_func),
2709         (rb_podcast_source_post_date_cell_data_func),
2710         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
2711         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
2712         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2713         (impl_get_status):
2714         * sources/rb-podcast-source.h:
2715         * sources/rb-removable-media-source.c:
2716         (rb_removable_media_source_constructor):
2717         * sources/rb-removable-media-source.h:
2718         * sources/rb-source.h:
2719         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
2720         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
2721         (rb_sourcelist_model_row_is_separator),
2722         (rb_sourcelist_model_drag_data_received),
2723         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
2724         (rb_sourcelist_model_row_drop_position),
2725         (rb_sourcelist_model_get_drag_target),
2726         (rb_sourcelist_model_row_draggable),
2727         (rb_sourcelist_model_drag_data_get),
2728         (rb_sourcelist_model_row_inserted_cb),
2729         (rb_sourcelist_model_get_group_path):
2730         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2731         (match_source_to_iter), (rb_sourcelist_source_to_iter),
2732         (rb_sourcelist_visible_source_to_iter),
2733         (rb_sourcelist_edit_source_name),
2734         (rb_sourcelist_selection_changed_cb), (button_press_cb),
2735         (key_release_cb), (name_notify_cb), (icon_notify_cb),
2736         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2737         * sources/rb-static-playlist-source.c:
2738         (rb_static_playlist_source_class_init),
2739         (rb_static_playlist_source_constructor),
2740         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
2741         (impl_search), (rb_static_playlist_source_do_query),
2742         (rb_static_playlist_source_browser_changed_cb),
2743         (impl_receive_drag), (impl_save_contents_to_xml),
2744         (rb_static_playlist_source_add_location_swapped),
2745         (search_action_to_prop):
2746         * sources/rb-static-playlist-source.h:
2747         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
2748         * widgets/eggtrayicon.c: (egg_tray_icon_init),
2749         (egg_tray_icon_get_orientation_property),
2750         (egg_tray_icon_send_manager_message),
2751         (egg_tray_icon_update_manager_window),
2752         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
2753         (egg_tray_icon_send_message), (egg_tray_icon_notify):
2754         * widgets/eggtrayicon.h:
2755         * widgets/rb-cell-renderer-pixbuf.c:
2756         (rb_cell_renderer_pixbuf_get_property),
2757         (rb_cell_renderer_pixbuf_set_property),
2758         (rb_cell_renderer_pixbuf_get_size),
2759         (rb_cell_renderer_pixbuf_render),
2760         (rb_cell_renderer_pixbuf_activate):
2761         * widgets/rb-cell-renderer-rating.c:
2762         (rb_cell_renderer_rating_class_init),
2763         (rb_cell_renderer_rating_get_property),
2764         (rb_cell_renderer_rating_set_property),
2765         (rb_cell_renderer_rating_get_size),
2766         (rb_cell_renderer_rating_render),
2767         (rb_cell_renderer_rating_activate):
2768         * widgets/rb-dialog.c:
2769         * widgets/rb-dialog.h:
2770         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
2771         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
2772         (rb_druid_page3_finish_cb):
2773         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
2774         (rb_entry_view_init), (rb_entry_view_set_property),
2775         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
2776         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
2777         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
2778         (rb_entry_view_set_sorting_order),
2779         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
2780         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2781         (rb_entry_view_playing_song_changed),
2782         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
2783         (rb_entry_view_scroll_to_entry), (set_column_visibility),
2784         (rb_entry_view_set_fixed_column_width),
2785         (rb_entry_view_get_time_date_column_sample),
2786         (rb_entry_view_state_get_type):
2787         * widgets/rb-entry-view.h:
2788         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
2789         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
2790         (changed_idle_callback), (rb_header_elapsed_changed_cb):
2791         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
2792         (update_browser_property_visibilty),
2793         (rb_library_browser_construct_query), (restore_selection),
2794         (rebuild_child_model), (rb_library_browser_set_selection),
2795         (rb_library_browser_set_model):
2796         * widgets/rb-library-browser.h:
2797         * widgets/rb-property-view.c: (rb_property_view_class_init),
2798         (rb_property_view_set_property), (rb_property_view_reset),
2799         (rb_property_view_get_model), (rb_property_view_constructor),
2800         (rb_property_view_set_selection),
2801         (rb_property_view_selection_changed_cb),
2802         (rb_property_view_button_press_cb),
2803         (rb_property_view_set_search_func):
2804         * widgets/rb-query-creator-private.h:
2805         * widgets/rb-query-creator-properties.c:
2806         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
2807         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
2808         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
2809         (relativeTimeCriteriaCreateWidget),
2810         (relativeTimeCriteriaSetWidgetData):
2811         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2812         (rb_query_creator_dispose), (rb_query_creator_load_query),
2813         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
2814         (get_property_index_from_proptype), (select_criteria_from_value),
2815         (create_property_option_menu), (create_criteria_option_menu),
2816         (sort_option_menu_changed), (setup_sort_option_menu):
2817         * widgets/rb-query-creator.h:
2818         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
2819         (rb_rating_render_stars):
2820         * widgets/rb-rating-helper.h:
2821         * widgets/rb-rating.c: (rb_rating_expose):
2822         * widgets/rb-rating.h:
2823         * widgets/rb-search-entry.c: (rb_search_entry_clear),
2824         (rb_search_entry_timeout_cb):
2825         * widgets/rb-search-entry.h:
2826         * widgets/rb-song-info.c: (rb_song_info_construct_single),
2827         (rb_song_info_constructor), (rb_song_info_new),
2828         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
2829         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
2830         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2831         (rb_song_info_query_model_changed_cb),
2832         (rb_song_info_sync_entries_multiple),
2833         (rb_song_info_sync_entry_single):
2834         Strip all trailing whitespace.  Fixes #344293.
2836 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
2838         * doc/reference/Makefile.am: Fix GTK Doc Build
2840 2006-07-13  James Livingston  <doclivingston@gmail.com>
2842         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
2844         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
2845         instead of the LOCATION, and don't try to get the directory listing
2846         for http URI schemes
2848         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
2849         invalid utf8 in the error message, since apparently it can happen.
2851 2006-07-12  William Jon McCann  <mccann@jhu.edu>
2853         * sources/rb-import-errors-source.c:
2854         (rb_import_errors_source_class_init),
2855         (rb_import_errors_source_init),
2856         (rb_import_errors_source_constructor),
2857         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
2858         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
2859         * sources/rb-missing-files-source.c:
2860         (rb_missing_files_source_class_init),
2861         (rb_missing_files_source_init),
2862         (rb_missing_files_source_constructor),
2863         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
2864         (rb_missing_files_source_songs_sort_order_changed_cb),
2865         (impl_get_status):
2866         * sources/rb-source.c: (rb_source_class_init),
2867         (rb_source_finalize), (update_visibility_idle),
2868         (queue_update_visibility), (rb_source_set_hidden_when_empty),
2869         (rb_source_set_property), (rb_source_get_property),
2870         (default_get_status), (rb_source_update_play_statistics),
2871         (default_add_to_queue), (_rb_source_show_popup),
2872         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
2873         (rb_source_gather_selected_properties),
2874         (_rb_source_register_action_group):
2875         * sources/rb-source.h:
2876         * sources/rb-sourcelist.c: (visibility_notify_cb):
2877         Don't use a fake model for import-errors and missing-files
2878         sources.  Add a new source property "hidden-when-empty".
2879         Update source visibility in an idle.  Clean up some whitespace.
2880         From bug #346800
2882 2006-07-12  James Livingston  <doclivingston@gmail.com>
2884         * bindings/python/rb.defs:
2885         * bindings/python/rb.override: bind rb_error_dialog
2887         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
2888         the current working directory for uninstalled plugins, and add the
2889         class name to the method name.
2891 2006-07-12  James Livingston  <doclivingston@gmail.com>
2893         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
2894         the sources EOF type if it's NULL. Fixes #346284.
2896 2006-07-12  James Livingston  <doclivingston@gmail.com>
2898         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
2899         I accidently committed. Nothing to see here, move along...
2901 2006-07-11  James Livingston  <doclivingston@gmail.com>
2903         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2904         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
2905         Unknown.
2907 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2909         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
2911 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2913         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
2914         Don't try to set mtime if we've deleted the entry.
2916 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2918         * bindings/python/rhythmdb.defs:
2919         * rhythmdb/rhythmdb.c:
2920         * rhythmdb/rhythmdb.h:
2921         * rhythmdb/rhythmdb-private.h:
2922         * rhythmdb/rhythmdb-query.c:
2923         Move data structures holding registered entry types inside the
2924         RhythmDB object, and add a vfunc called when new types are registered.
2925         Add a flag to RhythmDBEntryType specifying whether entries of the type
2926         should be saved to the on-disk database.
2928         * sources/rb-audiocd-source.c:
2929         * sources/rb-daap-source.c:
2930         * sources/rb-ipod-source.c:
2931         * plugins/generic-player/rb-generic-player-source.c:
2932         * plugins/generic-player/rb-nokia770-source.c:
2933         * plugins/generic-player/rb-psp-source.c:
2934         Adjust to the above changes.
2936         * rhythmdb/rhythmdb-tree.c:
2937         If the type for an entry hasn't been registered yet, store the entry's
2938         properties as-is, and convert them to a real entry when the type is
2939         registered.  If the type doesn't get registered, save the entry back
2940         to the database unmodified.  From #330226.
2942 2006-07-10  James Livingston  <doclivingston@gmail.com>
2944         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
2945         os.path.unlink to os.unlink, so removing stuff works.
2947 2006-07-10  James Livingston  <doclivingston@gmail.com>
2949         patch by: Ed Catmur  <ed@catmur.co.uk>
2950               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
2952         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2953         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
2954         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
2955         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
2956         internals of the cover database and Amazon lookup engine, and add
2957         support for loading art from the local file system. Fixes #345688.
2959         * plugins/rb/Coroutine.py:
2960         * plugins/rb/Makefile.am:
2961         * plugins/rb/__init__.py: Add the Coroutine class to the common python
2962         plugin classes.
2964 2006-07-10  James Livingston  <doclivingston@gmail.com>
2966         * tests/Makefile.am: don't run the benchmark when doing "make check"
2968         * po/POTFILES.in: more build fixes, from Matti Lindell
2969         <feenixx@hotmail.com>. Fixes #347049.
2972 2006-07-10  James Livingston  <doclivingston@gmail.com>
2974         * plugins/cd-recorder/Makefile.am: build fixes
2976         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
2977         attempt to change properties if we couldn't create an entry.
2979         * shell/rb-source-header.c: (rb_source_header_init),
2980         (rb_source_header_view_browser_changed_cb),
2981         (rb_source_header_sync_control_state):
2982         * shell/rb-tray-icon.c:
2983         * widgets/Makefile.am:
2984         * widgets/disclosure-widget.c:
2985         * widgets/disclosure-widget.h: remove the remanents of the disclosure
2986         widget, as it hasn't been used for a while.
2988 2006-07-09  William Jon McCann  <mccann@jhu.edu>
2990         * Makefile.am:
2991         * configure.ac:
2992         * data/ui/rhythmbox-ui.xml:
2993         * plugins/Makefile.am:
2994         * plugins/cd-recorder/.cvsignore:
2995         * plugins/cd-recorder/Makefile.am:
2996         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
2997         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
2998         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
2999         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
3000         (source_burn), (cmd_burn_source), (playlist_entries_changed),
3001         (playlist_row_inserted_cb), (update_source),
3002         (shell_selected_source_notify_cb), (impl_activate),
3003         (impl_deactivate):
3004         * shell/Makefile.am:
3005         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
3006         (rb_playlist_manager_cmd_save_playlist):
3007         * shell/rb-shell.c: (rb_shell_select_source):
3008         * sources/Makefile.am:
3009         * sources/rb-playlist-source-recorder.c:
3010         (rb_playlist_source_recorder_new):
3011         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3012         (rb_playlist_source_add_to_map):
3013         * sources/rb-playlist-source.h:
3014         Move cd burning into a plugin.  Fixes #344300.
3016 2006-07-10  James Livingston  <doclivingston@gmail.com>
3018         * lib/eel-gconf-extensions.c:
3019         * shell/rb-shell.c: remove some ununsed gnomeui includes
3021         * widgets/Makefile.am:
3022         * widgets/rb-song-display-box.c:
3023         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
3024         since it isn't acutally used anywhere. Fixes #346926
3026 2006-07-09  James Livingston  <doclivingston@gmail.com>
3028         * bindings/python/rb.defs:
3029         * bindings/python/rb.override:
3030         * lib/rb-debug.c: (rb_debug_real):
3031         * lib/rb-debug.h:
3032         * plugins/rb/__init__.py: don't print out an extra newline when
3033         diverting python print statements to RB's debug log.
3035 2006-07-09  James Livingston  <doclivingston@gmail.com>
3037         * rhythmdb/rhythmdb-property-model.c:
3038         (rhythmdb_property_model_drag_data_get):
3039         * sources/rb-sourcelist-model.c:
3040         (rb_sourcelist_model_row_draggable),
3041         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
3042         from the row reference is still valid. Fixes #346709.
3044 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3046         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
3048         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
3049         If all selected entries have the same rating, use that as the initial
3050         rating for the multiple song info dialog.  Fixes #345970.
3052 2006-07-09  James Livingston  <doclivingston@gmail.com>
3054         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
3055         to prevent #343345:
3056                 - don't ever scale to 1x1, just hide the image in that case
3057                 - don't fade when the window is minimised
3058                 - use the last-good allocation width, not the current one - as
3059                   it sometimes get weird values.
3061 2006-07-08  William Jon McCann  <mccann@jhu.edu>
3063         * data/ui/rhythmbox-ui.xml:
3064         * shell/rb-shell.c:
3065         Remove Import audio CD from menu.  Fixes #339732
3067 2006-07-08  James Livingston  <doclivingston@gmail.com>
3069         * metadata/test-metadata.c: (print_metadata_string),
3070         (load_metadata_cb): print out all the metadata we have read, not just
3071         a few.
3073         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
3074         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
3076 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3078         * plugins/lyrics/lyrics.py:
3079         Change the lyrics cache location to match Quod Libet's,
3080         and fix the '&' -> 'and' substitution to require spaces.
3082 2006-07-08  James Livingston  <doclivingston@gmail.com>
3084         * bindings/python/rb.defs:
3085         * bindings/python/rb.override: bind rb_debug_real to rb._debug
3087         * configure.ac:
3088         * plugins/Makefile.am:
3089         * plugins/rb-python-module.c: (rb_python_module_init_python):
3090         * plugins/rb/Makefile.am: add a place to put common python classes.
3091         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
3092         rb module/
3094         * plugins/lyrics/Makefile.am:
3095         * plugins/lyrics/Loader.py:
3096         * plugins/artdisplay/artdisplay/Makefile.am:
3097         * plugins/artdisplay/artdisplay/Loader.py:
3098         * plugins/rb/Loader.py: move the loader class to rb.Loader
3100         * plugins/rb/__init__.py: redirect stdout from python (e.g.
3101         "print ...") to rb_debug. error output (e.g. exceptions) are still
3102         printed on stderr.
3104         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3105         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3106         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
3107         instead of Loader.
3109         Fixes #346895.
3111 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3113         * shell/rb-shell-player.xml:
3114         * shell/rb-shell-player.h:
3115         Correct the details of the playing-song-property-changed signal.
3117 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3119         * lib/rb-marshal.list:
3120         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3121         (rb_shell_player_entry_changed_cb):
3122         * shell/rb-shell-player.h:
3123         * shell/rb-shell-player.xml:
3124         Emit a dbus signal when a property is changed on the playing entry.
3125         Fixes #332461.
3127 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3129         * rhythmdb/rhythmdb-private.h:
3130         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3131         Fix build break with gcc 4.1 by changing RBRefString pointers into
3132         gpointers.
3134 2006-07-07  James Livingston  <doclivingston@gmail.com>
3136         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
3137         remove an extraneous !, which caused it not to monitor folders in the
3138         library with no tracks in them. Fixes #346759.
3140 2006-07-07  James Livingston  <doclivingston@gmail.com>
3142         * rhythmdb/rhythmdb-private.h:
3143         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
3144         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
3145         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
3146         (rhythmdb_entry_get_string):
3147         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
3148         flags for the affected properties. _sync_mirrored will get run
3149         automatically when a dirty property is accessed, which improves
3150         performance a bit (especially during startup) as we don't need to sync
3151         every time they change. From #325215.
3153         * tests/bench-rhythmdb-load.c
3154         * tests/Makefile.am: add a RhythmDB loading benchmark.
3156 2006-07-06  James Livingston  <doclivingston@gmail.com>
3158         * bindings/python/rb.defs:
3159         * bindings/python/rb.override: some more fixes, so that
3160         python classes derived from RBSource work correctly.
3162 2006-07-06  James Livingston  <doclivingston@gmail.com>
3164         * configure.ac: bump pygtk requirements to 2.8, since we're already
3165         using some features of it, and weird things will happen if people are
3166         actually trying to use pygtk 2.6.
3168         * bindings/python/rb.override:
3169         * bindings/python/rhythmdb.defs:
3170         * bindings/python/rhythmdb.override: allow python to set
3171         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
3173         * sources/rb-browser-source.c: remove some left over member variables
3175 2006-07-06  James Livingston  <doclivingston@gmail.com>
3177         * rhythmdb/rhythmdb.c:
3178         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
3179         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
3180         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
3181         former is pointless (as rhythmdb already knows which it should use)
3182         and the latter doesn't seem useful at all, and possibly bad. From
3183         #330226.
3185         * bindings/python/rhythmdb.defs:
3186         * bindings/python/rhythmdb.override:
3187         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
3188         (handle_song_listing):
3189         * podcast/rb-podcast-manager.c:
3190         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
3191         (rb_podcast_manager_insert_feed):
3192         * sources/rb-audiocd-source.c: (entry_set_string_prop),
3193         (rb_audiocd_create_track_entry):
3194         * sources/rb-ipod-source.c: (entry_set_string_prop),
3195         (add_ipod_song_to_db):
3196         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
3197         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
3199 2006-07-05  James Livingston  <doclivingston@gmail.com>
3201         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
3202         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
3203         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
3204         totem-plparser gives us, or the file name if it doesn't give us
3205         anything. Set the default file name when saving too. Fixes #345261
3207 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3209         patch by: Ed Catmur  <ed@catmur.co.uk>
3211         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
3212         Skip all hidden directories, not just trash, and skip unreadable
3213         files.  Fixes #346322.
3215 2006-07-04  James Livingston  <doclivingston@gmail.com>
3217         * plugins/rb-module.h:
3218         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
3219         (rb_module_new):
3220         * plugins/rb-plugin.h:
3221         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
3222         (rb_plugin_finalise), (rb_plugin_set_property),
3223         (rb_plugin_get_property), (rb_plugin_activate),
3224         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
3225         (rb_plugin_find_file):
3226         * plugins/rb-plugins-engine.c: (load_plugin_module):
3227         * plugins/rb-python-module.c: (rb_python_module_new_object),
3228         (rb_python_module_new):
3229         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
3230         rb_plugin_find_file method for locating plugin-specific data. Fixes
3231         346473.
3233         * bindings/python/rb.defs:
3234         * plugins/Makefile.am:
3235         * plugins/generic-player/rb-generic-player-plugin.c:
3236         (create_source_cb):
3237         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
3239 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3241         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
3242         (rb_metadata_can_save), (rb_metadata_save):
3243         Protect the dbus connection with a mutex.
3245 2006-07-03  James Livingston  <doclivingston@gmail.com>
3247         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
3248         case of the parser/tagger not being able to be created.
3250 2006-07-03  James Livingston  <doclivingston@gmail.com>
3252         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3254         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
3255         window resizable, as it used to be. Fixes #345940.
3257 2006-07-01  James Livingston  <doclivingston@gmail.com>
3259         Patch from Ståle Lyngaas  <staale@lyngaas.com>
3261         * rhythmdb/rhythmdb.h:
3262         * rhythmdb/rhythmdb-private.h:
3263         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3264         (rhythmdb_tree_parser_end_element), (save_entry):
3265         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
3266         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
3267         (set_props_from_metadata), (rhythmdb_entry_set_internal),
3268         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
3269         MusicBrainz track IDs in the database, and bump the on-disk version
3270         number to trigger a metadata reload.
3272         * backends/gstreamer/rb-player-gst.c: (process_tag):
3273         * metadata/rb-metadata-common.c:
3274         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
3275         (rb_metadata_gst_field_to_gst_tag):
3276         * metadata/rb-metadata.h: grab MB track IDs and use them.
3278         * plugins/audioscrobbler/rb-audioscrobbler.c:
3279         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
3280         (rb_audioscrobbler_timeout_cb),
3281         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
3282         the other metadata. Fixes #343491.
3284 2006-06-30  James Livingston  <doclivingston@gmail.com>
3286         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
3287         method.
3289 2006-06-30  James Livingston  <doclivingston@gmail.com>
3291         * bindings/python/rb.defs:
3292         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3293         (rb_browser_source_songs_show_popup_cb),
3294         (default_show_entry_popup):
3295         * sources/rb-browser-source.h:
3296         * sources/rb-library-source.c: (rb_library_source_class_init),
3297         (rb_library_source_constructor), (impl_show_popup): allow
3298         RBBrowserSource-derived sources to override the entry context menu
3299         properly - by making it a virtual function, rather than relying on
3300         signal handler order (which doesn't really work).
3302 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3304         * rhythmdb/rhythmdb-query-model.c:
3305         (rhythmdb_query_model_reapply_query_cb):
3306         Use the original query, not the preprocessed query, when redoing
3307         the query to pick up entries that previously didn't match.
3308         Preprocessing the query twice is bad.  Fixes #346186.
3310 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3312         * plugins/audioscrobbler/rb-audioscrobbler.c:
3313         (rb_audioscrobbler_song_changed_cb):
3314         Just check if the elapsed time has been reset, rather
3315         than checking if it's a different track.  Fixes #344827.
3317 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3319         * backends/gstreamer/rb-player-gst.c:
3320         Set cdda source read-speed to 1.  Fixes gaps in playback while the
3321         drive spins up, #344576.
3323 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3325         * plugins/audioscrobbler/rb-audioscrobbler.c:
3326         (rb_audioscrobbler_perform):
3327         Use HTTP/1.1.  Fixes #345895.
3329 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3331         * lib/rb-preferences.h:
3332         * lib/rb-proxy-config.c: (rb_proxy_config_init),
3333         (check_auto_proxy_config), (get_proxy_config):
3334         Don't try to use a HTTP proxy if no proxy host is specified.
3335         Alert the user to the fact that we don't support automatic proxy
3336         configuration as infrequently as possible.  From #345712.
3338 2006-06-25  James Livingston  <doclivingston@gmail.com>
3340         * rhythmdb/rhythmdb-property-model.c:
3341         (rhythmdb_property_model_set_property): connect to the
3342         "post-entry-delete" signal, rather than "entry-deleted". This ensures
3343         things get removed correctly, fixes #338183.
3345 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3347         * rhythmdb/rhythmdb-query-model.c:
3348         (rhythmdb_query_model_drag_data_received):
3349         Fix build break.
3351 2006-06-25  James Livingston  <doclivingston@gmail.com>
3353         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3355         * widgets/rb-search-entry.c: (rb_search_entry_init),
3356         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
3357         search box have a pale yellow background when it's in use, except for
3358         when the user has an "accessability" theme. Code based heavily on
3359         Epiphany's. Fixes #344416.
3361 2006-06-25  James Livingston  <doclivingston@gmail.com>
3363         * plugins/lyrics/lyrics.py:
3364         * plugins/pythonconsole/pythonconsole.py:
3365         * plugins/sample-python/sample-python.py: don't import gettext stuff
3366         as _, as the C code does this for us. Fixes i18n for python plugins,
3367         #343081
3369 2006-06-25  James Livingston  <doclivingston@gmail.com>
3371         * rhythmdb/rhythmdb-query-model.c:
3372         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
3373         a model use a reorder rather then deleting and re-adding the entry.
3374         This means it does do weird things like stop playback of a track that
3375         is dragged, fixing #337657.
3377 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3379         * metadata/rb-metadata-dbus-service.c:
3380         Add missing #include <glib/gi18n.h> from previous commit.
3382 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3384         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3386         * metadata/rb-metadata-dbus-service.c: (main):
3387         Initialize gettext in the metadata helper.
3388         * metadata/rb-metadata-gst.c:
3389         Make some strings translatable.  Fixes #345286.
3391 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3393         * configure.ac:
3394         * lib/Makefile.am:
3395         * lib/rb-stock-icons.c: (rb_stock_icons_init):
3396         Inline the custom icons so they can always be loaded, but are still
3397         themable.  Fixes #345796.
3399 2006-06-23  James Livingston  <doclivingston@gmail.com>
3401         * sources/rb-auto-playlist-source.c:
3402         (rb_auto_playlist_source_do_query): stop the search box being applied
3403         for limits in auto playlists. Fixes #345307.
3405 2006-06-23  James Livingston  <doclivingston@gmail.com>
3407         * shell/rb-shell-clipboard.c:
3408         (rb_shell_clipboard_set_source_internal),
3409         (rb_shell_clipboard_sync), (add_playlist_to_menu),
3410         (rebuild_playlist_menu): don't use the add-to-playlist menu for
3411         non-library tracks, as we don't supprot it yet. From #345248.
3413 2006-06-23  James Livingston  <doclivingston@gmail.com>
3415         patch by: Brian Cameron  <brian.cameron@sun.com>
3417         * plugins/generic-player/rb-generic-player-plugin.c:
3418         * plugins/generic-player/rb-generic-player-source.c:
3419         * plugins/generic-player/rb-nokia770-source.c:
3420         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
3421         Fixes 345673.
3423 2006-06-22  James Livingston  <doclivingston@gmail.com>
3425         * backends/rb-player.c: (rb_player_interface_init):
3426         * lib/rb-marshal.list:
3427         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3428         * rhythmdb/rhythmdb-query-model.c:
3429         (rhythmdb_query_model_class_init):
3430         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
3431         * shell/rb-shell-player.c: (rb_shell_player_class_init):
3432         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
3433         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
3434         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3435         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
3436         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
3437         possible not.
3439 2006-06-20  James Livingston  <doclivingston@gmail.com>
3441         patch by Alex Lancaster  <alexl@users.sourceforge.net>
3443         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
3444         metadata to clients. Fixes #345276.
3446 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3448         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
3449         (rb_add_id3_tagger):
3450         Fix plugin/element version detection for id3v2mux.
3452 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3454         * sources/rb-source.c: (rb_source_finalize),
3455         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
3456         (_autohide_update_visibility),
3457         (_rb_autohide_source_post_entry_deleted_cb),
3458         (_rb_autohide_source_row_inserted_cb),
3459         (_rb_source_hide_when_empty):
3460         Use post-entry-delete signal to update status and autohide sources.
3462 2006-06-20  James Livingston  <doclivingston@gmail.com>
3464         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
3465         "selection changed" idle callback, if present.
3467 2006-06-19  James Livingston  <doclivingston@gmail.com>
3469         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3471         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
3472         don't try to translate the empty string. Fixes #345285.
3474 2006-06-19  James Livingston  <doclivingston@gmail.com>
3476         * bindings/python/rhythmdb.override: more python binding fixes
3478 2006-06-19  James Livingston  <doclivingston@gmail.com>
3480         * lib/rb-util.c: (rb_copy_function):
3481         * lib/rb-util.h: add a function that returns the same pointer it was
3482         passed.
3484         * rhythmdb/rhythmdb.h:
3485         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
3486         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
3487         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
3488         and RhythmDBEntryType into boxed types. This allows them to be used
3489         from python. Note that entry-types aren't actually reference counted
3490         (yet).
3492         * bindings/python/rb.defs:
3493         * bindings/python/rhythmdb.defs:
3494         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
3495         return types of some bindings.
3497         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
3498         (process_added_entries_cb), (rhythmdb_entry_finalize),
3499         (rhythmdb_entry_delete):
3500         * daapsharing/rb-daap-connection.c:
3501         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
3502         (rb_daap_connection_get_property):
3503         * plugins/generic-player/rb-generic-player-source.c:
3504         (rb_generic_player_source_load_songs), (load_playlist_file):
3505         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3506         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
3507         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
3508         (idle_process_update), (rhythmdb_query_model_add_entry),
3509         (rhythmdb_query_model_insert_into_main_list),
3510         (rhythmdb_query_model_insert_into_limited_list),
3511         (rhythmdb_query_model_remove_from_main_list),
3512         (rhythmdb_query_model_remove_from_limited_list),
3513         (rhythmdb_query_model_drag_data_received),
3514         (rhythmdb_query_model_add_results),
3515         (rhythmdb_query_model_get_column_type),
3516         (rhythmdb_query_model_get_value):
3517         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3518         (rhythmdb_tree_entry_delete), (remove_one_song):
3519         * shell/rb-play-order-linear-loop.c:
3520         (rb_linear_play_order_loop_get_next),
3521         (rb_linear_play_order_loop_get_previous):
3522         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
3523         (rb_linear_play_order_get_previous):
3524         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
3525         (rb_queue_play_order_get_previous):
3526         * shell/rb-play-order-random.c: (rb_random_play_order_init),
3527         (rb_random_filter_history), (rb_random_play_order_get_next),
3528         (rb_random_play_order_go_next), (rb_random_db_changed),
3529         (rb_random_playing_entry_changed):
3530         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
3531         (remove_from_history), (add_randomly_to_history),
3532         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
3533         * shell/rb-play-order.c: (rb_play_order_class_init),
3534         (rb_play_order_set_property), (rb_play_order_get_property),
3535         (rb_play_order_update_have_next_previous):
3536         * shell/rb-play-order.h:
3537         * shell/rb-shell-clipboard.c:
3538         (rb_shell_clipboard_process_deletions),
3539         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
3540         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
3541         * sources/rb-auto-playlist-source.c:
3542         (rb_auto_playlist_source_constructor):
3543         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3544         (rb_browser_source_set_property), (rb_browser_source_get_property),
3545         (rb_browser_source_do_query):
3546         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
3547         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
3548         * sources/rb-ipod-source.c: (add_rb_playlist),
3549         (add_ipod_song_to_db), (impl_paste):
3550         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3551         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
3552         * sources/rb-library-source.c: (layout_example_label_update):
3553         * sources/rb-missing-files-source.c:
3554         (rb_missing_files_source_class_init),
3555         (rb_missing_files_source_set_property),
3556         (rb_missing_files_source_get_property),
3557         (rb_missing_files_source_new):
3558         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3559         (rb_playlist_source_set_property),
3560         (rb_playlist_source_get_property):
3561         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3562         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
3563         (construct_query_from_selection):
3564         * sources/rb-removable-media-source.c: (impl_delete_thyself):
3565         * sources/rb-static-playlist-source.c:
3566         (rb_static_playlist_source_constructor),
3567         (rb_static_playlist_source_add_location_internal):
3568         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3569         * widgets/rb-header.c: (rb_header_class_init),
3570         (rb_header_set_property), (rb_header_get_property):
3571         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
3572         (rb_library_browser_set_property),
3573         (rb_library_browser_get_property):
3574         * widgets/rb-song-info.c: (rb_song_info_class_init),
3575         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
3576         change, do s/pointer/boxed/ in many places and free entry-types
3577         properly.
3579 2006-06-18  James Livingston  <doclivingston@gmail.com>
3581         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
3582         unushed GThreadPool non-exclusive threads every now and then.
3584         * rhythmdb/rhythmdb-private.h:
3585         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
3586         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
3587         threads. Fixes #341593
3589 2006-06-19  James Livingston  <doclivingston@gmail.com>
3591         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3592         the "Track number" checkbox actually work for playlists. From #329986.
3594 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3596         * plugins/generic-player/rb-generic-player-source.c:
3597         Get playlist and audio folder information from HAL.  Fixes #333845.
3599 2006-06-18  James Livingston  <doclivingston@gmail.com>
3601         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
3603         * widgets/rb-entry-view.h:
3604         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3605         (rb_entry_view_append_column_custom),
3606         (rb_entry_view_insert_column_custom): add support for inserting custom
3607         columns at arbitrary locations, rather than just appending to the end.
3609         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3610         the playlists "track number" column go at the start, and add a normal
3611         track number column. Fixes #329986.
3613 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
3615         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
3616         a mnemonic conflict.  Add ellipses to the edit button.
3617         * sources/rb-library-source.c:
3618         (rb_library_source_edit_profile_clicked_cb),
3619         (impl_get_config_widget):  Hide dialog separator.  Assign a 
3620         mnemonic widget to the labels. Fixes #344114.
3622 2006-06-18  James Livingston  <doclivingston@gmail.com>
3624         * configure.ac: bump version
3625         * NEWS: add NEWS for 0.9.5
3627 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3629         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
3630         (rb_uri_handle_recursively):
3631         Don't attempt to recurse into directories we can't open.  
3632         Fixes #341485.
3634 2006-06-18  James Livingston  <doclivingston@gmail.com>
3636         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
3638         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
3639         #344610.
3641 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3643         * bindings/python/rb.defs:
3644         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
3645         * shell/rb-shell-player.h:
3646         * shell/rb-shell.c: (rb_shell_play_entry):
3647         Add source parameter to rb_shell_player_play_entry, using the selected
3648         source if not specified.
3650         * shell/rb-play-order.c: (rb_play_order_class_init),
3651         (rb_play_order_finalize), (rb_play_order_query_model_changed),
3652         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
3653         (default_playing_entry_removed):
3654         * shell/rb-play-order.h:
3655         Move entry removal handling back to the row-deleted signal, as we need
3656         the entry to be present in the model.  When changing to the next entry
3657         after the playing entry is deleted, set the new entry as the playing
3658         entry and then sync it to the player in an idle handler, so we don't
3659         end up playing it if it was removed too.
3660         * shell/rb-play-order-queue.c:
3661         (rb_queue_play_order_playing_entry_changed),
3662         (rb_queue_play_order_playing_entry_removed):
3663         Use the playing-entry-removed handler from the play order class,
3664         setting a flag so we don't try to remove the already-removed entry
3665         from the model.
3667         This makes removal of the playing entry from playlists etc. work more
3668         or less correctly for all play orders.  Fixes #344627.
3670 2006-06-17  James Livingston  <doclivingston@gmail.com>
3672         patch by: Elijah Newren  <newren@gmail.com>
3674         * tests/test-rhythmdb.c: fix the build with older versions of check
3675         (again). Fixes #343718.
3677 2006-06-17  James Livingston  <doclivingston@gmail.com>
3679         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
3680         name for capsfilter's "caps" property. Fixes #344968.
3682 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3684         * shell/rb-shell-player.c: (rb_shell_player_playpause):
3685         Don't leak the selected entry list when finding an entry to play.
3687 2006-06-17  James Livingston  <doclivingston@gmail.com>
3689         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
3690         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
3691         as a O(1) one works fine, and it will get called often when the user
3692         deleted multiple tracks. Part of #344922.
3694 2006-06-17  James Livingston  <doclivingston@gmail.com>
3696         * shell/rb-shell-player.c: (rb_shell_player_stop): make
3697         rb_shell_player_stop and rb_shell_player_playpause not mutually
3698         recursive. Fixed #336912.
3700 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3702         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
3703         Treat nested elements inside properties as unknown.  Fixes parsing of
3704         podcast feeds with unescaped HTML in description tags, bug #344532.
3706 2006-06-15  William Jon McCann  <mccann@jhu.edu>
3708         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
3709         when quitting.  Fixes #344875.
3711 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3713         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
3714         Move the playing-entry-removed handling to after the normal entry
3715         delete handling, since we're called after the entry has been removed
3716         from the query model now.  Fixes crashes described in #344627.
3718 2006-06-13  William Jon McCann  <mccann@jhu.edu>
3720         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
3721         (rb_rating_get_rating_from_widget):
3722         * widgets/rb-rating.c: (rb_rating_class_init),
3723         (rb_rating_finalize), (rb_rating_get_property),
3724         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
3725         (rb_rating_button_press_cb):
3726         Don't crash when ratings icons can't be found.  Fixes #344533.
3728 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3730         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
3732 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3734         * Makefile.am:
3735         * configure.ac:
3736         * remote/Makefile.am:
3737         * remote/dbus/Makefile.am:
3738         * remote/dbus/rb-client.c:
3739         * shell/Makefile.am:
3740         New dbus client program providing --play/--next etc. arguments.
3741         Fixes #340863, #155763.
3743 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3745         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
3746         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
3748 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
3750         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
3752         * rhythmdb/rhythmdb-query-model.c:
3753         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
3754         to Library incorrectly
3756 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3758         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
3759         Return input string untouched if gnome_vfs_uri_new returns NULL.
3760         * sources/rb-static-playlist-source.c: (impl_receive_drag),
3761         (rb_static_playlist_source_add_list_uri):
3762         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
3763         URIs don't break it.  Fixes #339033.
3765 2006-06-08  James Livingston  <doclivingston@gmail.com>
3767         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
3768         for sources on the edge (i.e. the queue). Fixes #328409.
3770         * sources/rb-ipod-source.c: fix typo
3772 2006-06-08  James Livingston  <doclivingston@gmail.com>
3774         * configure.ac:
3775         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
3776         --enable-ipod-writing to enable the ipod syncing code.
3778 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3780         * sources/rb-library-source.c: (layout_example_label_update):
3781         add missing comma so we don't generate broken markup.
3783 2006-06-08  James Livingston  <doclivingston@gmail.com>
3785         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
3786         tag-merging with id3v2mux as well as id3mux. From #342330.
3788 2006-06-07  James Livingston  <doclivingston@gmail.com>
3790         * tests/test-rhythmdb.c: #define fail_if for old version of check
3791         which don't have it. Hopefully fixes #343718.
3793 2006-06-07  James Livingston  <doclivingston@gmail.com>
3795         * shell/rb-playlist-manager.c:
3796         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
3797         g_value_array_free with NULL. Fixes #341053.
3799 2006-06-07  James Livingston  <doclivingston@gmail.com>
3801         * shell/rb-playlist-manager.c:
3802         (rb_playlist_manager_playlist_entries_changed),
3803         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
3804         instead of "row-removed", which fixes updating "burn playlist"
3805         sensitivity. Fixes #331119.
3807 2006-06-07  James Livingston  <doclivingston@gmail.com>
3809         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
3810         rather than restarting if the source uses _RETRY and there is an
3811         actual error (like an undecodable stream) rather than it just dropping
3812         out and causing EOS.
3814 2006-06-07  James Livingston  <doclivingston@gmail.com>
3816         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
3817         free the pixbufs if they couldn't be loaded. Fixed #343852.
3819 2006-06-07  James Livingston  <doclivingston@gmail.com>
3821         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
3822         the close button on the dialog work. Fixes #335346.
3824 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3826         * sources/rb-sourcelist-model.c: (path_is_droppable),
3827         (path_is_reorderable):
3828         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
3829         (row_activated_cb), (emit_show_popup), (key_release_cb),
3830         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3831         Ignore group marker rows in the source list.  Fixes #344089, a couple
3832         of other crashers, and some weird UI glitches too.
3834 2006-06-07  James Livingston  <doclivingston@gmail.com>
3836         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
3837         the seeking query fails. This is needed because many gst elements
3838         don't implement the seeking query yet. Should fix 329977.
3840 2006-06-06  James Livingston  <doclivingston@gmail.com>
3842         * configure.ac: bump version for a prerelease, turn on track transfer
3843         by default.
3845         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
3846         ipod transfer stuff, since it has big issues and we'll hopefully land
3847         real support (bug 310774) after 0.9.5
3849 2006-06-06  James Livingston  <doclivingston@gmail.com>
3851         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
3852         id3v2mux once we've detected it.
3854 2006-06-06  James Livingston  <doclivingston@gmail.com>
3856         * lib/Makefile.am:
3857         * tests/test-rhythmdb.c: undo accidental commit which caused
3858         rb-thread.c to be built (which it isn't normally)
3860 2006-06-06  James Livingston  <doclivingston@gmail.com>
3862         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
3863         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
3864         fail_{if/unless} calls, as some versions of check need them (they are
3865         optional in others). Should fix bug 343718.
3867 2006-06-06  James Livingston  <doclivingston@gmail.com>
3869         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
3870         343836.
3871         
3872         * lib/Makefile.am:
3873         * lib/rb-thread.c: (process_actions):
3874         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
3875         tests that don't pass.
3877 2006-06-05  James Livingston  <doclivingston@gmail.com>
3879         * data/glade/Makefile.am:
3880         * data/glade/load-failure.glade:
3881         * data/rhythmbox.schemas: remove the remainder of the old load-failure
3882         dialog.
3884 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3886         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
3887         checked in.
3889 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3891         * bindings/python/rb.defs:
3892         * sources/rb-source.h:
3893         * sources/rb-source.c: (rb_source_class_init),
3894         (rb_source_set_property), (rb_source_get_property),
3895         (rb_sourcelist_group_get_type):
3896         Add 'sourcelist-group' property on the RBSource class, describing how
3897         sources should be grouped in the source list.
3899         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
3900         (rb_sourcelist_model_new), (real_row_is_separator),
3901         (rb_sourcelist_model_is_row_visible),
3902         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
3903         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
3904         (rb_sourcelist_model_row_draggable),
3905         (rb_sourcelist_model_row_inserted_cb),
3906         (rb_sourcelist_model_row_deleted_cb),
3907         (rb_sourcelist_model_get_group_path):
3908         * sources/rb-sourcelist-model.h:
3909         * sources/rb-sourcelist.c: (rb_sourcelist_init),
3910         (rb_sourcelist_append):
3911         Add group marker rows for each sourcelist group, and use these to
3912         insert sources in the right place.  Sort transient sources (DAAP
3913         shares) by name.  Show the group marker rows as separators when the
3914         next visible row is a source.  Make persistant sources (playlists) and
3915         removable sources reorderable using drag and drop, restricting them
3916         within the source groups.
3917         
3918         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
3919         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
3920         * sources/rb-daap-source.c: (rb_daap_source_new):
3921         * sources/rb-ipod-source.c: (rb_ipod_source_new):
3922         * sources/rb-static-playlist-source.c:
3923         (rb_static_playlist_source_new):
3924         * plugins/generic-player/rb-generic-player-source.c:
3925         (rb_generic_player_source_new):
3926         * plugins/generic-player/rb-nokia770-source.c:
3927         (rb_nokia770_source_new):
3928         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
3929         Add source list group information to existing source classes.
3931         Fixes #318754 and #336492.
3933 2006-06-04  James Livingston  <doclivingston@gmail.com>
3935         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
3936         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
3937         win32 build fixes.
3939 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3941         * rhythmdb/rhythmdb-query-model.c:
3942         (rhythmdb_query_model_class_init),
3943         (rhythmdb_query_model_remove_from_main_list):
3944         * rhythmdb/rhythmdb-query-model.h:
3945         Add a new 'post-entry-delete' signal, emitted when the entry has been
3946         removed from the model's data structures.
3948         * shell/rb-play-order.c: (rb_play_order_finalize),
3949         (rb_play_order_query_model_changed),
3950         (rb_play_order_post_entry_delete_cb):
3951         Use the new signal to update the play order, so the queue play order
3952         doesn't try to scroll to entries that don't exist in a way that causes
3953         the tree view to crash.  Fixes #340216.
3955 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3957         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
3958         Fix rb_debug call I missed previously.
3960 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3962         * metadata/rb-metadata-gst.c:
3963         Don't use NULL as the error message for ignored files, as it crashes
3964         with some C libraries.  Fixes #343713.
3966 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3968         * widgets/rb-dialog.c: (rb_error_dialog):
3969         * widgets/rb-dialog.h:
3970         Mark rb_error_dialog as taking printf-like arguments, and use a format
3971         string for the primary message rather than passing in the message
3972         directly.
3974         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
3975         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
3976         (info_available_cb):
3977         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
3978         * shell/rb-removable-media-manager.c:
3979         (rb_removable_media_manager_eject_medium_cb):
3980         Make sure all calls to rb_error_dialog use string constants for the
3981         format string rather than passing the error message directly.  Remove
3982         an extra %s from the message used when playback fails.  Fixes #343562.
3984         * lib/rb-debug.h:
3985         * sources/rb-audiocd-source.c:
3986         * plugins/audioscrobbler/rb-audioscrobbler.c:
3987         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
3988         Mark rb_debug as taking printf-like arguments and fix a few resulting
3989         warnings.
3991 2006-06-02  James Livingston  <doclivingston@gmail.com>
3993         * configure.ac:
3994         + macros/check.m4: add support for using check for unit tests, the .m4
3995         files is so autogen can run without check being installed
3997         * tests/Makefile.am:
3998         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
3999         some of the old tests, and add some new ones. Currently
4000         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
4001         yet (the query doesn't return any entries).
4003         - tests/deserialization-test1.xml:
4004         - tests/deserialization-test2.xml:
4005         - tests/deserialization-test3.xml:
4006         - tests/test-rhythmdb-indexing.c:
4007         - tests/test-rhythmdb-simple.c:
4008         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
4009         have been ported
4011         - tests/test-cd.c:
4012         - tests/test-cmdline.c: remove obsolete tests
4014 2006-06-02  James Livingston  <doclivingston@gmail.com>
4016         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4017         (rb_add_id3_tagger), (rb_metadata_init): add support for using
4018         id3v2mux, and check whether we are using a version of id3mux that has
4019         the correct merge-mode behaviour.
4021         * plugins/sample-python/Makefile.am: fix distcheck.
4023         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
4024         the changed-files source was added before trying to remove it.
4026         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
4027         *old* bug which would crash if a query with top-level disjunctions
4028         tried to check later disjunctive parts. Hooray for unit-testing.
4030 2006-06-02  William Jon McCann  <mccann@jhu.edu>
4032         * player/rb-recorder-gst.c (rb_recorder_set_device):
4033         Check for a null drive.
4035 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4037         * lib/Makefile.am:
4038         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4039         Register the app icon as a builtin if the icon theme can't find it.
4041 2006-05-31  James Livingston  <doclivingston@gmail.com>
4043         * player/rb-recorder-gst.c: add missing include.
4045 2006-05-30  William Jon McCann  <mccann@jhu.edu>
4047         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
4048         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
4049         (tick_timeout_cb), (rb_recorder_sync_pipeline),
4050         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
4051         (rb_recorder_set_device), (rb_recorder_get_default_device):
4052         * shell/main.c: (main):
4053         * shell/rb-removable-media-manager.c:
4054         (rb_removable_media_manager_finalize),
4055         (get_nautilus_burn_drive_for_path),
4056         (rb_removable_media_manager_playing_uri_changed_cb),
4057         (rb_removable_media_manager_load_media),
4058         (nautilus_burn_drive_get_device),
4059         (rb_removable_media_manager_scan):
4060         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
4062         Update for libnautilus-burn 2.15.3 API changes.
4063         Fixes #342604
4065 2006-05-30  James Livingston  <doclivingston@gmail.com>
4067         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
4068         "return" to that it asks for the password again if it was wrong.
4070 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4072         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
4073         typefind element.
4075 2006-05-30  James Livingston  <doclivingston@gmail.com>
4077         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
4078         (download_progress_cb): don't do wonky things if the transfer
4079         "suceeds" without transferring any data.
4081 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4083         * sources/rb-library-source.c: (layout_example_label_update),
4084         (build_filename):  Fix crash when no audio profile is selected.
4085         Fixes #341447.
4087 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4089         * shell/rb-shell.c: (rb_shell_clear_queue):
4090         * shell/rb-shell.h:
4091         * shell/rb-shell.xml:
4092         * sources/rb-play-queue-source.c:
4093         (rb_play_queue_source_clear_queue),
4094         (rb_play_queue_source_cmd_clear):
4095         * sources/rb-play-queue-source.h:
4096         Add clearQueue dbus method.
4098 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4100         * shell/main.c: (main):  Implement --quit option.
4102 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4104         * rhythmdb/rhythmdb-private.h:
4105         * rhythmdb/rhythmdb-tree.h:
4106         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
4107         (rhythmdb_entry_insert), (rhythmdb_entry_set),
4108         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
4109         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
4110         (rhythmdb_entry_get_boolean):
4111         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
4112         bitmask, giving the db backend anything past the first 16 bits for 
4113         its own private use.
4115         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4116         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
4117         Add a 'loading' flag to indicate that an entry is being loaded from
4118         disk, and use that to ignore entry_set operations on such entries
4119         rather than the 'inserted' flag, which doesn't quite mean the same
4120         thing.  Fixes #342694.
4122 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4124         * shell/rb-shell.xml: Remove visibility property, since it causes
4125         crashes (dbus bug 7057) and doesn't do much else.
4127 2006-05-28  James Livingston  <doclivingston@gmail.com>
4129         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
4131         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4132         * po/POTFILES.in: fix some more i18n issues.
4134 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4136         * bindings/python/rb.defs:
4137         * shell/rb-shell-player.c: (rb_shell_player_playpause),
4138         (filter_mmkeys):
4139         * shell/rb-shell-player.h:
4140         Deprecate the useless 'ignore_stop' parameter to
4141         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
4142         API.  From bug #334829.
4144 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4146         * plugins/generic-player/rb-generic-player-source.c:
4147         (visit_playlist_dirs), (default_transform_playlist_uri):
4148         When playlist parsing fails, unref the playlist, not the parent
4149         source.  Fix memory leak in playlist uri transform.
4150         * plugins/generic-player/rb-nokia770-source.c:
4151         (impl_transform_playlist_uri):
4152         Fix memory leak in playlist uri transform.
4154 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
4156         * doc/reference/Makefile.am: fix grk-doc build
4158 2006-05-27  James Livingston  <doclivingston@gmail.com>
4160         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4162         * plugins/lyrics/lyrics.py:
4163         * po/POTFILES.in: Make strings in plugins translatable. From bug
4164         343081.
4166 2006-05-27  James Livingston  <doclivingston@gmail.com>
4168         * backends/Makefile.am:
4169         * backends/gstreamer/Makefile.am:
4170         * lib/Makefile.am:
4171         * plugins/audioscrobbler/Makefile.am:
4172         * plugins/generic-player/Makefile.am:
4173         * po/POTFILES.in:
4174         * rhythmdb/rhythmdb-monitor.c:
4175         * rhythmdb/rhythmdb.c:
4176         * sources/Makefile.am:
4177         * widgets/Makefile.am: fix compilation after some CVS surgery was
4178         done.
4180 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4182         * bindings/python/rhythmdb.defs:
4183         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
4184         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
4185         (rhythmdb_query_deserialize):
4186         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
4187         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
4188         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
4189         (rhythmdb_entry_register_type_alias),
4190         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
4191         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
4192         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
4193         (rhythmdb_entry_podcast_feed_get_type),
4194         (rhythmdb_entry_import_error_get_type),
4195         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
4196         * rhythmdb/rhythmdb.h:
4197         Allocate a specified amount of extra memory for each db entry, to be
4198         used to store fields specific to the entry type.  Optionally associate
4199         a name with each entry type, to be used when saving entries and
4200         auto playlists to disk.  Allow entry types to have multiple names
4201         to handle older playlist files that used '0' to represent 'song'.
4202         Use private data to store podcast fields.
4204         * rhythmdb/rhythmdb-private.h:
4205         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4206         (rhythmdb_tree_parser_end_element), (save_entry),
4207         (rhythmdb_tree_entry_set):
4208         Simplify property handling by using existing code to convert
4209         properties from strings to GValues and to set properties on entries.
4210         Other assorted changes due to the above.
4212         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4213         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
4214         * sources/rb-generic-player-source.c:
4215         (rb_generic_player_source_new):
4216         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4217         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
4218         * sources/rb-psp-source.c: (rb_psp_source_new):
4219         Update for changes to rhythmdb_entry_register_type.  None of these
4220         entry types need names or use private data.
4222         Fixes #337429.
4224 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4226         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
4227         Fix creation of ignored-file db entries - need to check for
4228         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
4230 2006-05-25  James Livingston  <doclivingston@gmail.com>
4232         * AUTHORS:
4233         * MAINTAINERS: update my email address
4235 2006-05-25  James Livingston  <doclivingston@gmail.com>
4237         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
4238         "(... mix)" when searching for lyrics. Cache the lyrics under
4239         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
4241 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4243         * sources/rb-import-errors-source.c:
4244         (rb_import_errors_source_class_init):
4245         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
4246         * sources/rb-browser-source.c: (rb_browser_source_class_init):
4247         * sources/rb-source.c: (rb_source_class_init),
4248         (default_move_to_trash):
4249         Implement the basic move-to-trash operation once in rb-source.c, 
4250         rather than in each source type that supports it.
4252         * plugins/ipod/rb-ipod-plugin.c:
4253         * shell/rb-removable-media-manager.c:
4254         * shell/rb-shell.c: (rb_shell_constructor):
4255         Only scan removable media once after loading plugins.  Add a flag
4256         plugins can use to check if the initial scan has been done.
4258         * data/rhythmbox.schemas:
4259         Enable ipod and generic-player plugins by default.
4260         
4261         * configure.ac:
4262         * data/ui/Makefile.am:
4263         * data/ui/generic-player-ui.xml:
4264         * data/ui/rhythmbox-ui.xml:
4265         * plugins/Makefile.am:
4266         * plugins/generic-player/Makefile.am:
4267         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
4268         * plugins/generic-player/rb-generic-player-plugin.c:
4269         * sources/Makefile.am:
4270         * sources/rb-generic-player-source.c:
4271         * sources/rb-generic-player-source.h:
4272         * sources/rb-nokia770-source.c:
4273         * sources/rb-nokia770-source.h:
4274         * sources/rb-psp-source.c: (visit_playlist_dirs):
4275         * sources/rb-psp-source.h:
4276         Pluginise generic player (and nokia770 and PSP) support and add
4277         move-to-trash for players not mounted read-only.
4278         Fixes #342868.
4280 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4282         * daapsharing/rb-daap-connection.c (handle_song_listing):
4283         Lower bound check for batch commit.  Fixes #342848
4285         * sources/rb-daap-source.c (rb_daap_source_get_status):
4286         Always set output variables if provided.
4288 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4290         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
4291         (rhythmdb_tree_entry_delete), (remove_one_song):
4292         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
4293         Fix two db entry reference counting problems.
4294         The initial reference on the entry is held by the db backend, but it
4295         was never being dropped.  The reference count was incremented when
4296         adding an entry to the deleted_entries map and to the
4297         deleted_entries_to_emit list, but only decremented for one of those.
4299 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4301         * daapsharing/rb-daap-connection.c (http_response_handler) 
4302         (rb_daap_connection_dispose):
4303         Call soup_session_abort to make sure there are no outstanding
4304         requests when we dispose of the connection.  Ignore cancelled
4305         messages in the callback.
4307 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4309         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
4310         (rb_daap_source_disconnect): Set a flag when disconnecting
4311         the source.  Check this flag in connection callback
4312         to see if we should release the connection.
4314 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4316         * daapsharing/Makefile.am:
4317         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
4318         (rb_daap_connection_class_init), (connection_connected),
4319         (connection_disconnected), (connection_operation_done),
4320         (build_message), (connection_set_error_message),
4321         (actual_http_response_handler), (http_get),
4322         (entry_set_string_prop), (emit_progress_idle),
4323         (handle_server_info), (handle_login), (handle_update),
4324         (handle_database_info), (handle_song_listing), (handle_playlists),
4325         (handle_playlist_entries), (handle_logout),
4326         (rb_daap_connection_new), (rb_daap_connection_is_connected),
4327         (connection_response_data_free), (connected_cb),
4328         (rb_daap_connection_connect), (disconnected_cb),
4329         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
4330         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
4331         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
4332         (rb_daap_connection_get_property):
4333         * daapsharing/rb-daap-connection.h:
4334         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
4335         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
4336         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
4337         (rb_daap_hash_generate):
4338         * daapsharing/rb-daap-hash.h:
4339         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4340         (rb_daap_get_icon), (remove_source), (stop_browsing),
4341         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
4342         (connection_connecting_cb), (connection_disconnected_cb),
4343         (release_connection), (rb_daap_source_connection_cb),
4344         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
4345         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
4347         Adds a better async API for connect and disconnect.  Doesn't share
4348         callback data for every async call.  Adds a connect signal.  Uses
4349         an operation-done signal to trigger the callbacks.  Displays an
4350         error when connections fail.  A few refcounting fixes to fix
4351         crashes.  Uses a weak pointer to set the connection to NULL so we
4352         don't clobber references.  Wait for each disconnect when shutting
4353         down sources.  Split out DAAP hash stuff into its own file.  Fix
4354         typo in header.
4356         Fixes #342643
4357         
4358 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4360         * sources/rb-auto-playlist-source.c:
4361         (rb_auto_playlist_source_new_from_xml):
4362         Initialize the gvalue used to hold the size limit correctly.
4363         Fixes #342744.
4365 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4367         * shell/rb-shell.c: (rb_shell_window_delete_cb),
4368         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
4369         * shell/rb-shell.h:
4370         * shell/rb-shell.xml:
4371         Convert rb_shell_quit into a dbus method, and add visibility dbus
4372         property.
4374 2006-05-22  James Livingston  <doclivingston@gmail.com>
4376         * rhythmdb/rhythmdb.h:
4377         * rhythmdb/rhythmdb.c: (sync_entry_changed),
4378         (rhythmdb_entry_is_editable), (action_thread_main),
4379         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
4380         vfuncs for can_sync_metadata, and sync_metadata. The default is always
4381         false, and syncing into the file.
4383         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
4384         (rhythmdb_entry_iradio_get_type),
4385         (rhythmdb_entry_import_error_get_type):
4386         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
4387         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
4388         change the DB.
4390 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4392         * rhythmdb/Makefile.am:
4393         * rhythmdb/rhythmdb-monitor.c:
4394         * rhythmdb/rhythmdb-private.h:
4395         * rhythmdb/rhythmdb-query.c:
4396         * rhythmdb/rhythmdb.c:
4397         Split up rhythmdb.c a bit.
4399 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4401         * data/glade/audioscrobbler-prefs.glade:
4402         Add a link to the last.fm server status page.
4404 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4406         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
4407         Capitalization fix.
4408         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
4409         (impl_create_configure_dialog):  UI layout fixes, remove
4410         dialog separator, and capitalization fix for window title.
4411         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
4412         and remove dialog separator.
4413         * data/glade/plugins.glade:  UI layout fixes.
4414         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
4415         and capitalization fix.  Fixes #342438.
4417 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4419         * data/glade/podcast-properties.glade:  Fix layout of the download 
4420         location.  Fixes #342431.
4422 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4424         * data/ui/rhythmbox-ui.xml:
4425         We only need one copy of the 'add to queue' action in the edit menu.
4427 2006-05-20  James Livingston  <doclivingston@gmail.com>
4429         * data/ui/rhythmbox-ui.xml:
4430         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
4431         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
4432         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
4433         (rb_shell_clipboard_sync),
4434         (rb_shell_clipboard_cmd_add_to_playlist_new),
4435         (rb_shell_clipboard_cmd_queue_song_info),
4436         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
4437         (rb_shell_clipboard_playlist_deleted_cb),
4438         (rb_shell_clipboard_playlist_renamed_cb),
4439         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
4440         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
4441         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
4442         dynamically generated with all the static playlists. Fixes bug 323364.
4444         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
4445         right child, so it doesn't go weird when art appears and disappears.
4447 2006-05-20  James Livingston  <doclivingston@gmail.com>
4449         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
4451         * rhythmdb/rhythmdb-query-model.c:
4452         (rhythmdb_query_model_set_property),
4453         (rhythmdb_query_model_finalize),
4454         (rhythmdb_query_model_reapply_query_cb):
4455         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
4456         (rhythmdb_query_append_prop_multiple),
4457         (rhythmdb_query_is_time_relative):
4458         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
4459         time-based criteria, fixes bug 341131.
4461 2006-05-20  James Livingston  <doclivingston@gmail.com>
4463         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
4464         we have already changed playing entries. Interpolate the art size so
4465         it doesn't jump when the old and new images have different aspect
4466         ratios.
4468 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4470         * rhythmdb/rhythmdb-private.h:
4471         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4472         (save_entry):
4473         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
4474         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
4475         (rhythmdb_entry_get_ulong):
4476         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
4477         and elsewhere, use them on the stack rather than allocating on 
4478         the heap.  From bug #342333.
4480 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4482         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
4483         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
4484         (add_track), (eos_cb), (error_signal_idle),
4485         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
4486         (rb_recorder_construct), (recorder_track_free),
4487         (rb_recorder_finalize):
4488         * sources/rb-playlist-source-recorder.c:
4489         Support libnautilus-burn size -> capacity API change.  Add
4490         some braces to blocks.
4492 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4494         * metadata/sj-metadata-musicbrainz.c:
4495         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
4496         Sync with sound-juicer in CVS.  Fixes #342177
4497         * sources/rb-audiocd-source.c: Don't declare variables
4498         in the middle of a block (c99ism).  Fix order of #includes.
4499         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
4500         one variable per line.  Update copyright date.
4502 2006-05-19  James Livingston  <doclivingston@gmail.com>
4504         patch by: Hendrik Richter  <hendi@gnome-de.org>
4506         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
4507         "translator_credits" to a hyphen, so it doesn't cause problems for
4508         tools that check access keys. Fixes bug 341832.
4510 2006-05-19  James Livingston  <doclivingston@gmail.com>
4512         * po/POTFILES.in: remove references to files that don't exist any more
4513         (fixes make distcheck).
4515 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
4517         * plugins/lyrics/lyrics.py:  Fix layout close button in 
4518         Song Lyrics dialog. Fixes bug 342322.
4520 2006-05-19  James Livingston  <doclivingston@gmail.com>
4522         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
4524         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
4525         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
4526         version checks not break when libnotify goes to 1.0.0. Fixes bug
4527         342244.
4529 2006-05-18  James Livingston  <doclivingston@gmail.com>
4531         * shell/rb-shell-clipboard.c:
4532         * shell/rb-shell.c:
4533         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
4535 2006-05-17  William Jon McCann  <mccann@jhu.edu>
4537         * sources/rb-playlist-source-recorder.c (get_song_description):
4538         Reverse artist and title in song description.  This
4539         is useful because at least the title will be visible
4540         when there is limited space.
4542 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4544         * daapsharing/rb-daap-connection.c: (connection_get_password):
4545         Take gdk lock before emitting authenticate signal.
4546         * sources/rb-daap-source.c: (connection_connecting_cb):
4547         Get rid of the unnecessary idle handler (it's already called from one)
4548         Fixes #342047 once more.
4550 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4552         * shell/rb-shell.c: (rb_shell_class_init):
4553         * shell/rb-shell.h:
4554         * widgets/rb-song-info.c: (rb_song_info_class_init),
4555         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
4556         (rb_song_info_constructor), (rb_song_info_get_property),
4557         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
4558         (rb_song_info_forward_clicked_cb):
4559         * widgets/rb-song-info.h:
4560         * data/glade/song-info-multiple.glade:
4561         * lib/rb-marshal.list:
4562         * bindings/python/Makefile.am:
4563         * bindings/python/rb.defs:
4564         * bindings/python/rb.override:
4565         Allow plugins to add pages to the notebooks used in song info windows,
4566         and to track the current song displayed in single-entry windows.
4567         
4568         * configure.ac:
4569         * plugins/Makefile.am:
4570         * plugins/lyrics/Loader.py:
4571         * plugins/lyrics/Makefile.am:
4572         * plugins/lyrics/lyrics.py:
4573         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
4574         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
4575         as a separate window (for the playing song) or as a page in the song
4576         info window.  A few TODO items left, but this fixes #319320.
4578 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4580         Patch by:  Roozbeh Pournader
4582         * configure.ac:
4583         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
4584         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
4586 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4587         
4588         * sources/rb-daap-source.c: (update_connection_status):
4589         Correct return value.  Fixes #342047 again.
4591 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4593         * sources/rb-daap-source.c: (update_connection_status),
4594         (connection_connecting_cb):
4595         Update status in an idle handler so we don't rely on the gdk lock
4596         being recursive (because it isn't any more).  Fixes #342047.
4598 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4600         * lib/rb-util.c: (rb_make_duration_string),
4601         (rb_make_elapsed_time_string):
4602         * lib/rb-util.h:
4603         Add a function for formatting an elapsed time string.
4605         * shell/rb-shell-player.c: (rb_shell_player_init),
4606         (rb_shell_player_sync_with_source),
4607         (rb_shell_player_get_playing_time_string), (tick_cb):
4608         Store elapsed time in the private data structure, and use the above
4609         function.
4610         
4611         * widgets/rb-header.c:
4612         * widgets/rb-header.h:
4613         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
4614         object, so everything has the same idea of the elapsed time.
4615         Fixes #339693.
4617 2006-05-16  James Livingston  <doclivingston@gmail.com>
4619         * bindings/python/rhythmdb.defs:
4620         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
4621         some parametre defaults, so you don't have to pass None, False for the
4622         sorting order.
4624 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4626         * bindings/python/rhythmdb.defs:
4627         * rhythmdb/rhythmdb-query-model.c:
4628         (rhythmdb_query_model_compute_status_normal):
4629         * rhythmdb/rhythmdb-query-model.h:
4630         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
4631         * rhythmdb/rhythmdb.h:
4632         Change the various compute_status methods to accept a singular/plural
4633         pair to use in the status string.
4634         
4635         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4636         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
4637         * sources/rb-source.c: (default_get_status):
4638         Call entries 'songs' by default, and 'episodes' in the podcast source.
4639         Fixes #340227.
4641 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4643         patch by:  Paul Drain
4645         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
4646         Fixes #341817.
4648 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4650         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
4651         Generate reorder maps correctly.
4652         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
4653         Scroll to the first entry from the old selection.
4654         Fixes #322992.
4656 2006-05-15  William Jon McCann  <mccann@jhu.edu>
4658         * data/ui/rhythmbox-ui.xml:
4659         * lib/rb-preferences.h:
4660         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4661         (rb_shell_playlist_created_cb),
4662         (rb_shell_view_sidepane_changed_cb),
4663         (rb_shell_sync_sidepane_visibility),
4664         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
4665         (sidepane_visibility_changed_cb):
4666         * sources/rb-podcast-source.c:
4667         Convert sourcelist visibility to side-pane visbility.
4668         Fixes #339733
4670 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4672         * widgets/rb-header.c:
4673         * widgets/rb-header.h: Stop RBHeader from referring to itself as
4674         'player', and make it use the private data structure allocated for it.
4676 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4678         * configure.ac: enable metadata helper with dbus < 0.35.
4680 2006-05-15  James Livingston  <doclivingston@gmail.com>
4682         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4684         * data/glade/song-info.glade:
4685         * widgets/rb-song-info.c: (rb_song_info_construct_single),
4686         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
4687         (rb_song_info_update_filesize): Add the file size into the song info
4688         window. Fixes bug 340861.
4690 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4692         * bindings/python/rhythmdb.defs:
4693         * rhythmdb/rhythmdb-query-model.c:
4694         (rhythmdb_query_model_set_property),
4695         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
4696         * rhythmdb/rhythmdb-query-model.h:
4697         Add a new method to chain query models without importing entries from
4698         the parent into the child.  This is useful when the subset of entries
4699         in the child can be more easily determined by running a query than by
4700         filtering entries from the parent.
4702         * bindings/python/rb.defs:
4703         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4704         (rb_library_browser_set_property),
4705         (rb_library_browser_get_property), (rb_library_browser_new),
4706         (rebuild_child_model):
4707         * widgets/rb-library-browser.h:
4708         * sources/rb-auto-playlist-source.c:
4709         (rb_auto_playlist_source_constructor):
4710         * sources/rb-static-playlist-source.c:
4711         (rb_static_playlist_source_constructor):
4712         * sources/rb-browser-source.c: (rb_browser_source_constructor):
4713         Use more efficient queries for constructing the browser query model
4714         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
4715         backend to optimise the query) and run new queries rather than
4716         filtering entries from the parent.  Fixes #341402.
4718         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
4720 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4722         * configure.ac:
4723         * shell/Makefile.am:
4724         * shell/main.c: (main), (load_uri_args), (send_present_message),
4725         (unregister_dbus_handler), (handle_dbus_message),
4726         (register_dbus_handler):
4727         Add minimal support for dbus 0.31 - 0.35.
4729         * doc/reference/Makefile.am:
4730         * doc/reference/rhythmbox.types:
4731         * data/Makefile.am:
4732         * data/GNOME_Rhythmbox.server.in:
4733         * data/rhythmbox.pc.in:
4734         * remote/*:
4735         * remote/bonobo/*:
4736         Remove remaining bonobo and generic remote interface files.
4738 2006-05-14  James Livingston  <doclivingston@gmail.com>
4740         * shell/rb-shell.c: (construct_widgets):
4741         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
4742         resize the browser and queue-sidebar section of their panes, unless
4743         the other section is below the minimum size. Fixes bug 331927.
4745 2006-05-13  James Livingston  <doclivingston@gmail.com>
4747         * rhythmdb/rhythmdb-query-model.c:
4748         (rhythmdb_query_model_class_init),
4749         (rhythmdb_query_model_set_property),
4750         (rhythmdb_query_model_get_property),
4751         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
4752         (rhythmdb_query_model_insert_into_main_list),
4753         (rhythmdb_query_model_insert_into_limited_list),
4754         (rhythmdb_query_model_do_reorder),
4755         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
4756         (rhythmdb_query_model_location_sort_func),
4757         (rhythmdb_query_model_title_sort_func),
4758         (rhythmdb_query_model_album_sort_func),
4759         (rhythmdb_query_model_artist_sort_func),
4760         (rhythmdb_query_model_genre_sort_func),
4761         (rhythmdb_query_model_track_sort_func),
4762         (rhythmdb_query_model_double_ceiling_sort_func),
4763         (rhythmdb_query_model_ulong_sort_func),
4764         (rhythmdb_query_model_date_sort_func),
4765         (rhythmdb_query_model_string_sort_func):
4766         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
4767         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
4768         "data destroy" property. Fixed bug 341543.
4770         * bindings/python/rhythmdb.defs:
4771         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
4772         rhythmdb_query_model_set_sorting_order
4774         * rhythmdb/rhythmdb-property-model.c:
4775         (rhythmdb_property_model_drag_data_get):
4776         * sources/rb-import-errors-source.c:
4777         (rb_import_errors_source_constructor):
4778         * sources/rb-missing-files-source.c:
4779         (rb_missing_files_source_constructor):
4780         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
4781         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
4782         * widgets/rb-entry-view.h: adapt to the above change.
4784 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4786         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4787         (rhythmdb_tree_load):
4788         Commit loaded entries in batches, rather than individually.  
4789         More startup time reduction.
4791 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
4793         * doc/reference/Makefile.am: fix gtk-doc compilation
4795 2006-05-12  William Jon McCann  <mccann@jhu.edu>
4797         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4798         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4799         * plugins/artdisplay/artdisplay/Loader.py:
4800         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
4801         Only call the first artist the best match when album==Unknown.
4802         Don't perform each query twice if album doesn't include "Vol N".
4803         Fix searching for compilations.  Fix blacklisting.
4804         Part of bug #307848
4806 2006-05-12  William Jon McCann  <mccann@jhu.edu>
4808         * Makefile.am:
4809         * bindings/python/Makefile.am:
4810         * bindings/python/rb.defs:
4811         * bindings/python/rb.override:
4812         * configure.ac:
4813         * doc/reference/Makefile.am:
4814         * plugins/Makefile.am:
4815         * plugins/audioscrobbler/Makefile.am:
4816         * plugins/ipod/Makefile.am:
4817         * plugins/lirc/Makefile.am:
4818         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
4819         (impl_activate), (impl_deactivate):
4820         * plugins/sample/Makefile.am:
4821         * remote/Makefile.am:
4822         * shell/Makefile.am:
4823         * shell/main.c: (main), (main_shell_weak_ref_cb):
4824         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
4825         (rb_shell_get_property), (rb_shell_window_state_cb),
4826         (idle_hide_mainwindow), (rb_shell_set_visibility),
4827         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
4828         (rb_shell_set_song_property):
4829         * shell/rb-shell.h:
4830         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
4831         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
4832         (rb_tray_icon_get_property), (rb_tray_icon_new),
4833         (rb_tray_icon_button_press_event_cb),
4834         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
4835         (rb_tray_icon_show_window_changed_cb):
4836         * shell/rb-tray-icon.h:
4838         Remove bonobo, require DBUS.
4839         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
4840         Fixes #339720
4842 2006-05-13  James Livingston  <doclivingston@gmail.com>
4844         * bindings/python/rb.override: fix some pointer-type warnings
4846 2006-05-12  James Livingston  <doclivingston@gmail.com>
4848         * lib/rb-util.c: (rb_value_free):
4849         * lib/rb-util.h: Add function to unset and free a GValue* that was
4850         allocated in the heap.
4852         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
4853         the metadata hastable values
4854         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
4855         leak the metadata hashtable structure
4856         * metadata/rb-metadata-dbus.c:
4857         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
4858         using g_strdup and then _take_string
4860         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
4861         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
4862         stat something.
4864         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
4865         leak the encoded string
4867         * widgets/rb-property-view.c:
4868         (rb_property_view_selection_changed_cb): set some variables to have
4869         inital values, because some code paths may not set them before we use
4870         them.
4872         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
4873         don't have python warning into a debug message".
4875 2006-05-10  William Jon McCann  <mccann@jhu.edu>
4877         * data/rhythmbox.schemas: Use zero instead of null for
4878         default burn speed.  Fixes #341283.
4880 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4882         * bindings/python/rb.defs:
4883         * widgets/rb-library-browser.c:
4884         (rb_library_browser_get_property_view):
4885         * widgets/rb-library-browser.h:
4886         Add a method to get the property view for a given property.
4888         * sources/rb-browser-source.c:
4889         (rb_browser_source_cmd_choose_genre),
4890         (rb_browser_source_cmd_choose_artist),
4891         (rb_browser_source_cmd_choose_album):
4892         Change the browser selection by changing the property view selection. 
4893         Makes the selection change visible, fixing #331740.
4895 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4897         * bindings/python/rb.defs:
4898         * bindings/python/rb.override:
4899         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
4900         * shell/rb-statusbar.c: (*),
4901         * sources/rb-import-errors-source.c: (impl_get_status):
4902         * sources/rb-iradio-source.c: (impl_get_status):
4903         * sources/rb-missing-files-source.c: (impl_get_status):
4904         * sources/rb-source.c: (default_get_status),
4905         (rb_source_get_status):
4906         * sources/rb-source.h:
4907         Allow sources to provide a progress value for the status bar.
4908         Simplify status bar processing (much less polling).
4909         Consider rhythmdb busy while it's still loading the database.
4911         * daapsharing/rb-daap-connection.c: (*)
4912         * daapsharing/rb-daap-connection.h:
4913         * lib/rb-marshal.list:
4914         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4915         (rb_daap_source_init), (connection_connecting_cb),
4916         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
4917         (rb_daap_source_get_status):
4918         Provide status information for DAAP connections, and move processing
4919         of large responses into a separate thread.
4920         Fixes bugs #322020 and #338978.
4922 2006-05-09  James Livingston  <doclivingston@gmail.com>
4924         Split the artdisplay plugin into several files.
4925         Fix loader and amazon-search re-use issues.
4926         Add some better search heuristics.
4928         * configure.ac:
4929         * plugins/artdisplay/Makefile.am:
4930         * plugins/artdisplay/artdisplay.py:
4931         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4932         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4933         * plugins/artdisplay/artdisplay/Loader.py:
4934         * plugins/artdisplay/artdisplay/Makefile.am:
4935         * plugins/artdisplay/artdisplay/__init__.py:
4937 2006-05-09  James Livingston  <doclivingston@gmail.com>
4939         * sources/rb-browser-source.h: remove the _has_first_added_column
4940         stuff since it isn't actually used anywhere. Sources that want it
4941         should just add it themselves, as the library already does
4943         * bindings/python/rb.defs:
4944         * sources/rb-daap-source.c: (rb_daap_source_class_init):
4945         * sources/rb-library-source.c: (rb_library_source_class_init):
4946         * sources/rb-removable-media-source.c:
4947         (rb_removable_media_source_class_init): Remove the remanants of the
4948         above.
4950 2006-05-09  James Livingston  <doclivingston@gmail.com>
4952         * bindings/python/rb.defs:
4953         * sources/rb-browser-source.h: remove a function that was declared in
4954         the header, but not defined anywhere.
4956 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4958         * plugins/artdisplay/.cvsignore:
4959         * plugins/ipod/.cvsignore: Added.
4961 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4963         * sources/rb-auto-playlist-source.c:
4964         (rb_auto_playlist_source_new_from_xml):
4965         Fix reading of older playlist files where all three limits were
4966         specified so we take the first nonzero limit.  From #341053.
4968 2006-05-09  James Livingston  <doclivingston@gmail.com>
4970         * bindings/python/Makefile.am:
4971         * bindings/python/rb.defs:
4972         * bindings/python/rb.override: bind RBBrowserSource,
4973         RBRemovableMediaSource and RBRemovableMediamanager.
4975 2006-05-09  James Livingston  <doclivingston@gmail.com>
4977         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
4979         * data/glade/plugins.glade: make the plugin dialog look a bit better.
4980         Fixes bug 339221.
4982 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4984         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
4985         Don't explode when trying to edit a query with no limit set.
4987 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4989         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
4990         Clear the should_queue flag when switching to a non-submittable entry,
4991         so we don't submit songs that played for three seconds before
4992         switching to a podcast episode.
4994         * rhythmdb/rhythmdb-query-model.c
4995         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
4996         in the drag data list.
4998 2006-05-08  James Livingston  <doclivingston@gmail.com>
5000         * lib/rb-util.c: (rb_value_array_append_data):
5001         * lib/rb-util.h: add function which is basically a combination of
5002         G_VALUE_COLLECT and g_value_array_append.
5004         * rhythmdb/rhythmdb-query-model.h:
5005         * rhythmdb/rhythmdb-query-model.c:
5006         (rhythmdb_query_model_class_init),
5007         (rhythmdb_query_model_set_property),
5008         (rhythmdb_query_model_get_property),
5009         (rhythmdb_query_model_finalize),
5010         (rhythmdb_query_model_update_limited_entries),
5011         (rhythmdb_query_model_set_sort_order),
5012         (rhythmdb_query_model_within_limit),
5013         (rhythmdb_query_model_limit_type_get_type): Make query model limits
5014         saner. Rather than having <count=N, time=N, size=N> we now have a
5015         <type, value> pair. This will also make it much easier to add new
5016         limit types in the future.
5018         * shell/rb-playlist-manager.c:
5019         (rb_playlist_manager_set_automatic_playlist),
5020         (rb_playlist_manager_cmd_edit_automatic_playlist):
5021         * sources/rb-auto-playlist-source.c:
5022         (rb_auto_playlist_source_finalize),
5023         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
5024         (_save_write_ulong), (_save_write_uint64),
5025         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
5026         (rb_auto_playlist_source_set_query),
5027         (rb_auto_playlist_source_get_query):
5028         * sources/rb-auto-playlist-source.h:
5029         * sources/rb-library-source.c:
5030         (rb_library_source_add_child_source):
5031         * sources/rb-psp-source.c: (visit_playlist_dirs):
5032         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
5033         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
5034         * widgets/rb-query-creator.h: Adapt to the above change.
5036 2006-05-08  James Livingston  <doclivingston@gmail.com>
5038         * shell/rb-playlist-manager.c:
5039         (rb_playlist_manager_cmd_edit_automatic_playlist):
5040         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
5041         (rb_auto_playlist_source_set_query),
5042         (rb_auto_playlist_source_get_query): copy the query in the _get method
5043         and free it in things calling that. Fixes a crasher.
5045 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5047         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5048         Make entries on newly mounted volumes visible immediately, hiding them
5049         later if they turn out to be missing.  Fixes #340068.
5051 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5053         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
5054         Ignore zip files and ignore errors for files we've decided to ignore.
5056 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5058         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
5059         Add missing }, should fix #340844.
5061 2006-05-06  James Livingston  <doclivingston@gmail.com>
5063         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
5064         typo.
5066 2006-05-06  James Livingston  <doclivingston@gmail.com>
5068         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
5069         that we work with libnotify >= 0.4
5071 2006-05-06  James Livingston  <doclivingston@gmail.com>
5073         patch by: Joe Barnett  <thejoe@gmail.com>
5075         * configure.ac: check if we're using a version of libgpod that
5076         supports the Motorola ROKR
5078         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
5079         for the db path, if we using the newer version.
5081         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
5083 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5085         * rhythmdb/rhythmdb-query-model.c:
5086         (rhythmdb_query_model_drag_data_get):
5087         Use playback URI, not location, for drag data.  Fixes #322597.
5089 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
5091         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
5093 2006-05-03  James Livingston  <doclivingston@gmail.com>
5095         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
5096         (rb_add_id3_tagger), (rb_metadata_save):
5097         Set the tags on the tagging element when it is
5098         created, not during pipeline creation - which is required for
5099         dynamically created elements.
5101         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
5102         support for using the "vorbistag" element to re-tag ogg vorbis files.
5103         Fixes bug 339878.
5105 2006-05-03  James Livingston  <doclivingston@gmail.com>
5107         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
5109         * plugins/artdisplay/artdisplay.py:
5110         - Fix small bug callback of data loader getting overwritten on fast
5111         connections.
5112         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
5113         Jonathan Matthew)
5114         - Fix Rhythmbox UI blocking while loading/searching cover art
5115         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
5116         - Initial approach to allow additional "art search engines"
5117         - Further modularization in a couple of places
5118         - Minor fixes for empty entries (iradio, album, artist etc.)
5120 2006-05-03  James Livingston  <doclivingston@gmail.com>
5122         * shell/rb-playlist-manager.c:
5123         (rb_playlist_manager_playlist_entries_changed),
5124         (rb_playlist_manager_set_source): don't show the edit/delete/rename
5125         options for non-local sources, rather than showing disabled ones.
5127         * sources/rb-library-source.c: (add_child_sources_idle),
5128         (rb_library_source_constructor), (rb_library_source_new),
5129         (rb_library_source_library_location_changed),
5130         (rb_library_source_add_child_source),
5131         (rb_library_source_sync_child_sources): Create "child library" sources
5132         when the user has multiple library locations set. Fixes bug 100552.
5134 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5136         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
5137         * plugins/sample/sample.rb-plugin.desktop.in:
5138         Finish changing 'Author' to 'Authors'
5139         
5140         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
5141         (rhythmdb_entry_import_error_get_type):
5142         Implement get_playback_uri for import errors (returns NULL)
5144         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
5145         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
5146         entry, rather than doing entry type checks.
5148 2006-05-02  James Livingston  <doclivingston@gmail.com>
5150         patch from Alessandro Decina  <alessandro@nnva.org>
5152         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
5153         the signal emission in the case of fatal-on-init errors. From bug
5154         322268.
5156 2006-05-02  James Livingston  <doclivingston@gmail.com>
5158         * rhythmdb/rhythmdb.h:
5159         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
5160         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
5161         (rhythmdb_entry_podcast_post_get_type),
5162         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
5163         virtual function to entry-types for getting the playback URI. From bug
5164         330226.
5166         * backends/gstreamer/rb-encoder-gst.c:
5167         (create_pipeline_and_source), (extract_track):
5168         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
5169         to get the URI.
5171 2006-05-02  James Livingston  <doclivingston@gmail.com>
5173         patch by: Brian Cameron  <brian.cameron@sun.com>
5175         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
5176         340337.
5178 2006-05-01  William Jon McCann  <mccann@jhu.edu>
5180         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
5181         instead of clear.  Use regex matching to strip "disc N"
5182         from album.  Match titles in ProductName.  Perform
5183         fallback queries including various artist compilations.
5184         Include "us" locale.  Improve queries when artist or album
5185         is unknown.  Use medium size image if large is unavailable.
5187         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
5188         William Jon McCann  <mccann@jhu.edu>
5189         
5190 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5192         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
5193         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
5194         (conjunctive_query): Sanity check.
5195         (evaluate_conjunctive_subquery): 
5196         Don't return TRUE immediately when a relative-time query criterion
5197         matches.  Fixes #339972.
5199 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5201         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5202         Don't crash if primary or secondary are NULL.
5204 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5206         * doc/reference/Makefile.am: fix gtk-doc build yet again
5208 2006-04-28  James Livingston  <doclivingston@gmail.com>
5210         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
5211         python console. Fixes bug 339934.
5213 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5215         * rhythmdb/rhythmdb-property-model.c:
5216         (rhythmdb_property_model_drag_data_get):
5217         When creating uri list drag data, create a new query model based on
5218         the query model the property model is attached to.  Makes the
5219         resulting query use the right entry type and include the upstream
5220         query criteria.  Fixes half of #327540.
5222 2006-04-27  James Livingston  <doclivingston@gmail.com>
5224         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
5225         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
5226         build fixes.
5228 2006-04-27  James Livingston  <doclivingston@gmail.com>
5230         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
5232 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5234         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
5235         (rb_playlist_manager_save_data),
5236         (rb_playlist_manager_save_playlists):
5237         * shell/rb-playlist-manager.h:
5238         * shell/rb-shell.c: (rb_shell_sync_state),
5239         (idle_save_playlist_manager):
5240         Remove a bit more threading insanity from the playlist manager.
5242 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5244         * shell/rb-playlist-manager.c: 
5245         * shell/rb-playlist-manager.h:
5246         Remove dead code, add gtk-doc, remove threading insanity (mostly).
5247         
5248         * shell/rb-shell.c: (rb_shell_sync_state),
5249         (idle_save_playlist_manager), (construct_sources),
5250         (rb_shell_select_source), (rb_shell_sync_party_mode):
5251         Adjustments for above changes.
5253 2006-04-26  William Jon McCann  <mccann@jhu.edu>
5255         * sources/rb-browser-source.c (impl_browser_toggled):
5256         Reset browser when hidden.  Fixes #339617.
5258 2006-04-26  James Livingston  <doclivingston@gmail.com>
5260         * backends/Makefile.am:
5261         * backends/gstreamer/Makefile.am: work again with separated
5262         built-roots
5264 2006-04-26  James Livingston  <doclivingston@gmail.com>
5266         * shell/rb-removable-media-manager.c:
5267         (rb_removable_media_manager_set_uimanager): fix compilation with
5268         -Werror and --enable-track-transfer.
5270 2006-04-26  James Livingston  <doclivingston@gmail.com>
5272         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
5273         implementing class. In theory allows alternate player implementations
5274         to be selected at run-time rather than compile-time. Fixes bug 338667.
5276         * Makefile.am:
5277         * backends/Makefile.am:
5278         * backends/gstreamer/Makefile.am:
5279         * backends/gstreamer/rb-player-gst.h:
5280         * backends/rb-player.c: (rb_player_interface_init),
5281         (rb_player_get_type), (rb_player_open), (rb_player_opened),
5282         (rb_player_close), (rb_player_play), (rb_player_pause),
5283         (rb_player_playing), (rb_player_set_volume),
5284         (rb_player_get_volume), (rb_player_set_replaygain),
5285         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
5286         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
5287         (_rb_player_emit_buffering), (_rb_player_emit_error),
5288         (_rb_player_emit_tick), (rb_player_error_quark):
5289         * player/Makefile.am:
5290         * player/rb-player-gst.c: (rb_player_gst_class_init),
5291         (rb_player_init), (tick_timeout), (rb_player_gst_init),
5292         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
5293         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
5294         (process_tag), (found_tag_cb), (buffering_cb),
5295         (rb_player_gst_bus_cb), (rb_player_gst_construct),
5296         (rb_player_gst_new):
5297         * player/rb-player.h:
5298         * shell/Makefile.am:
5299         * sources/rb-audiocd-source.c:
5300         * widgets/Makefile.am:
5301         * widgets/rb-header.c: (rb_header_class_init):
5303 2006-04-26  James Livingston  <doclivingston@gmail.com>
5305         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
5306         don't try to download an episode if it couldn't be parsed. Fixes bug
5307         339712.
5309         * shell/rb-removable-media-manager.c:
5310         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
5311         Library" option when track transfer is disabled. Fixes bug 339728.
5313 2006-04-26  James Livingston  <doclivingston@gmail.com>
5315         * data/ui/Makefile.am:
5316         * data/ui/daap-ui.xml:
5317         * data/ui/rhythmbox-ui.xml:
5318         * sources/rb-daap-source.c: (rb_daap_sources_init),
5319         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
5320         way that the ipod ui is. Fixes bug 339743.
5322 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5324         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
5325         (process_added_entries_cb), (process_deleted_entries_cb),
5326         (rhythmdb_commit_internal): 
5327         Combine the idle functions to emit entry-added and entry-deleted,
5328         and combine as many invocations of same as possible.  Another
5329         significant reduction in startup time.
5330         
5331         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
5332         Delay the next call to rhythmdb_process_events if the queue is
5333         empty or if we can't process any of the events in the queue because
5334         the database is read only.
5336         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
5338 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5340         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
5342         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
5343         Don't special case errors quite so much.
5345 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5347         * data/rhythmbox.schemas: Remove default speed.
5349         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
5350         Add n-c-b 2.15 support.  Make the default speed to slowest since
5351         that is all that works reliably.
5353 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5355         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
5356         Fix compiler error from last commit.
5358 2006-04-25  James Livingston  <doclivingston@gmail.com>
5360         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
5361         transcoding-related issues. From bug 322268.
5363         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
5364         don't emit the signal, since the object is being finalised, which os a
5365         Bad Thing To Do.
5367         (profile_bin_find_encoder), (get_profile_from_mime_type),
5368         (transcode_track): find the encoding element by iterating looking for
5369         element in the class Codec/Encoder/Audio rather than the one named
5370         "enc".
5372 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5374         * shell/rb-shell-player.xml:
5375         * shell/rb-shell.xml:
5376         Add signal argument information.  
5377         Patch by Tim Moloney  <t.moloney@verizon.net>
5379         * shell/rb-shell.c: (rb_shell_window_state_cb):
5380         Use the right value for the visibility_changed signal.  Most of the
5381         time, anyway.
5383 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5385         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5386         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5387         (impl_create_configure_dialog):
5388         * data/glade/audioscrobbler-prefs.glade:
5389         * shell/rb-audioscrobbler.c (*):
5390         * lib/rb-preferences.h:
5391         * data/rhythmbox.schemas:
5392         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
5393         Add status information (# tracks submitted, # queued, last submit
5394         time, result of last submission) to the plugin config window.
5395         Remove 'enabled' setting, since it's easier to just disable the
5396         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
5397         nonexistant (so far) 'last.fm streaming' plugin.
5398         
5399         * help/C/rhythmbox.xml: Update documentation for last.fm profile
5400         plugin
5402         Fixes some of #325848.  We still don't provide a way to view the
5403         submission queue.
5405 2006-04-25  James Livingston  <doclivingston@gmail.com>
5407         patch by: Anders Petersson  <demitar@worldforge.org>
5409         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
5410         the YY-MM-DD format.
5412 2006-04-23  James Livingston  <doclivingston@gmail.com>
5414         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
5415         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
5416         * bindings/python/override_common.h:
5417         * bindings/python/rb.override: python binding fixes
5419 2006-04-23  James Livingston  <doclivingston@gmail.com>
5421         * shell/rb-statusbar.c: (rb_statusbar_finalize),
5422         (rb_statusbar_sync_with_source),
5423         (rb_statusbar_source_status_changed_cb): do the sync in an idle
5424         callback, rather than immediately every time. Takes ~5% off my warm-cache
5425         startup time.
5427         * bindings/python/rhythmdb.defs: fix the types using for
5428         RhythmDBEntryTypes.
5430 2006-04-22  James Livingston  <doclivingston@gmail.com>
5432         * data/ui/rhythmbox-ui.xml:
5433         * shell/rb-shell.c:
5434         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5435         (remove_source), (rb_daap_sources_init),
5436         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
5437         (rb_daap_source_disconnect):
5438         * sources/rb-source.c: (rb_source_class_init),
5439         (rb_source_deactivate):
5440         * sources/rb-source.h: move the "disconnect" functionality from into
5441         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
5443 2006-04-22  James Livingston  <doclivingston@gmail.com>
5445         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
5446         actually get the translated strings for browser headers (they were
5447         already marked as translatable). Fixes bug 339380.
5449 2006-04-22  James Livingston  <doclivingston@gmail.com>
5451         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
5452         submission timeout when the object is finalised.
5454         * bindings/python/Makefile.am:
5455         * bindings/python/rb.defs:
5456         * bindings/python/rb.override:
5457         * bindings/python/rhythmdb.defs: fix some python binding stuff.
5459         * widgets/rb-library-browser.c:
5460         (rb_library_browser_construct_query), (rebuild_output_model),
5461         (rebuild_child_model):
5462         * widgets/rb-library-browser.h: change from GPtrArray to
5463         RhythmDBQuery (which in C is the same thing).
5465 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5467         * shell/rb-shell.c: (rb_shell_get_song_properties):
5468         Don't try to include entry-type (or anything else not easily
5469         marshallable) in the song properties hash table.
5471         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
5473         * sources/rb-playlist-source.c: (rb_playlist_source_init),
5474         (rb_playlist_source_constructor): Fix entry-type initialization as
5475         with previous commit.
5477 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5479         * sources/rb-iradio-source.c: (rb_iradio_source_init),
5480         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
5481         * sources/rb-podcast-source.c: (rb_podcast_source_init),
5482         (rb_podcast_source_constructor):
5483         Set default values for entry-type after base class construction,
5484         rather than in _init, because gobject will set the entry-type property
5485         to NULL after _init if no value is provided.  Fixes #339206.
5487 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
5489         patch by: Gunnar Steinn Magnusson
5491         * COPYING:
5492         * backends/gstreamer/rb-encoder-gst.c:
5493         * backends/gstreamer/rb-encoder-gst.h:
5494         * backends/rb-encoder.c:
5495         * backends/rb-encoder.h:
5496         * bindings/python/override_common.c:
5497         * bindings/python/override_common.h:
5498         * daapsharing/rb-daap-connection.c:
5499         * daapsharing/rb-daap-connection.h:
5500         * daapsharing/rb-daap-dialog.c:
5501         * daapsharing/rb-daap-dialog.h:
5502         * daapsharing/rb-daap-mdns-browser-avahi.c:
5503         * daapsharing/rb-daap-mdns-browser-howl.c:
5504         * daapsharing/rb-daap-mdns-browser.h:
5505         * daapsharing/rb-daap-mdns-publisher-avahi.c:
5506         * daapsharing/rb-daap-mdns-publisher-howl.c:
5507         * daapsharing/rb-daap-mdns-publisher.h:
5508         * daapsharing/rb-daap-share.c:
5509         * daapsharing/rb-daap-share.h:
5510         * daapsharing/rb-daap-sharing.c:
5511         * daapsharing/rb-daap-sharing.h:
5512         * daapsharing/rb-daap-src.c:
5513         * daapsharing/rb-daap-src.h:
5514         * daapsharing/rb-daap-structure.c:
5515         * daapsharing/rb-daap-structure.h:
5516         * help/C/fdl-appendix.xml:
5517         * help/es/es.po:
5518         * help/ja/fdl-appendix.xml:
5519         * iradio/rb-new-station-dialog.c:
5520         * iradio/rb-new-station-dialog.h:
5521         * iradio/rb-station-properties-dialog.c:
5522         * iradio/rb-station-properties-dialog.h:
5523         * lib/mkdtemp.c:
5524         * lib/mkdtemp.h:
5525         * lib/rb-cut-and-paste-code.c:
5526         * lib/rb-cut-and-paste-code.h:
5527         * lib/rb-debug.c:
5528         * lib/rb-debug.h:
5529         * lib/rb-file-helpers.c:
5530         * lib/rb-file-helpers.h:
5531         * lib/rb-glade-helpers.c:
5532         * lib/rb-glade-helpers.h:
5533         * lib/rb-preferences.h:
5534         * lib/rb-proxy-config.c:
5535         * lib/rb-stock-icons.c:
5536         * lib/rb-stock-icons.h:
5537         * lib/rb-thread.c:
5538         * lib/rb-thread.h:
5539         * lib/rb-tree-dnd.c:
5540         * lib/rb-tree-dnd.h:
5541         * lib/rb-util.c:
5542         * lib/rb-util.h:
5543         * metadata/rb-metadata-common.c:
5544         * metadata/rb-metadata-dbus-client.c:
5545         * metadata/rb-metadata-dbus-service.c:
5546         * metadata/rb-metadata-dbus.c:
5547         * metadata/rb-metadata-dbus.h:
5548         * metadata/rb-metadata-gst.c:
5549         * metadata/rb-metadata.h:
5550         * metadata/sj-error.c:
5551         * metadata/sj-error.h:
5552         * metadata/sj-metadata-musicbrainz.c:
5553         * metadata/sj-metadata-musicbrainz.h:
5554         * metadata/sj-metadata.c:
5555         * metadata/sj-metadata.h:
5556         * metadata/sj-structures.c:
5557         * metadata/sj-structures.h:
5558         * metadata/test-metadata.c:
5559         * player/rb-player-gst.c:
5560         * player/rb-player.h:
5561         * player/rb-recorder-gst.c:
5562         * player/rb-recorder.h:
5563         * plugins/artdisplay/artdisplay.py:
5564         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5565         * plugins/ipod/rb-ipod-plugin.c:
5566         * plugins/lirc/rb-lirc-plugin.c:
5567         * plugins/pythonconsole/pythonconsole.py:
5568         * plugins/rb-module.c:
5569         * plugins/rb-module.h:
5570         * plugins/rb-plugin-manager.c:
5571         * plugins/rb-plugin-manager.h:
5572         * plugins/rb-plugin.c:
5573         * plugins/rb-plugin.h:
5574         * plugins/rb-plugins-engine.c:
5575         * plugins/rb-plugins-engine.h:
5576         * plugins/rb-python-module.c:
5577         * plugins/rb-python-module.h:
5578         * plugins/rb-python-plugin.c:
5579         * plugins/rb-python-plugin.h:
5580         * plugins/sample/rb-sample-plugin.c:
5581         * po/de.po:
5582         * po/el.po:
5583         * po/en_CA.po:
5584         * po/eu.po:
5585         * po/fi.po:
5586         * po/fr.po:
5587         * po/it.po:
5588         * po/ja.po:
5589         * po/mk.po:
5590         * po/pt_BR.po:
5591         * po/ru.po:
5592         * podcast/rb-feed-podcast-properties-dialog.c:
5593         * podcast/rb-feed-podcast-properties-dialog.h:
5594         * podcast/rb-new-podcast-dialog.c:
5595         * podcast/rb-new-podcast-dialog.h:
5596         * podcast/rb-podcast-manager.c:
5597         * podcast/rb-podcast-manager.h:
5598         * podcast/rb-podcast-parse.c:
5599         * podcast/rb-podcast-parse.h:
5600         * podcast/rb-podcast-properties-dialog.c:
5601         * podcast/rb-podcast-properties-dialog.h:
5602         * remote/bonobo/libmain.c:
5603         * remote/bonobo/rb-nautilus-context-menu.c:
5604         * remote/bonobo/rb-nautilus-context-menu.h:
5605         * remote/bonobo/rb-remote-bonobo.c:
5606         * remote/bonobo/rb-remote-bonobo.h:
5607         * remote/rb-remote-client-proxy.c:
5608         * remote/rb-remote-client-proxy.h:
5609         * remote/rb-remote-common.c:
5610         * remote/rb-remote-common.h:
5611         * remote/rb-remote-proxy.c:
5612         * remote/rb-remote-proxy.h:
5613         * rhythmdb/gsequence.c:
5614         * rhythmdb/gsequence.h:
5615         * rhythmdb/rb-refstring.c:
5616         * rhythmdb/rb-refstring.h:
5617         * rhythmdb/rhythmdb-gda.c:
5618         * rhythmdb/rhythmdb-gda.h:
5619         * rhythmdb/rhythmdb-private.h:
5620         * rhythmdb/rhythmdb-property-model.c:
5621         * rhythmdb/rhythmdb-property-model.h:
5622         * rhythmdb/rhythmdb-query-model.c:
5623         * rhythmdb/rhythmdb-query-model.h:
5624         * rhythmdb/rhythmdb-query-results.c:
5625         * rhythmdb/rhythmdb-query-results.h:
5626         * rhythmdb/rhythmdb-tree.c:
5627         * rhythmdb/rhythmdb-tree.h:
5628         * rhythmdb/rhythmdb.c:
5629         * rhythmdb/rhythmdb.h:
5630         * shell/main.c:
5631         * shell/rb-audioscrobbler.c:
5632         * shell/rb-audioscrobbler.h:
5633         * shell/rb-history.c:
5634         * shell/rb-history.h:
5635         * shell/rb-play-order-linear-loop.c:
5636         * shell/rb-play-order-linear-loop.h:
5637         * shell/rb-play-order-linear.c:
5638         * shell/rb-play-order-linear.h:
5639         * shell/rb-play-order-queue.c:
5640         * shell/rb-play-order-queue.h:
5641         * shell/rb-play-order-random-by-age-and-rating.c:
5642         * shell/rb-play-order-random-by-age-and-rating.h:
5643         * shell/rb-play-order-random-by-age.c:
5644         * shell/rb-play-order-random-by-age.h:
5645         * shell/rb-play-order-random-by-rating.c:
5646         * shell/rb-play-order-random-by-rating.h:
5647         * shell/rb-play-order-random-equal-weights.c:
5648         * shell/rb-play-order-random-equal-weights.h:
5649         * shell/rb-play-order-random.c:
5650         * shell/rb-play-order-random.h:
5651         * shell/rb-play-order-shuffle.c:
5652         * shell/rb-play-order-shuffle.h:
5653         * shell/rb-play-order.c:
5654         * shell/rb-play-order.h:
5655         * shell/rb-playlist-manager.c:
5656         * shell/rb-playlist-manager.h:
5657         * shell/rb-removable-media-manager.c:
5658         * shell/rb-removable-media-manager.h:
5659         * shell/rb-shell-clipboard.c:
5660         * shell/rb-shell-clipboard.h:
5661         * shell/rb-shell-player.c:
5662         * shell/rb-shell-player.h:
5663         * shell/rb-shell-preferences.c:
5664         * shell/rb-shell-preferences.h:
5665         * shell/rb-shell.c:
5666         * shell/rb-shell.h:
5667         * shell/rb-source-header.c:
5668         * shell/rb-source-header.h:
5669         * shell/rb-statusbar.c:
5670         * shell/rb-statusbar.h:
5671         * shell/rb-tray-icon.c:
5672         * shell/rb-tray-icon.h:
5673         * sources/rb-audiocd-source.c:
5674         * sources/rb-audiocd-source.h:
5675         * sources/rb-auto-playlist-source.c:
5676         * sources/rb-auto-playlist-source.h:
5677         * sources/rb-browser-source.c:
5678         * sources/rb-browser-source.h:
5679         * sources/rb-daap-source.c:
5680         * sources/rb-daap-source.h:
5681         * sources/rb-generic-player-source.c:
5682         * sources/rb-generic-player-source.h:
5683         * sources/rb-import-errors-source.c:
5684         * sources/rb-import-errors-source.h:
5685         * sources/rb-ipod-source.c:
5686         * sources/rb-ipod-source.h:
5687         * sources/rb-iradio-source.c:
5688         * sources/rb-iradio-source.h:
5689         * sources/rb-library-source.c:
5690         * sources/rb-library-source.h:
5691         * sources/rb-missing-files-source.c:
5692         * sources/rb-missing-files-source.h:
5693         * sources/rb-nokia770-source.c:
5694         * sources/rb-nokia770-source.h:
5695         * sources/rb-play-queue-source.c:
5696         * sources/rb-play-queue-source.h:
5697         * sources/rb-playlist-source-recorder.c:
5698         * sources/rb-playlist-source-recorder.h:
5699         * sources/rb-playlist-source.c:
5700         * sources/rb-playlist-source.h:
5701         * sources/rb-playlist-xml.h:
5702         * sources/rb-podcast-source.c:
5703         * sources/rb-podcast-source.h:
5704         * sources/rb-psp-source.c:
5705         * sources/rb-psp-source.h:
5706         * sources/rb-removable-media-source.c:
5707         * sources/rb-removable-media-source.h:
5708         * sources/rb-source.c:
5709         * sources/rb-source.h:
5710         * sources/rb-sourcelist-model.c:
5711         * sources/rb-sourcelist-model.h:
5712         * sources/rb-sourcelist.c:
5713         * sources/rb-sourcelist.h:
5714         * sources/rb-static-playlist-source.c:
5715         * sources/rb-static-playlist-source.h:
5716         * tests/test-cd.c:
5717         * tests/test-cmdline.c:
5718         * tests/test-rhythmdb-indexing.c:
5719         * tests/test-rhythmdb-query.c:
5720         * tests/test-rhythmdb-simple.c:
5721         * tests/test-rhythmdb-tree-deserialization.c:
5722         * tests/test-rhythmdb-tree-serialization.c:
5723         * tests/test-rhythmdb-view.c:
5724         * widgets/bacon-volume.c:
5725         * widgets/bacon-volume.h:
5726         * widgets/disclosure-widget.c:
5727         * widgets/disclosure-widget.h:
5728         * widgets/eel-gconf-extensions.c:
5729         * widgets/eel-gconf-extensions.h:
5730         * widgets/eggtrayicon.c:
5731         * widgets/eggtrayicon.h:
5732         * widgets/libsexy/sexy-icon-entry.c:
5733         * widgets/libsexy/sexy-icon-entry.h:
5734         * widgets/rb-cell-renderer-pixbuf.c:
5735         * widgets/rb-cell-renderer-pixbuf.h:
5736         * widgets/rb-cell-renderer-rating.c:
5737         * widgets/rb-cell-renderer-rating.h:
5738         * widgets/rb-dialog.c:
5739         * widgets/rb-dialog.h:
5740         * widgets/rb-druid.c:
5741         * widgets/rb-druid.h:
5742         * widgets/rb-entry-view.c:
5743         * widgets/rb-entry-view.h:
5744         * widgets/rb-header.c:
5745         * widgets/rb-header.h:
5746         * widgets/rb-library-browser.c:
5747         * widgets/rb-library-browser.h:
5748         * widgets/rb-property-view.c:
5749         * widgets/rb-property-view.h:
5750         * widgets/rb-query-creator-private.h:
5751         * widgets/rb-query-creator-properties.c:
5752         * widgets/rb-query-creator.c:
5753         * widgets/rb-query-creator.h:
5754         * widgets/rb-rating-helper.c:
5755         * widgets/rb-rating-helper.h:
5756         * widgets/rb-rating.c:
5757         * widgets/rb-rating.h:
5758         * widgets/rb-search-entry.c:
5759         * widgets/rb-search-entry.h:
5760         * widgets/rb-song-display-box.c:
5761         * widgets/rb-song-display-box.h:
5762         * widgets/rb-song-info.c:
5763         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
5765 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
5767         patch by: Gareth Murphy, James Livingston
5769         * bindings/python/rb.defs:
5770         * configure.ac:
5771         * plugins/Makefile.am:
5772         * plugins/artdisplay/Makefile.am:
5773         * plugins/artdisplay/artdisplay.py:
5774         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
5775         * plugins/rb-python-module.c: (rb_python_module_init_python):
5776         * shell/rb-shell.c: (construct_widgets),
5777         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
5778         (rb_shell_add_widget), (rb_shell_remove_widget),
5779         (rb_shell_ui_location_get_type):
5780         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
5782 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5784         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5785         Fix build failure caused by the combination of the previous two
5786         commits.
5788 2006-04-20  James Livingston  <doclivingston@gmail.com>
5790         patch by: Christophe Fergeau  <teuf@gnome.org> to make
5791         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
5792         table to the entry types, which will allow us to get rid of some of
5793         the "if entry type == WHATEVER" code everywhere. From bug 
5795         * bindings/python/rb.defs:
5796         * bindings/python/rb.override:
5797         * bindings/python/rhythmdb.defs:
5798         * bindings/python/rhythmdb.override:
5799         * daapsharing/rb-daap-connection.c:
5800         (rb_daap_connection_class_init), (rb_daap_connection_init),
5801         (rb_daap_connection_set_property),
5802         (rb_daap_connection_get_property):
5803         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
5804         * podcast/rb-podcast-manager.c:
5805         (rb_podcast_manager_entry_downloaded),
5806         (rb_podcast_manager_subscribe_feed),
5807         (rb_podcast_manager_db_entry_added_cb),
5808         (rb_podcast_manager_db_entry_deleted_cb),
5809         (rb_podcast_manager_insert_feed):
5810         * rhythmdb/rhythmdb-private.h:
5811         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5812         (conjunctive_query):
5813         * rhythmdb/rhythmdb.c: (sync_entry_changed),
5814         (process_added_entries_cb), (rhythmdb_entry_allocate),
5815         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
5816         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
5817         (rhythmdb_process_metadata_load),
5818         (rhythmdb_process_file_created_or_modified), (action_thread_main),
5819         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
5820         (write_encoded_gvalue), (read_encoded_property),
5821         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
5822         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
5823         (rhythmdb_entry_iradio_get_type),
5824         (rhythmdb_entry_podcast_post_get_type),
5825         (rhythmdb_entry_podcast_feed_get_type),
5826         (rhythmdb_entry_import_error_get_type),
5827         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
5828         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
5829         (rhythmdb_entry_type_get_type):
5830         * rhythmdb/rhythmdb.h:
5831         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5832         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
5833         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
5834         (rb_shell_player_entry_activated_cb), (info_available_cb):
5835         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
5836         (rb_shell_register_entry_type_for_source),
5837         (rb_shell_playing_from_queue_cb),
5838         (rb_shell_playing_entry_changed_cb),
5839         (rb_shell_player_stream_song_changed_cb),
5840         (rb_shell_jump_to_entry_with_source),
5841         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
5842         (handle_playlist_entry_cb), (rb_shell_load_uri):
5843         * shell/rb-shell.h:
5844         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
5845         * sources/rb-browser-source.c: (rb_browser_source_class_init),
5846         (rb_browser_source_init), (rb_browser_source_set_property),
5847         (rb_browser_source_get_property):
5848         * sources/rb-ipod-source.c: (impl_paste):
5849         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
5850         (rb_iradio_source_init), (rb_iradio_source_set_property),
5851         (rb_iradio_source_get_property):
5852         * sources/rb-library-source.c: (impl_paste):
5853         * sources/rb-missing-files-source.c:
5854         (rb_missing_files_source_class_init),
5855         (rb_missing_files_source_init),
5856         (rb_missing_files_source_set_property),
5857         (rb_missing_files_source_get_property):
5858         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
5859         (rb_playlist_source_init), (rb_playlist_source_set_property),
5860         (rb_playlist_source_get_property):
5861         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5862         (rb_podcast_source_init), (rb_podcast_source_set_property),
5863         (rb_podcast_source_get_property):
5864         * sources/rb-static-playlist-source.c:
5865         (rb_static_playlist_source_add_location_internal):
5867 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5869         * rhythmdb/rhythmdb.c: (rhythmdb_init),
5870         (rhythmdb_add_import_error_entry),
5871         (entry_volume_mounted_or_unmounted),
5872         (rhythmdb_volume_unmounted_cb):
5873         When a volume is unmounted, delete import errors for files stored on
5874         it.  When a volume is mounted, stat all tracks stored on it, rather
5875         than assuming they're present.  Fixes #339023.
5877 2006-04-20  James Livingston  <doclivingston@gmail.com>
5879         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
5880         browser visibility for non-gconf-using sources (like playlists). Part
5881         of bug 118862.
5883         * shell/rb-source-header.c: (sourcestate_free),
5884         (rb_source_header_init), (rb_source_header_finalize),
5885         (rb_source_header_source_weak_destroy_cb): switch from storing the
5886         search string to storing a "source state" structure
5888         (rb_source_header_set_source_internal),  (rb_source_state_sync),
5889         (rb_source_header_search_cb), (rb_source_header_clear_search),
5890         (rb_source_header_disclosure_toggled_cb): as well as storing the
5891         string, stop the visibility of the source's browser.
5893 2006-04-20  James Livingston  <doclivingston@gmail.com>
5895         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
5896         library entries back into the library. Fixes bug 339065.
5898 2006-04-20  James Livingston  <doclivingston@gmail.com>
5900         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
5901         only exists in glib 2.10.
5903 2006-04-20  James Livingston  <doclivingston@gmail.com>
5905         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
5906         Solaris. From bug 335318.
5908         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
5909         * shell/rb-audioscrobbler.c:
5910         * sources/rb-psp-source.c:
5912 2006-04-20  James Livingston  <doclivingston@gmail.com>
5914         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
5915         issues for some people.
5917         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
5918         accidental s/suffix/prefix/
5920         * sources/rb-auto-playlist-source.c:
5921         (rb_auto_playlist_source_set_query): fix the invered logic preventing
5922         you from sorting playlists which aren't limited by time.
5924 2006-04-19  James Livingston  <doclivingston@gmail.com>
5926         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
5927         duration or bitrate back to the file, since they are properties of the
5928         audio data, not tags we can set.
5930 2006-04-19  James Livingston  <doclivingston@gmail.com>
5932         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
5933         of libtool, to fix builds which are using a different version. Fixes
5934         bug 338996.
5936         * shell/Makefile.am:
5938 2006-04-19  James Livingston  <doclivingston@gmail.com>
5940         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
5941         to sync data to a file which is uneditable.
5943 2006-04-19  James Livingston  <doclivingston@gmail.com>
5945         patch by: Gavin Stewart  <gavin@brokentrain.net>
5947         * data/glade/playlist-save.glade:
5948         * data/glade/Makefile.am:
5949         * po/POTFILES.in: add the playlist saving dialog.
5951         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
5952         (export_set_extension_cb), (filter_get_export_filter_label),
5953         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
5954         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
5955         formats (PLS and M3U at the moment). Fixes bug 316295.
5957 2006-04-19  James Livingston  <doclivingston@gmail.com>
5959         * shell/rb-playlist-manager.c:
5960         (rb_playlist_manager_set_source_internal): don't let you edit remove
5961         auto playlists.
5963         * sources/rb-auto-playlist-source.c:
5964         (rb_auto_playlist_source_set_query): correctly handle time-limited
5965         playlists.
5967 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5969         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
5971         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
5972         Don't crash if the queue file contains no newlines.
5973         Fixes #338924.
5975 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
5977         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
5978         condition
5980 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
5982         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
5983         case. Moreover, they may not exist yet, so take that into account when
5984         generating the iPod filename.
5986 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
5988         * sources/rb-ipod-source.c: added support for drag and drop from the
5989         library to the iPod (only enabled if --enable-track-transfer was
5990         passed to configure)
5992 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
5994         * configure.ac:
5995         * lib/rb-marshal.list:
5996         * lib/rb-util.c: 
5997         * lib/rb-util.h:
5998         * plugins/Makefile.am:
5999         * plugins/ipod/Makefile.am:
6000         * plugins/ipod/ipod.rb-plugin.desktop.in:
6001         * plugins/ipod/rb-ipod-plugin.c: 
6002         * plugins/rb-plugin.h:
6003         * shell/Makefile.am:
6004         * shell/rb-removable-media-manager.c:
6005         * shell/rb-removable-media-manager.h:
6006         * shell/rb-shell.c: 
6007         * sources/Makefile.am:
6008         * sources/rb-ipod-source.c: 
6009         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
6010         various iPod related files should be moved to plugins/ipod/ now...
6012 2006-04-17  James Livingston  <doclivingston@gmail.com>
6014         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
6015         and "vic".
6017         * help/C/figures/rb-iradio-main.png:
6018         * help/C/figures/rb-notification-area-menu.png:
6019         * help/C/figures/rb-notification-window.png:
6020         * help/C/figures/rb-notification-zone.png:
6021         * help/C/figures/rb-podcast-main.png:
6022         * help/C/figures/rb-statusbar.png:
6023         * help/C/figures/rb-volume-changer.png:
6024         * help/C/figures/rb-window-small.png:
6025         * help/C/figures/rb-window.png:
6026         * help/C/rhythmbox.xml:
6028 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6030         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
6031         more obviously.
6033         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6034         (make_undecodable_error), (rb_metadata_gst_error_cb),
6035         (rb_metadata_gst_new_decoded_pad_cb),
6036         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
6037         Ignore really small files (<4kB) for which typefinding fails.
6038         Always link decoded pads from decodebin to fakesink.
6039         Shut the pipeline down by posting an error on the bus when decodebin
6040         emits unknown-type signals.  Fixes bug #338062.
6042 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6044         * shell/rb-shell.c: (rb_shell_load_uri):
6045         Fix glaring mistakes in previous commit: actually pass arguments to
6046         rb_debug, and specify the right entry type when adding a new iradio
6047         station so we don't try to add local playlist files to the library.
6049 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6051         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
6052         before trying to add them, as iradio streams often fail rb_uri_exists().
6054         * shell/rb-shell-player.c: (notify_playing_idle),
6055         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
6056         (open_location_thread), (rb_shell_player_open_location),
6057         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
6058         (eos_cb):  When playing an iradio stream using a playlist, keep a list
6059         of all the stream URLs, and try them in turn.  If we get through the
6060         whole playlist too quickly, error out.  Various other fixes that make
6061         iradio work a lot better.
6063         * shell/rb-shell.c: (add_to_library_response_cb),
6064         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6065         (handle_playlist_entry_cb), (rb_shell_load_uri):
6066         Add playlists containing streams as iradio stations.  If the playlist
6067         is local, add each stream URL, but if the playlist is remote, just add
6068         the playlist URL.
6069         
6070         * sources/rb-iradio-source.c: (new_station_location_added):
6071         Add new station URLs as-is, rather than parsing the playlist and
6072         adding the streams.
6073         
6074         * rhythmdb/rhythmdb-query-model.c:
6075         (rhythmdb_query_model_entry_changed_cb),
6076         (rhythmdb_query_model_emit_reorder),
6077         (rhythmdb_query_model_do_reorder):
6078         Emit row-changed notifications when an entry changes but is not
6079         reordered.
6081         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
6082         Display the playback error icon when the entry has an error and
6083         there's nothing else to display.
6084         
6085         Fixes bug #320336 and some of #324402.
6086         
6087 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6089         * sources/rb-ipod-source.c: use a GHashTable for the
6090         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
6091         time, this fixes compilation breakage for people not having libgpod
6092         CVS HEAD
6094 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
6096         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6098         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
6099         (rb_podcast_manager_insert_feed):
6100         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
6101         fixes bug 321945
6103 2006-04-16  James Livingston  <doclivingston@gmail.com>
6105         * sources/rb-library-source.c:
6106         (rb_library_source_library_location_cb): return FALSE like we are
6107         supposed to, not void.
6109         patch by: FreeBSD GNOME Project
6110         * configure.ac: fix some bash-isms.
6112         patch by: Pawel Worach  <pawel.worach@gmail.com>
6113         * metadata/rb-metadata-dbus-client.c:
6114         * rhythmdb/rhythmdb-query-model.c:
6115         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
6118 2006-04-16  James Livingston  <doclivingston@gmail.com>
6120         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
6121         for transcoding to RBEncoderGst.
6123         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
6124         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
6125         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
6126         (add_decoding_pipeline), (encoder_match_mime),
6127         (get_profile_from_mime_type), (extract_track), (transcode_track),
6128         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
6130 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6132         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
6133         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
6134         load_ipod_db_idle_cb to a new separate function
6136 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6138         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
6139         source
6141 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6143         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
6144         variables
6146 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6148         * data/ui/Makefile.am:
6149         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
6150         menu
6151         * lib/rb-util.c: check if the widget we got from the UI manager isn't
6152         NULL before using it as a popup menu
6153         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
6154         'eject' an iPod
6156 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6158         * sources/rb-ipod-source.c: when hal tells us a partition is on an
6159         iPod, check if it contains an iPod database before using it (in case
6160         the iPod was repartitionned somehow). Should fix bug #325034
6162 2006-04-16  Steve Frécinaux  <steve@istique.net>
6164         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
6166         * data/Makefile.am: install application icon into the default theme.
6168         * data/rhythmbox.desktop.in: don't specify icon file extension.
6169         
6170         * shell/main.c: (main): set default window icon from theme.
6171         
6172         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
6173         code concerning window icon, and fix leak by unreferencing the about
6174         logo pixbuf once it's not used anymore.
6176 2006-04-16  James Livingston  <doclivingston@gmail.com>
6178         * configure.ac: bump version to 0.9.4
6179         * NEWS: update NEWS and 0.9.4 insert translations
6181 2006-04-16  James Livingston  <doclivingston@gmail.com>
6183         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
6184         namespace automatically.
6186 2006-04-16  James Livingston  <doclivingston@gmail.com>
6188         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
6190         * doc/reference/Makefile.am:
6191         * doc/reference/rhythmbox.types: make distcheck work again
6193         * doc/reference/tmpl/eggnotificationbubble.sgml:
6194         * doc/reference/tmpl/eggtrayicon.sgml:
6195         * doc/reference/tmpl/rb-debug.sgml:
6196         * doc/reference/tmpl/rb-entry-view.sgml:
6197         * doc/reference/tmpl/rb-enums.sgml:
6198         * doc/reference/tmpl/rb-metadata.sgml:
6199         * doc/reference/tmpl/rb-new-station-dialog.sgml:
6200         * doc/reference/tmpl/rb-playlist-manager.sgml:
6201         * doc/reference/tmpl/rb-refstring.sgml:
6202         * doc/reference/tmpl/rb-shell-player.sgml:
6203         * doc/reference/tmpl/rb-shell-preferences.sgml:
6204         * doc/reference/tmpl/rb-shell.sgml:
6205         * doc/reference/tmpl/rb-song-info.sgml:
6206         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
6207         * doc/reference/tmpl/rb-statusbar.sgml:
6208         * doc/reference/tmpl/rhythmbox-unused.sgml:
6209         * doc/reference/tmpl/rhythmdb-query-model.sgml:
6210         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
6212 2006-04-16  James Livingston  <doclivingston@gmail.com>
6214         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
6216         * po/LINGUAS: don't split the variable across two lines, as it breaks
6217         the build. Fixes bug 338625.
6219 2006-04-15  James Livingston  <doclivingston@gmail.com>
6221         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
6222         add a "sourcelist-model" gobject property.
6224 2006-04-14  William Jon McCann  <mccann@jhu.edu>
6226         * .cvsignore:
6227         * backends/.cvsignore:
6228         * backends/gstreamer/.cvsignore:
6229         * bindings/.cvsignore:
6230         * bindings/python/.cvsignore:
6231         * help/es/.cvsignore:
6232         * metadata/.cvsignore:
6233         * plugins/.cvsignore:
6234         * plugins/audioscrobbler/.cvsignore:
6235         * plugins/lirc/.cvsignore:
6236         * plugins/pythonconsole/.cvsignore:
6237         * plugins/sample-python/.cvsignore:
6238         * plugins/sample/.cvsignore:
6239         * shell/.cvsignore:
6240         * widgets/libsexy/.cvsignore:
6241         Make CVS ignore files.
6243 2006-04-14  James Livingston  <doclivingston@gmail.com>
6245         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
6246         the track-loading thread hold a reference on the source, so it doesn't
6247         explode if the cd is removed before it is done. Fixes bug 337237.
6249 2006-04-14  James Livingston  <doclivingston@gmail.com>
6251         * bindings/python/override_common.c:
6252         (_helper_unwrap_pointer_pylist):
6253         * bindings/python/override_common.h:
6254         * bindings/python/rb.override:
6255         * bindings/python/rhythmdb.override: Bind some more functions and
6256         virtual functions.
6258         * shell/rb-shell.c: (rb_shell_select_source):
6259         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
6260         * sources/rb-audiocd-source.c:
6261         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
6262         * sources/rb-browser-source.c: (impl_get_search_actions):
6263         * sources/rb-iradio-source.c: (impl_get_ui_actions):
6264         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
6265         * sources/rb-playlist-source.c: (impl_get_ui_actions):
6266         * sources/rb-podcast-source.c: (impl_get_ui_actions),
6267         (impl_get_search_actions):
6268         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
6269         the impl_get_ui_actions and impl_get_search_actions functions return
6270         lists that contain copies of the strings, instead of constant ones.
6271         Needed to bindings
6273 2006-04-14  James Livingston  <doclivingston@gmail.com>
6275         * bindings/python/rhythmdb.defs:
6276         * bindings/python/rhythmdb.override: fix the method argument format
6277         specifiers.
6279 2006-04-14  James Livingston  <doclivingston@gmail.com>
6281         * bindings/python/rhythmdb.defs:
6282         * bindings/python/rhythmdb.override:
6283         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
6284         (entry_to_rb_metadata), (record_entry_change),
6285         (rhythmdb_entry_set_visibility):
6286         * rhythmdb/rhythmdb.h:
6287         * shell/rb-shell.c: (rb_shell_get_song_properties): change
6288         rhythmdb_entry_get to take the db as the first parameter. Fixes the
6289         python bindings of it. The rhythmdb_entry_get_* ones are left the same
6290         since they are used in too many places, and not in the Python
6291         bindings.
6293 2006-04-13  William Jon McCann  <mccann@jhu.edu>
6295         * lib/rb-debug.c: (_rb_profile_log):
6296         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
6297         * rhythmdb/rhythmdb.c: (rhythmdb_load):
6298         * shell/main.c: (main):
6299         * shell/rb-shell.c: (rb_shell_constructor),
6300         (rb_shell_set_visibility), (rb_shell_sync_window_state),
6301         (rb_shell_present):
6302         Fix profile output indentation.  Add more profiling points.
6303         Fixes part of #338114
6305 2006-04-13  James Livingston  <doclivingston@gmail.com>
6307         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
6308         library source being deleted, by setting the active source to NULL.
6309         From bug 338116.
6311 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6313         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
6314         Update the last-seen string when hiddenness changes.
6316 2006-04-12  James Livingston  <doclivingston@gmail.com>
6318         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
6319         which caused the first-seen time to be reset when a metadata load was
6320         done. Fixes bug 336874.
6322         * shell/rb-shell.h: remove old function declaration.
6324         * bindings/python/rhythmdb.defs:
6325         * bindings/python/rhythmdb.override: Fix some python binding stuff.
6327 2006-04-11  James Livingston  <doclivingston@gmail.com>
6329         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
6330         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
6331         interaction. Fixes bug 337999.
6333 2006-04-11  James Livingston  <doclivingston@gmail.com>
6335         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
6336         track transfer. Fixes bug 338056.
6338         * shell/Makefile.am:
6340 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6342         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
6344 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6346         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
6347         (_rb_profile_log):
6348         * lib/rb-debug.h:
6349         * shell/rb-shell.c: (construct_db), (construct_widgets),
6350         (construct_sources), (construct_load_ui), (rb_shell_constructor):
6351         Add profiling.  Fixes #337387
6353 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6355         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
6356         * widgets/rb-header.c:
6357         Use italics for artist and album. Fixes #336748
6359 2006-04-10  James Livingston  <doclivingston@gmail.com>
6361         * Makefile.am:
6362         * backends/gstreamer/Makefile.am:
6363         * configure.ac:
6364         * data/glade/library-prefs.glade:
6365         * shell/Makefile.am:
6366         * shell/rb-removable-media-manager.c:
6367         * shell/rb-removable-media-manager.h:
6368         * sources/Makefile.am:
6369         * sources/rb-audiocd-source.c:
6370         * sources/rb-library-source.c: (rb_library_source_class_init),
6371         (rb_library_source_finalize), (impl_get_config_widget),
6372         (rb_library_source_preferences_sync), (impl_can_paste): add a
6373         --enable-track-transfer configure option, abd make cd ripping disabled
6374         by default.
6376         * shell/rb-source-header.c:
6377         * sources/rb-source.c: (rb_source_class_init),
6378         (rb_source_delete_thyself), (default_get_entry_view):
6379         * lib/rb-glade-helpers.c:
6380         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
6381         some compiler warnings, and also bug 337427.
6383 2006-04-10  James Livingston  <doclivingston@gmail.com>
6385         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
6386         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
6387         if the gconf key is missing. Fixes bug 337742.
6389 2006-04-10  James Livingston  <doclivingston@gmail.com>
6391         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6392         to fix build problems I caused with a commit yesterday. Fixed bug
6393         337806.
6395         * daapsharing/rb-daap-mdns-browser-howl.c:
6396         (rb_daap_mdns_browser_class_init):
6397         * podcast/Makefile.am:
6398         * rhythmdb/Makefile.am:
6399         * widgets/eggtrayicon.h:
6401 2006-04-09  Steve Frécinaux  <steve@istique.net>
6403         * configure.ac:
6404         * po/LINGUAS:
6405         
6406         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
6407         translators' life easier.
6409 2006-04-09  James Livingston  <doclivingston@gmail.com>
6411         * bindings/python/rb.defs:
6412         * bindings/python/rb.override: add bindings for most RBSource virtual
6413         functions.
6415         * sources/rb-source.h:
6416         * sources/rb-source.c: (rb_source_class_init): make
6417         impl_get_browser_key return a non-consht string, since Python can't
6418         really give us constant strings.
6420         * shell/rb-source-header.c: (rb_source_header_finalize),
6421         (rb_source_header_set_source_internal):
6422         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
6423         * sources/rb-iradio-source.c: (impl_get_browser_key):
6424         * sources/rb-library-source.c: (impl_get_browser_key):
6425         * sources/rb-playlist-source.c:
6426         * sources/rb-browser-source.c: (rb_browser_source_constructor),
6427         (rb_browser_source_state_prefs_sync):
6428         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
6429         above change.
6431         * plugins/sample-python/sample-python.py: show how to add a new
6432         source.
6434 2006-04-09  James Livingston  <doclivingston@gmail.com>
6436         * daapsharing/Makefile.am:
6437         * daapsharing/rb-daap-connection.c:
6438         (rb_daap_connection_class_init):
6439         * daapsharing/rb-daap-marshal.list:
6440         * daapsharing/rb-daap-mdns-browser-avahi.c:
6441         (rb_daap_mdns_browser_class_init):
6442         * lib/rb-marshal.list:
6443         * player/Makefile.am:
6444         * player/rb-recorder-gst.c: (rb_recorder_class_init):
6445         * player/rb-recorder-marshal.list:
6446         * podcast/Makefile.am:
6447         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
6448         * podcast/rb-podcast-marshal.list:
6449         * rhythmdb/Makefile.am:
6450         * rhythmdb/rhythmdb-marshal.list:
6451         * rhythmdb/rhythmdb-query-model.c:
6452         (rhythmdb_query_model_class_init):
6453         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
6454         into one file, as there is no point having several of them.
6456 2006-04-09  James Livingston  <doclivingston@gmail.com>
6458         * lib/Makefile.am:
6459         * lib/rb-enums.h:
6460         * widgets/Makefile.am:
6461         * widgets/eggnotificationbubble.c:
6462         * widgets/eggnotificationbubble.h:
6463         * widgets/rb-song-info.c: remove lib/rb-enums.h and
6464         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
6466         * rhythmdb/rhythmdb-property-model.h:
6467         * rhythmdb/rhythmdb-query-model.h:
6468         * rhythmdb/rhythmdb.h:
6469         * shell/rb-playlist-manager.h:
6470         * widgets/rb-cell-renderer-pixbuf.h:
6471         * widgets/rb-cell-renderer-rating.h:
6472         * widgets/rb-rating.h: fix the prototypes of various class-closures.
6474 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6476         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
6477         so we can build without a system-wide installed copy.
6479 2006-04-09  James Livingston  <doclivingston@gmail.com>
6481         * data/glade/general-prefs.glade:
6482         * data/rhythmbox.schemas:
6483         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
6484         (rb_combo_box_hyphen_separator_func):
6485         * lib/rb-glade-helpers.h:
6486         * lib/rb-preferences.h:
6487         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6488         (rb_shell_preferences_sync),
6489         (rb_shell_preferences_toolbar_style_cb),
6490         (rb_shell_preferences_browser_views_activated_cb):
6491         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
6492         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
6493         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
6495 2006-04-09  James Livingston  <doclivingston@gmail.com>
6497         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
6498         data that MusicBrainz returns to us. Last part of bug 334167.
6500 2006-04-09  James Livingston  <doclivingston@gmail.com>
6502         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
6503         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
6505 2006-04-09  James Livingston  <doclivingston@gmail.com>
6507         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
6508         the entry view properly when the rows are reordered. Fixes bug 337019.
6510 2006-04-09  James Livingston  <doclivingston@gmail.com>
6512         * configure.ac:
6513         * widgets/Makefile.am:
6514         * widgets/libsexy/Makefile.am:
6515         * widgets/libsexy/sexy-icon-entry.c:
6516         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
6517         libsexy, and allow building against it or a system-wide installed
6518         copy.
6521         * widgets/rb-search-entry.c: (rb_search_entry_init),
6522         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
6523         search box. Fixes bug 128109.
6525 2006-04-09  James Livingston  <doclivingston@gmail.com>
6527         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6529         * widgets/rb-entry-view.c: (rb_entry_view_init),
6530         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
6531         and Pause icons rather than the volume ones in the Now Playing column.
6532         Closes bug 336482.
6534 2006-04-08  James Livingston  <doclivingston@gmail.com>
6536         * bindings/python/override_common.h:
6537         * bindings/python/rb.override:
6538         * bindings/python/rhythmdb.override: bind some more functions 
6540 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6542         * metadata/rb-metadata-dbus-service.c: (_send_error):
6543         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
6544         are sent properly and we don't get 'method doesn't exist' messages
6545         from dbus instead.
6547 2006-04-08  James Livingston  <doclivingston@gmail.com>
6549         * bindings/python/override_common.h:
6550         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
6551         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
6552         more utility functions for C<->Python conversions
6554         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
6555         (rb_entry_view_state_get_type):
6556         * widgets/rb-entry-view.h: make the colume type and entry view state
6557         GTypes
6559         * bindings/python/Makefile.am:
6560         * bindings/python/rb.defs:
6561         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
6562         RBSource.
6564 2006-04-08  James Livingston  <doclivingston@gmail.com>
6566         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
6567         initialiser for a GError
6569         * sources/rb-source.c: (rb_source_eof_type_get_type):
6570         * sources/rb-source.h: add a GType for RBSourceEOFType
6572         * bindings/python/Makefile.am:
6573         * bindings/python/rb.defs:
6574         * bindings/python/rb.override: bind RBSource and RBSourceList
6576 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6578         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6579         (rb_shell_player_get_property),
6580         (rb_shell_player_get_active_source),
6581         (rb_shell_player_set_playing_source_internal):
6582         * shell/rb-shell-player.h:
6583         Change 'playing-from-queue' from being a signal to being a property.
6585         * shell/rb-shell.c: (rb_shell_constructor),
6586         (rb_shell_playing_from_queue_cb),
6587         (rb_shell_view_queue_as_sidebar_changed_cb),
6588         (rb_shell_jump_to_entry_with_source):
6589         When the queue side pane is used, make 'jump to current' jump to the
6590         entry in the registered source for its type, rather than in the queue,
6591         and show it as playing in that source.
6592         
6593         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
6594         * sources/rb-sourcelist.h:
6595         Remove the 'preempted source' stuff, since it wasn't doing anything
6596         anyway.
6598 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6600         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
6601         (download_progress_cb): Canonicalise downloaded file location before
6602         setting the mountpoint property of the corresponding entry.
6603         Fixes #337287 and a couple of memory leaks.
6605 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6607         * metadata/rb-metadata-dbus-service.c: (test_can_save),
6608         (test_load), (main): Call g_set_prgname, report errors more
6609         usefully in test mode.
6610         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
6611         (rb_metadata_load): Don't ignore the have-type signal for non-audio
6612         files.  Run the event loop when the state change fails so we get the
6613         error messages from the bus.  Fixes #336921.
6615 2006-04-05  William Jon McCann  <mccann@jhu.edu>
6617         * data/art/Makefile.am: Install media-eject.
6619         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
6620         return value of rb_file.
6622         Fixes #337209
6624 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6626         Patch by: William Jon McCann  <mccann@jhu.edu>
6628         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
6629         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
6630         Fix GError leak.
6632 2006-04-04  William Jon McCann  <mccann@jhu.edu>
6634         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
6635         Don't try to add a date when we don't have one.  Fixes #336741.
6637         Also fix variable declaration in middle of block.
6639 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6641         * shell/rb-shell-player.c: (rb_shell_player_playpause):
6642         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
6644 2006-04-02  James Livingston  <doclivingston@gmail.com>
6646         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
6647         inverted logic causing imports to fail.
6649 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6651         * shell/main.c: (main): Fix dbusless build.
6653 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
6655         * player/rb-recorder-gst.c: fix packing of the C struct holding a
6656         wav header for non-gcc compilers (not tested much, was only written
6657         according to docs)
6659 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6661         * shell/main.c: (main): Check if we got a dbus connection before
6662         trying to create a proxy for the shell object.  Fixes #336634.
6664 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6666         * doc/reference/Makefile.am:
6667         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
6668         * shell/rb-source-header.c:
6669         * sources/rb-generic-player-source.c:
6670         (default_transform_playlist_uri):
6671         Fix various build issues.  Patch approximately 50% by Alex Lancaster
6672         <alexl@users.sourceforge.net>
6674 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6676         * configure.ac: Detect LIRC.
6677         
6678         * plugins/Makefile.am:
6679         * plugins/lirc/Makefile.am:
6680         * plugins/lirc/lirc.rb-plugin.desktop.in:
6681         * plugins/lirc/rb-lirc-plugin.c:
6682         LIRC plugin.
6684         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
6685         Remove obsolete files.
6687 2006-04-02  James Livingston  <doclivingston@gmail.com>
6689         * sources/rb-generic-player-source.c:
6690         (default_transform_playlist_uri): consider playlist paths as relative
6691         to the volume root by default, since that is what most players use.
6693 2006-04-02  James Livingston  <doclivingston@gmail.com>
6695         * lib/rb-util.c: (rb_mime_get_friendly_name):
6696         * lib/rb-util.h: add helper function to get the "friendly" name for a
6697         mime-type
6699         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6700         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
6701         the user better error messages about undecodable streams, using the
6702         "friendly" name if possible. Fixes bug 128109.
6704 2006-04-02  James Livingston  <doclivingston@gmail.com>
6706         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
6707         (start_pipeline): fix building with gstreamer 0.8
6709 2006-04-02  James Livingston  <doclivingston@gmail.com>
6711         * sources/rb-podcast-source.c: (impl_delete),
6712         (rb_podcast_source_cmd_delete_feed),
6713         (rb_podcast_source_cmd_update_feed): copy the list before traversing
6714         it, since it may change during traversal. Fixes bug 336204.
6716 2006-04-01  James Livingston  <doclivingston@gmail.com>
6718         * data/art/media-eject.png: add the media-eject icon from Banshee
6719         (BSD-licensed), for use when the user's icon theme doesn't have one.
6721         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
6722         bug 334897.
6724 2006-04-01  James Livingston  <doclivingston@gmail.com>
6726         * shell/rb-shell-player.h:
6727         * shell/rb-shell-player.c: (rb_shell_player_play),
6728         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
6729         new rb_shell_player_{play,pause} functions, so everyone doesn't have
6730         to do rb_shell_player_playing followed by rb_shell_player_playpause.
6732         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
6733         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
6734         * shell/rb-shell.h: add rb_shell_get_ui_manager.
6736         * bindings/python/rb.defs: bind the above to Python, and remove some
6737         useless stuff from the bindings.
6739 2006-04-01  James Livingston  <doclivingston@gmail.com>
6741         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
6742         number tag.
6744         * shell/rb-shell.c:
6745         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
6747         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
6748         to true.
6750         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
6751         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
6752         method assigning, so it's understandable
6754         * sources/rb-library-source.c: (rb_library_source_class_init),
6755         (impl_paste): rather than hard-coding the types to ignore, use
6756         rb_source_can_copy.
6758 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6760         * sources/rb-library-source.c:
6761         (rb_library_source_preferences_sync):
6762         Don't crash if no audio profile is selected and the gconf schemas are 
6763         not installed.
6765 2006-03-31  James Livingston  <doclivingston@gmail.com>
6767         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
6768         "*" which caused compilation to fail
6770 2006-03-31  James Livingston  <doclivingston@gmail.com>
6772         * configure.ac:
6773         * Makefile.am:
6774         * backends/Makefile.am:
6775         * backends/gstreamer/Makefile.am:
6776         * backends/gstreamer/rb-encoder-gst.c:
6777         * backends/gstreamer/rb-encoder-gst.h:
6778         * backends/rb-encoder.c:
6779         * backends/rb-encoder.h: add a interface for transcoding, and a
6780         GStreamer implementation of it (based on Sound-Juicer's code).
6782         * shell/Makefile.am:
6783         * shell/rb-removable-media-manager.c:
6784         (rb_removable_media_manager_class_init),
6785         (rb_removable_media_manager_init),
6786         (rb_removable_media_manager_dispose),
6787         (rb_removable_media_manager_finalize),
6788         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
6789         (progress_cb), (completed_cb), (do_transfer),
6790         (rb_removable_media_manager_queue_transfer), (copy_entry),
6791         (rb_removable_media_manager_cmd_copy_tracks):
6792         * shell/rb-removable-media-manager.h: use the encoder interface to
6793         perform transfers of entries to other locations
6795         * shell/rb-shell-player.c: (open_location_thread):
6796         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
6797         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
6798         (rb_shell_quit):
6799         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
6800         progress in the status bar.
6802         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6803         (rb_shell_preferences_sync),
6804         (rb_shell_preferences_browser_views_activated_cb):
6805         * data/glade/general-prefs.glade: move the browser views setting from
6806         the library tab to the general one.
6808         * data/glade/library-prefs.glade: add settings for the layout of the
6809         user's library, and their preferred encoding format (e.g. for CD
6810         ripping).
6812         * lib/rb-preferences.h:
6813         * data/rhythmbox.schemas: add keys for the above options (and a few
6814         other minor ones)
6816         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
6817         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
6818         entry, that isn't inserted into the database.
6820         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
6821         (rb_audiocd_create_track_entry):
6822         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
6823         cds, and set the mime-type of audio cd tracks correctly.
6825         * sources/rb-library-source.c: (rb_library_source_class_init),
6826         (rb_library_source_finalize),
6827         (rb_library_source_edit_profile_clicked_cb),
6828         (impl_get_config_widget), (rb_library_source_preferences_sync),
6829         (impl_receive_drag), (rb_library_source_path_changed_cb),
6830         (rb_library_source_filename_changed_cb),
6831         (rb_library_source_format_changed_cb), (sanitize_path),
6832         (filepath_parse_pattern), (layout_example_label_update),
6833         (rb_library_source_layout_path_changed),
6834         (rb_library_source_layout_filename_changed), (build_filename),
6835         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
6836         entries to the library. Large chunks of code for determining the
6837         destination file name stolen from Sound-Juicer.
6839         * sources/rb-sourcelist-model.c: (path_is_droppable):
6840         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
6841         * sources/rb-static-playlist-source.c:
6842         (rb_static_playlist_source_class_init):
6843         * sources/rb-removable-media-source.c:
6844         (rb_removable_media_source_class_init):
6845         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
6846         (rb_source_can_paste):
6847         * sources/rb-source.h: add a new _can_paste method, and use it (rather
6848         than _can_copy) to determine whether we can paste into the source.
6851 2006-03-31  Steve Frécinaux  <steve@istique.net>
6853         * plugins/rb-python-module.c: allow import of python modules with a '.'
6854         (gedit's bug 336403). Patch by Johan Dahlin.
6856 2006-03-31  James Livingston  <doclivingston@gmail.com>
6858         * sources/rb-library-source.c: 
6859         * sources/rb-library-source.h:
6860         * sources/rb-browser-source.c:
6861         * sources/rb-browser-source.h: Split RBLibrarySource into two.
6862         RBBrowserSource now contains all the stuff for having a source which
6863         views a particular entry type (including browsers and searching).
6864         RBLibrarySource derives from this, and includes the library-specific
6865         stuff, like importing and library watching. Fixes some issues where
6866         library-derived sources were doing things that should be
6867         library-specific. Fixes bug 335185.
6869         * data/ui/rhythmbox-ui.xml:
6870         * sources/Makefile.am: modifications for the above
6872         * sources/rb-daap-source.c: (rb_daap_source_class_init),
6873         (rb_daap_source_get_paned_key):
6874         * sources/rb-daap-source.h:
6875         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
6876         * sources/rb-removable-media-source.c:
6877         (rb_removable_media_source_class_init):
6878         * sources/rb-removable-media-source.h: derive from RBBrowserSource
6879         instead of RBLibrarySource.
6881 2006-03-31  James Livingston  <doclivingston@gmail.com>
6883         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
6884         I buggered up when changing from GnomeVFSFileSize.
6886 2006-03-30  James Livingston  <doclivingston@gmail.com>
6888         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
6889         for "-Wno-error".
6891         * bindings/python/rb.override:
6892         * bindings/python/Makefile.am: make the RB python bindings depend on
6893         the RhythmDB ones, and use "-Wno-error" since the machine-generated
6894         code sometimes emits warnings.
6896         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6897         (rb_shell_player_error_get_type):
6898         * shell/rb-shell-player.h:
6899         * bindings/python/rb.defs: add bindings for RBShellPlayer
6901         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6902         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
6903         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
6904         * rhythmdb/rhythmdb.h:
6905         * shell/rb-shell.c: (rb_shell_get_song_properties):
6906         * widgets/rb-entry-view.c: (propid_from_name):
6907         * widgets/rb-property-view.c: (rb_property_view_class_init):
6908         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
6909         than just plain GPtrArray, and add bindings for it.
6911         * bindings/python/rhythmdb.override: wrap some functions that use
6912         GValues
6914 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6916         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
6917         Only watch directories from which entries of type SONG have been
6918         added.
6920 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6922         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
6923         No need to restore the selection after rebuilding the child model,
6924         since that can't have changed the selection.
6926 2006-03-29  James Livingston  <doclivingston@gmail.com>
6928         * bindings/python/override_common.c:
6929         * bindings/python/override_common.h: add some for missing files to
6930         cvs.
6932 2006-03-29  James Livingston  <doclivingston@gmail.com>
6934         * configure.ac:
6935         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
6936         copied from gedit's autofoo and we don't need it
6938         * bindings/python/rhythmdb.defs:
6939         * bindings/python/rhythmdb.override: add missing files to cvs
6941 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6943         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
6944         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
6945         before running any of the debug/test modes.
6946         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
6947         Make plugin loading work when running uninstalled from the shell/
6948         directory.
6950 2006-03-29  James Livingston  <doclivingston@gmail.com>
6952         * rhythmdb/rhythmdb-property-model.c:
6953         (rhythmdb_property_model_sync),
6954         (rhythmdb_property_model_column_get_type):
6955         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
6957         * rhythmdb/rhythmdb-private.h:
6958         * rhythmdb/rhythmdb-query-model.c:
6959         (rhythmdb_query_model_class_init):
6960         * rhythmdb/rhythmdb-query-model.h:
6961         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
6962         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
6963         (rhythmdb_entry_get_type):
6964         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
6966         * widgets/rb-query-creator-properties.c:
6967         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
6968         was missing.
6970         * bindings/python/Makefile.am:
6971         * bindings/python/rb.defs:
6972         * bindings/python/rb.override:
6973         * plugins/rb-python-module.c: (rb_python_module_init_python): add
6974         Python bindings for RhythmDB.
6976 2006-03-29  James Livingston  <doclivingston@gmail.com>
6978         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
6979         sharing when using --no-registration
6981 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6983         * rhythmdb/rhythmdb-query-model.c:
6984         (rhythmdb_query_model_reapply_query):
6985         Don't remove entries while iterating, as it breaks the sequence
6986         nodes.  Instead, collect a list of removed entries and process it
6987         after iterating the sequence.  Fixes #334642.
6989 2006-03-29  James Livingston  <doclivingston@gmail.com>
6991         * plugins/rb-plugin-manager.c: (active_toggled_cb),
6992         (row_activated_cb), (plugin_manager_toggle_all):
6993         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
6994         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
6995         (button_press_cb), (source_name_edited_cb):
6996         * widgets/rb-property-view.c: (rb_property_view_set_property),
6997         (rb_property_view_post_row_deleted_cb),
6998         (rb_property_view_row_activated_cb),
6999         (rb_property_view_selection_changed_cb),
7000         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
7001         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
7003 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7005         * rhythmdb/rhythmdb-query-model.c:
7006         (rhythmdb_query_model_drag_data_received):
7007         Increment the reference count for entries added by drag and drop.
7008         Fixes #336045.
7010 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7012         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
7013         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
7014         Ignore invalid UTF-8 strings.  Fixes most of #334167.
7016 2006-03-27  James Livingston  <doclivingston@gmail.com>
7018         * shell/rb-shell.c: (rb_shell_constructor),
7019         (rb_shell_sync_window_state): fix a maximise-realise race that would
7020         cause some widgets to be resized after we had explicity set theri
7021         size. Hopefully fixes bug 331927.
7023 2006-03-27  James Livingston  <doclivingston@gmail.com>
7025         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7026         (row_activated_cb), (plugin_manager_set_active),
7027         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
7028         configure button sensitivity when a plugin is enabled/disabled.
7030 2006-03-27  James Livingston  <doclivingston@gmail.com>
7032         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
7033         stop warnings, only the vbos is used anyway
7035         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
7036         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
7037         collection every now an then.
7039         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
7040         if we are finalising because the python object couldn't be created.
7042         * plugins/rb-python-module.c: (rb_python_module_new_object): return
7043         NULL if the python-side object couldn't be created. Stops crashes when
7044         the object is later used when it doesn't exist in Python.
7046         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
7047         (rb_python_shutdown): do better garbage collection when shutting down.
7048         Fixes the problem where Python was holding a reference to the shell,
7049         causing RB not to exit.
7051 2006-03-27  James Livingston  <doclivingston@gmail.com>
7053         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
7054         336131.
7056 2006-03-27  James Livingston  <doclivingston@gmail.com>
7058         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
7059         From bug 334829.
7061 2006-03-26  James Livingston  <doclivingston@gmail.com>
7063         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
7064         library location list to NULL after we free it. Fixes bug 336047.
7066 2006-03-26  James Livingston  <doclivingston@gmail.com>
7068         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7070         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
7071         supplies. Fixes bug 335947.
7073 2006-03-25  James Livingston  <doclivingston@gmail.com>
7075         * data/glade/audioscrobbler-prefs.glade:
7076         * shell/rb-audioscrobbler.c:
7077         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
7078         "submit songs" checkbox, and make it not disable username/password
7079         entry. This will be needed when we support other last.fm stuff
7080         (profile access, radio, etc).
7082 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
7084         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
7085         Volume should not display stock_volume-0 for volume > 0. Fixes bug
7086         335777.
7088 2006-03-24  James Livingston  <doclivingston@gmail.com>
7090         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7091         (rb_shell_player_sync_play_order),
7092         (rb_shell_player_play_order_update_cb),
7093         (actually_set_playing_source): update the next/previous availablility
7094         in places where it was missing. Fixes bug 335490.
7096 2006-03-24  James Livingston  <doclivingston@gmail.com>
7098         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
7099         can't find the widget
7101         * lib/rb-util.c: (rb_uri_list_parse):
7102         * lib/rb-util.h: add function for parsing a URI list into strings.
7104         * metadata/Makefile.am: make the metdata helper build when linking
7105         with --as-needed
7107         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
7108         g_mkdir_with_parents instead of coding our own.
7110         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
7111         <itunes:author> over <generator>, instead of using whichever comes
7112         last.
7114         * rhythmdb/rhythmdb-private.h:
7115         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
7116         field, as we don't ever check it (to detect corruption). Saves a bit
7117         of memory.
7119 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7121         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
7122         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
7123         Escape '&' and '=' in the paths we get back from
7124         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
7126 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7128         * shell/rb-shell.c: (rb_shell_constructor):
7129         Issue startup notification after creating the main window, so
7130         notification is issued whether the window is visible or not.
7131         Fixes #335086.
7133 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7135         * sources/rb-auto-playlist-source.c: (impl_search),
7136         (rb_auto_playlist_source_query_complete_cb),
7137         (rb_auto_playlist_source_do_query):
7138         * sources/rb-library-source.c: (impl_search),
7139         (rb_library_source_query_complete_cb),
7140         (rb_library_source_do_query):
7141         Defer subset searches (where text is appended to an existing search)
7142         until the original query is complete.
7144 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
7146         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
7148         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7149         (rb_refstring_get_sort_key): fixes for strict-aliasing
7151 2006-03-21  James Livingston  <jrl@ids.org.au>
7153         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
7154         importing a single file. Fixes bug 335307.
7156 2006-03-21  James Livingston  <jrl@ids.org.au>
7158         * shell/Makefile.am: remove the reference to backends/ that I
7159         accidently included.
7161 2006-03-21  James Livingston  <jrl@ids.org.au>
7163         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
7164         with Forte (on Solaris). Closes bug 335318.
7166         * configure.ac:
7167         * lib/Makefile.am:
7168         * player/rb-recorder-gst.c:
7169         * podcast/rb-podcast-parse.c:
7170         * remote/bonobo/Makefile.am:
7171         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
7172         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
7173         (rhythmdb_query_model_add_entry),
7174         (rhythmdb_query_model_add_results):
7175         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
7176         * rhythmdb/rhythmdb.h:
7177         * shell/Makefile.am:
7178         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
7179         (update_speed_combobox):
7180         * sources/rb-sourcelist-model.c:
7182 2006-03-21  James Livingston  <jrl@ids.org.au>
7184         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7186         * player/Makefile.am:
7187         * shell/Makefile.am: work correctly with a separate build root.
7189 2006-03-21  James Livingston  <jrl@ids.org.au>
7191         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
7192         get handed NULL.
7194 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7196         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
7197         Only create ignore entries when importing into the library.  
7198         Ignore entries for files in removable media sources don't help.
7200 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7202         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
7203         * shell/rb-source-header.h:
7204         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
7205         * widgets/rb-search-entry.h:
7206         Add functions to make the search box grab focus.
7208         * shell/rb-shell.c: (rb_shell_cmd_view_all):
7209         Focus the search box after handling the 'view all' action.
7211 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7213         * rhythmdb/rhythmdb.h:
7214         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7215         (rhythmdb_execute_multi_stat_info_cb),
7216         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
7217         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
7218         (action_thread_main):
7219         Collect all the get_file_info requests on startup into one gnome-vfs
7220         job to reduce overhead and avoid contention for the rhythmdb lock.
7221         Add a new method to call when all initial query models are set up.
7222         
7223         * shell/rb-shell.c: (idle_handle_load_complete):
7224         Call rhythmdb startup complete function when we've loaded all the
7225         playlists.  Fixes #334106.
7227 2006-03-20  James Livingston  <jrl@ids.org.au>
7229         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
7230         (rb_entry_view_selection_changed_cb),
7231         (rb_entry_view_have_complete_selection): make has_complete_selection
7232         not slow. Fixes a performance issue I added a week or so ago.
7234 2006-03-20  James Livingston  <jrl@ids.org.au>
7236         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
7237         before passing to strcmp. From bug 334559.
7239 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7241         * configure.ac:
7242         * lib/Makefile.am:
7243         * lib/rb-proxy-config.c:
7244         * lib/rb-proxy-config.h:
7245         Add a new object to watch the HTTP proxy configuration and emit
7246         signals when it changes.
7248         * shell/rb-audioscrobbler.c:
7249         * shell/rb-audioscrobbler.h:
7250         Use rb-proxy-config to watch HTTP proxy configuration.
7252         * shell/rb-shell.c:
7253         Construct rb-proxy-config object on startup, and remove all
7254         audioscrobbler references.
7256         * shell/Makefile.am:
7257         * plugins/audioscrobbler/Makefile.am:
7258         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
7259         Move all audioscrobbler code into the plugin.  We should move
7260         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
7261         point.  Don't use a private data structure in the plugin, since the
7262         class definition isn't in a header file.  Fixes #335091.
7264 2006-03-20  James Livingston  <jrl@ids.org.au>
7266         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
7267         don't enable Next if the source has an EOS type other than
7268         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
7270 2006-03-20  James Livingston  <jrl@ids.org.au>
7272         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
7273         (rb_song_info_forward_clicked_cb): deal with there being no
7274         next/previous entry.
7276         (rb_song_info_query_model_inserted_cb),
7277         (rb_song_info_query_model_deleted_cb),
7278         (rb_song_info_query_model_reordered_cb),
7279         (rb_song_info_query_model_changed_cb): monitor the query for changes,
7280         to update the button status. Fixes bug 333293.
7282 2006-03-20  James Livingston  <jrl@ids.org.au>
7284         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
7285         caused by my last commit
7287 2006-03-20  James Livingston  <jrl@ids.org.au>
7289         * bindings/python/Makefile.am:
7290         * bindings/python/rb.defs:
7291         * bindings/python/rb.override: add python bindings of RBRemoteProxy
7293         * shell/rb-shell.c: (rb_shell_constructor),
7294         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
7295         tray-icon detection slightly
7297 2006-03-19  Steve Frécinaux  <steve@istique.net>
7299         * data/ui/rhythmbox-ui.xml:
7300         * shell/rb-shell.c:
7302         Add an empty Tool Menu (hidden by default) containing placeholders for
7303         plugins.
7305         * configure.ac:
7306         * plugins/Makefile.am:
7307         * plugins/pythonconsole/Makefile.am:
7308         * plugins/pythonconsole/pythonconsole.py:
7309         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
7310         
7311         Python Console plugin
7313 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7315         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
7316         Extra step to encode '&' and '=' to match what gnome-vfs does
7317         internally.
7318         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
7319         (rhythmdb_tree_save):
7320         Increment rhythmdb xml version to 1.2, and force another uri
7321         re-canonicalisation when loading v1.1 databases.
7322         Fixes bug #333998.
7324 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7326         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
7327         (avahi_client_init), (browse_cb):
7328         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
7329         (avahi_client_init):
7330         Fix compilation with Avahi 0.5.x (bug #334551).
7332 2006-03-19  James Livingston  <jrl@ids.org.au>
7334         Add Increase/Decrease Volume menu items and keybindings. From bug
7335         123383.
7337         * data/ui/rhythmbox-ui.xml:
7338         * shell/rb-shell-player.c: (rb_shell_player_constructor),
7339         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
7340         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
7342 2006-03-19  James Livingston  <jrl@ids.org.au>
7344         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
7346         * shell/Makefile.am: fix the link order, so that we compile with
7347         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
7349 2006-03-19  James Livingston  <jrl@ids.org.au>
7351         patch by: Adam Petaccia  <adam@tpetaccia.com>
7353         * data/ui/rhythmbox-ui.xml: move preferences below "configure
7354         plugins". Fixes bug 335037.
7356 2006-03-18  James Livingston  <jrl@ids.org.au>
7358         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7359         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
7360         332992.
7362         * widgets/rb-header.c: don't make artist/album info in the header the
7363         small size, since it's hard to read.
7365 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7367         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
7368         (rhythmdb_finalize): Don't leak the hash tables.
7369         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
7370         (rhythmdb_commit_internal): Make sure to process the deletions.
7371         (rhythmdb_entry_delete): Use a hash.
7373         * podcast/rb-podcast-manager.c: Random analness about char*
7374         (rb_podcast_manager_remove_feed): Add debugging.
7375         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
7376         the result of gnome_vfs_unlink.  Don't leak a uri.
7378         Fixes #334786
7380 2006-03-18  James Livingston  <jrl@ids.org.au>
7382         * NEWS: update NEWS file
7384 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7386         * rhythmdb/rhythmdb-property-model.c:
7387         (rhythmdb_property_model_prop_changed_cb):
7388         Remove entries from the hash table after processing visible->hidden
7389         changes.
7391 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7393         * sources/rb-daap-source.c (connection_connected_cb) 
7394         (connection_disconnected_cb): Add debug.
7395         (rb_daap_source_get_headers): Check for NULL connection.
7397         * daapsharing/rb-daap-src.c (rb_daap_src_open):
7398         Check return value of rb_daap_source_get_headers.
7400         Fixes #332089
7402 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7404         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7405         Restore the selection after rebuilding the child model, so the
7406         selection is shown correctly after using the 'browse this
7407         album/artist/genre' menu items.
7409 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7411         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
7412         Clear the selection before changing the active model.
7413         Fixes crash reported in bug 334549.
7415 2006-03-15  James Livingston  <jrl@ids.org.au>
7417         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
7418         (rb_tray_icon_sync_action):
7419         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
7420         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
7421         for non-libnotify notification bubbles. Fixes bug 331721.
7423 2006-03-15  James Livingston  <jrl@ids.org.au>
7425         Add search-bar options to playlists. Fixes bug 334407.
7427         * sources/rb-auto-playlist-source.c:
7428         (rb_auto_playlist_source_class_init),
7429         (rb_auto_playlist_source_constructor),
7430         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
7431         (search_action_to_prop), (search_action_changed):
7432         * sources/rb-static-playlist-source.c:
7433         (rb_static_playlist_source_class_init),
7434         (rb_static_playlist_source_constructor),
7435         (construct_query_from_selection), (impl_get_search_actions),
7436         (search_action_to_prop), (search_action_changed):
7438 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7440         * shell/rb-source-header.c (rb_source_header_set_source_internal):
7441         Remove broken attempt at making the search bar buttons not
7442         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
7444 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7446         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
7447         Chain up to parent's dispose instead of finalize.  Fixes #334479.
7449 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7451         * widgets/rb-header.c (rb_header_sync): Escape album and
7452         artist before adding to markup.
7454 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7456         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
7457         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
7458         (rb_header_set_property), (rb_header_get_property),
7459         (rb_header_sync):
7460         Remove the GnomeUrl song links until we can do it properly.
7461         Fixes #334453.
7463 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7465         * shell/rb-source-header.c: (rb_source_header_clear_search):
7466         Remove the stored search text from the hash table, so it doesn't
7467         reappear after switching to another source and back.
7469         * sources/rb-auto-playlist-source.c: (impl_search):
7470         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
7471         * sources/rb-static-playlist-source.c: (impl_search):
7472         Make sure all sources treat impl_search(NULL) and impl_search("") the
7473         same.  Fixes #334525.
7475 2006-03-14  James Livingston  <jrl@ids.org.au>
7477         Store which thread created new entries, and make rhythmdb_commit only
7478         insert the entries for the thread that calls it. This stops one thread
7479         calling rhythmdb_commit inserting entries that are half-way through
7480         construction by another thread (as happens with audio cds). From bug
7481         330226.
7483         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7484         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
7485         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
7486         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
7487         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
7488         (rhythmdb_process_metadata_load),
7489         (rhythmdb_process_queued_entry_set_event),
7490         (rhythmdb_prop_get_type):
7492 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7494         * rhythmdb/rhythmdb-query-model.c:
7495         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
7496         (rhythmdb_query_model_finalize):
7497         Move object unrefs from _finalize into _dispose.
7498         
7499         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
7500         Remove extra g_object_ref that was causing query model leaks.
7501         
7502         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
7503         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
7504         (genre_selection_reset_cb), (rb_iradio_source_do_query):
7505         Remove the cached 'all' query, since it doesn't really help and it
7506         makes the code more complicated.  Attach the genre property view to
7507         the query model build from the search text, so only genres for
7508         stations matching the search terms are displayed.  Preserve the genre
7509         selection across searches.
7511         * widgets/rb-library-browser.c: 
7512         (rb_library_browser_class_init), (rb_library_browser_get_property):
7513         Add properties for the input and output models for the browser, and
7514         remove the 'changed' signal as we can just use notify::output-model.
7515         (ignore_selection_changes),
7516         (selection_restore_data_destroy), (query_complete_cb),
7517         (restore_selection): Helper functions for preserving selections across
7518         query model rebuilds.
7519         (rebuild_output_model):  New function for creating a query model to
7520         use as the display model for a source using the browser.
7521         (rebuild_child_model): Add a call to rebuild_output_model, add missing
7522         g_object_unrefs, reuse the parent's query model when there's no
7523         selection, and use ignore_selection_changes and restore_selection.
7524         (rb_library_browser_set_selection): rebuild_child_model emits the
7525         changed signal, so no need to do it here.
7526         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
7527         ignore_selection_changes and restore_selection. 
7528         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
7529         flag to rb_library_browser_set_model indicating whether the query is
7530         asynchronous.
7532         * sources/rb-static-playlist-source.c:
7533         (rb_static_playlist_source_class_init),
7534         (rb_static_playlist_source_dispose):
7535         (rb_static_playlist_source_constructor):  Add an extra reference on
7536         the base model, so it doesn't vanish when we set a new display model
7537         based on a search or browser selection.
7538         (impl_search): Ensure the search_text field in the source is NULL if
7539         the search box is empty.
7540         (construct_query_from_selection),
7541         (rb_static_playlist_source_do_query): Use the query model constructed
7542         from the search as the input model for the browser.
7543         (rb_static_playlist_source_browser_changed_cb): Use the browser's
7544         output model as the query model for the source.
7546         * sources/rb-auto-playlist-source.c:
7547         (rb_auto_playlist_source_finalize): Free more stuff.
7548         (rb_auto_playlist_source_constructor),
7549         (rb_auto_playlist_source_browser_changed_cb):
7550         Update for rb-library-browser changes, use the browser's output query
7551         model as the query model for the source.
7552         (impl_reset_filters), (impl_search), 
7553         (rb_auto_playlist_source_do_query),
7554         (rb_auto_playlist_source_set_query):
7555         Use the query model constructed from the search text as the input to
7556         the library browser, and when adding text to an existing search, apply
7557         the new query to the existing query model.
7558         
7559         * sources/rb-library-source.c: (rb_library_source_dispose):
7560         (rb_library_source_finalize): Chain dispose up to the parent class.
7561         (rb_library_source_constructor): Update for rb-library-browser
7562         changes. 
7563         (impl_search): Ensure search_text is NULL if the search box is empty,
7564         and use the subset flag to _do_query if text has been appended to an
7565         existing search.
7566         (search_action_changed), (impl_reset_filters):
7567         (rb_library_source_browser_changed_cb),
7568         (rb_library_source_do_query): Use the browser's output model as the
7569         query model for the source.
7571         Rework library and playlist sources to use a single query chain,
7572         and to limit the entries shown in property views based on the search
7573         terms.  Fixes bug #322787.
7575 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7577         * configure.ac:  Enable metadata helper by default, and fix a typo.
7579 2006-03-13  James Livingston  <jrl@ids.org.au>
7581         Make RBRefStrings lazily create the folded and sort-key strings when
7582         they are first used. This will same some memory by not creating ones
7583         that are never used, and delaying some of the others to when the user
7584         resorts or performs a similar action. Fixes bug 332992.
7586         * rhythmdb/rb-refstring.c: (rb_refstring_free),
7587         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
7588         (rb_refstring_get), (rb_refstring_get_folded),
7589         (rb_refstring_get_sort_key), (rb_refstring_hash),
7590         (rb_refstring_equal):
7591         * rhythmdb/rb-refstring.h:
7592         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
7594 2006-03-12  William Jon McCann  <mccann@jhu.edu>
7596         * data/ui/rhythmbox-ui.xml:
7597         * lib/rb-stock-icons.c: (rb_stock_icons_init):
7598         * lib/rb-stock-icons.h:
7599         * shell/rb-shell-player.c:
7600         * shell/rb-shell.c: (rb_shell_constructor):
7601         * shell/rb-source-header.c: (force_no_shadow),
7602         (ui_manager_add_widget_cb), (rb_source_header_constructor),
7603         (rb_source_header_class_init), (rb_source_header_init),
7604         (merge_source_ui_cb), (toolbar_set_homogeneous),
7605         (rb_source_header_set_source_internal),
7606         (rb_source_header_set_property), (rb_source_header_get_property),
7607         (rb_source_header_set_source), (rb_source_header_new),
7608         (rb_source_header_filter_changed_cb):
7609         * shell/rb-source-header.h:
7610         * sources/rb-library-source.c: (rb_library_source_class_init),
7611         (rb_library_source_init), (search_action_to_prop),
7612         (search_action_changed), (rb_library_source_constructor),
7613         (impl_search), (impl_reset_filters), (impl_get_search_actions),
7614         (construct_query_from_selection):
7615         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
7616         (rb_podcast_source_init), (search_action_to_prop),
7617         (search_action_changed), (rb_podcast_source_constructor),
7618         (construct_query_from_selection), (impl_get_ui_actions),
7619         (impl_get_search_actions):
7620         * sources/rb-source.c: (rb_source_class_init),
7621         (rb_source_get_ui_actions), (default_get_search_actions),
7622         (rb_source_get_search_actions):
7623         * sources/rb-source.h:
7625         Add a search bar.  Fixes #328618
7627 2006-03-12  James Livingston  <jrl@ids.org.au>
7629         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
7630         * shell/main.c: (main): make --no-update not stat files checking for
7631         changes, instead of doing nothing. Fixes bug 125177.
7633 2006-03-12  James Livingston  <jrl@ids.org.au>
7635         * podcast/rb-podcast-manager.c:
7636         (rb_podcast_manager_thread_parse_feed):
7637         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
7638         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
7639         having an invalid mime-type. Fixed bug 329813.
7641 2006-03-12  James Livingston  <jrl@ids.org.au>
7643         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
7644         Finally lets us close bug 309609.
7646         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
7647         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
7648         0.10
7650         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
7651         inverted logic of the editable check.
7653 2006-03-12  James Livingston  <jrl@ids.org.au>
7655         Make API doc generation work again. Fixes bug 334276.
7657         * doc/reference/Makefile.am:
7658         * doc/reference/tmpl/rb-debug.sgml:
7659         * doc/reference/tmpl/rb-druid.sgml:
7660         * doc/reference/tmpl/rb-entry-view.sgml:
7661         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
7662         * doc/reference/tmpl/rb-metadata.sgml:
7663         * doc/reference/tmpl/rb-shell.sgml:
7664         * doc/reference/tmpl/rhythmbox-unused.sgml:
7665         * doc/reference/tmpl/rhythmdb.sgml:
7667 2006-03-12  James Livingston  <jrl@ids.org.au>
7669         * shell/rb-shell-clipboard.c:
7670         (rb_shell_clipboard_set_source_internal),
7671         (rb_shell_clipboard_sync): don't try to use the source's entry view if
7672         it doesn't have one. Fixes bug 331673.
7674         * sources/rb-source.c: (rb_source_class_init): provide a default
7675         have_url implementation that returns FALSE.
7677 2006-03-12  James Livingston  <jrl@ids.org.au>
7679         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
7680         doing a distclean. Fixes bug 334221.
7683         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
7685         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
7687 2006-03-11  James Livingston  <jrl@ids.org.au>
7689         * shell/rb-shell.c: (rb_shell_window_state_cb),
7690         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
7691         update the window width/height when iconified. Stops the window
7692         changing size when it is restored from the tray, fixing bug 333824. 
7694 2006-03-11  James Livingston  <jrl@ids.org.au>
7696         Try to get cvs to actually add the necessary files for plugin support
7698 2006-03-11  James Livingston  <jrl@ids.org.au>
7700         Add a plugin framework, with basic support for Python plugins (based
7701         on gedit's). Closes bug 330523.
7703         * Makefile.am:
7704         * shell/Makefile.am:
7705         * configure.ac: necessary autofoo.
7707         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
7709         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
7710         * lib/rb-file-helpers.h:
7712         * data/glade/plugins/glade:
7713         * lib/rb-preferences.h:
7714         * plugins/*:
7715         * bindings/*: plugin framework
7717         * plugins/sample/*:
7718         * plugins/sample-python/*: sample plugins
7720         * plugins/audioscrobbler/*:
7721         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
7722         (rb_audioscrobbler_set_property),
7723         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
7724         submission into a plugin. shell/audioscrobbler.* should really be
7725         moved, but that sucks with cvs.
7727         * shell/rb-shell.h:
7728         * shell/rb-shell.c: (rb_shell_constructor),
7729         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
7730         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
7731         (rb_shell_quit): start and stop plugin framework.
7733 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7735         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
7736         (rhythmdb_entry_delete):
7737         Emit entry-deleted signals when rhythmdb_commit is called, rather than
7738         immediately, so we can't get change notifications afterwards.  
7739         Fixes #331732.
7740         (rhythmdb_process_metadata_load): Add a commit after removing an
7741         entry so we can recreate it with a different type without getting
7742         confused.
7744 2006-03-11  James Livingston  <jrl@ids.org.au>
7746         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
7747         use the drive name for audio CDs, use "Unknown CD".
7749 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7751         patch by:  James Henstridge  <james@jamesh.id.au>
7753         * sources/rb-removable-media-source.c:
7754         (rb_removable_media_source_constructor):
7755         Get the device name from the GnomeVFSDrive if possible,
7756         since this is usually a more descriptive name.  Fixes #333080.
7758 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7760         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7762         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
7763         Don't automatically download episodes when configured for manual
7764         updating.  Fixes #331564.
7766 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7768         * rhythmdb/rhythmdb-property-model.c:
7769         (rhythmdb_property_model_iter_from_string):
7770         Return an iterator for the 'all' property when name == NULL,
7771         and don't write to *iter if iter == NULL.
7773 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7775         * shell/rb-shell-player.c: (rb_shell_player_do_next):
7776         When switching to the play queue, still call _go_next on the normal
7777         play order, so self-emptying auto playlists ("play count = 0" etc.)
7778         don't restart once the queue is empty.
7780         * shell/rb-tray-icon.c:
7781         Change shortcut for 'show notifications' to 'o' so it doesn't clash
7782         with 'next'.
7784 2006-03-05  James Livingston  <jrl@ids.org.au>
7786         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
7787         don't submit tracks which could not be played. Fixed bug 333013.
7789         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
7790         tracks which could not be played.
7792 2006-03-05  James Livingston  <jrl@ids.org.au>
7794         Sync musicbrainz lookup code from Sound-Juicer cvs.
7796         * metadata/sj-metadata-musicbrainz.c:
7797         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
7798         (get_offline_track_listing), (artist_and_title_from_title),
7799         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
7800         (mb_list_albums), (mb_get_submit_url):
7801         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
7802         * metadata/sj-metadata.h:
7803         * metadata/sj-structures.c: (track_details_free),
7804         (album_details_free):
7805         * metadata/sj-structures.h:
7807 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7809         * lib/rb-debug.h:
7810         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
7811         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
7812         (rb_profiler_reset), (rb_profiler_free):
7813         Filter debug output by matching the file and function names against a
7814         match string.
7816         * shell/main.c: (main):
7817         Add -D command line option to specify the debug match string.
7819         * shell/rb-removable-media-manager.c:
7820         (rb_removable_media_manager_mount_volume):
7821         Fix some typos in debug output.
7823 2006-03-03  James Livingston  <jrl@ids.org.au>
7825         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
7826         * shell/rb-shell.c: (rb_shell_load_uri):
7827         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
7828         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
7829         use the new "recurse" property from totem-plparser, if present. Stop
7830         RB hanging for new users who don't have a 'net connection. From bug
7831         331508.
7833 2006-03-02  Bastien Nocera  <hadess@hadess.net>
7835         * shell/rb-removable-media-manager.c:
7836         (rb_removable_media_manager_mount_volume):
7837         * sources/Makefile.am:
7838         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
7839         Fix missing files on make dist (conditional files), only build the
7840         N770 support if there's HAL support, as we have no other ways of
7841         detecting it
7843 2006-03-03  James Livingston  <jrl@ids.org.au>
7845         * shell/rb-shell-clipboard.c:
7846         (rb_shell_clipboard_set_source_internal): really fix it this time.
7847         hopefully.
7849 2006-03-03  James Livingston  <jrl@ids.org.au>
7851         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
7852         with the idle function not being removed.
7854 2006-03-02  James Livingston  <jrl@ids.org.au>
7856         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
7857         * widgets/rb-entry-view.h: add function for determining whether all
7858         entries are selected.
7860         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
7861         (rb_shell_clipboard_set_source_internal),
7862         (rb_shell_clipboard_finalize),
7863         (rb_shell_clipboard_idle_poll_deletions),
7864         (rb_shell_clipboard_entryview_changed_cb),
7865         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
7866         removals, to update things.
7868         (rb_shell_clipboard_sync): update the Select All and Select None
7869         sensitivity, based on what is selected. Fixed bug 172220.
7871 2006-03-02  James Livingston  <jrl@ids.org.au>
7873         * widgets/rb-library-browser.c: (rebuild_child_model): save and
7874         restore the selections of later models. This means that selecting the
7875         artist for the selected album does not reset the album selection.
7877 2006-03-02  James Livingston  <jrl@ids.org.au>
7879         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
7880         Stops it emitting critical warnings.
7882 2006-03-02  James Livingston  <jrl@ids.org.au>
7884         * lib/rb-file-helpers.c: (rb_uri_append_uri):
7885         * lib/rb-file-helpers.h: Add uri concatenation function for when the
7886         second fragment is already escaped.
7888         * sources/rb-generic-player-source.c:
7889         (rb_generic_player_source_class_init),
7890         (rb_generic_player_source_constructor), (impl_show_popup),
7891         (rb_generic_player_source_load_playlists),
7892         (rb_generic_player_source_transform_playlist_uri),
7893         (handle_playlist_entry_cb), (visit_playlist_dirs),
7894         (default_load_playlists), (default_transform_playlist_uri):
7895         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
7896         the device. Allow subclasses to override the playlist loading, and
7897         (playlist uri)->(actual uri) mapping. A lot of devices which have
7898         playlists won't work right now, but people will see them and hopefully
7899         file bugs.
7901         * sources/rb-psp-source.c: (rb_psp_source_class_init),
7902         (rb_psp_source_create_playlists): Adapt the PSP for the above change
7903         
7904         * sources/Makefile.am:
7905         + sources/rb-nokia770-source.{c,h}:
7906         * shell/rb-removable-media-manager.c:
7907         (rb_removable_media_manager_mount_volume): Add support for reading
7908         playlists of Nokia 770s.
7910 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7912         * data/glade/podcast-properties.glade:
7913         * podcast/rb-podcast-properties-dialog.c:
7914         (rb_podcast_properties_dialog_init),
7915         (rb_podcast_properties_dialog_update),
7916         (rb_podcast_properties_dialog_update_location),
7917         (rb_podcast_properties_dialog_update_download_location):
7918         Add 'download location' field showing the path to the downloaded copy.
7919         Fixes #330696.
7921 2006-03-01  Bastien Nocera  <hadess@hadess.net>
7923         * configure.ac: simplify HAVE_HAL define
7925 2006-03-01  Bastien Nocera  <hadess@hadess.net>
7927         * configure.ac:
7928         * lib/rb-file-helpers.c: (rb_uri_append_path):
7929         * lib/rb-file-helpers.h:
7930         * shell/rb-removable-media-manager.c:
7931         (rb_removable_media_manager_mount_volume):
7932         * sources/Makefile.am:
7933         * sources/rb-ipod-source.c:
7934         * sources/rb-psp-source.*:
7935         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
7936         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
7938 2006-03-02  James Livingston  <jrl@ids.org.au>
7940         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7941         (rb_shell_player_play), (rb_shell_player_jump_to_current),
7942         (swap_playing_source), (rb_shell_player_playpause),
7943         (rb_shell_player_sync_buttons), (actually_set_playing_source),
7944         (rb_shell_player_set_playing_source_internal): check for the entry
7945         view being NULL before trying to use it. Lets us support sources which
7946         don't have an entry view. From bug 331673.
7948 2006-03-01  Bastien Nocera  <hadess@hadess.net>
7950         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
7951         use gnome_vfs_read_entire_file with a URI, not a local filename
7953 2006-03-01  James Livingston  <jrl@ids.org.au>
7955         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
7956         first-seen and last-seen when merging duplicate entries.
7958 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7960         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
7961         * widgets/rb-property-view.h:  New function, allowing custom 
7962         interactive search functions for property views.
7963         
7964         * sources/rb-podcast-source.c: 
7965         (feed_select_change_cb): Only do a new query when the selection
7966         actually changes.
7967         (rb_podcast_source_constructor),
7968         (rb_podcast_source_feed_title_search_func):
7969         Interactive search function for podcast feed titles.  Fixes #327451.
7971 2006-03-01  James Livingston  <jrl@ids.org.au>
7973         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
7974         the uri in the callback, since it causes symbols to not be escaped.
7975         Fixes bug 332976.
7977         * data/ui/rhythmbox-ui.xml:
7978         * sources/rb-import-errors-source.c:
7979         (rb_import_errors_source_class_init),
7980         (rb_import_errors_source_constructor), (impl_get_status),
7981         (impl_move_to_trash),
7982         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
7983         import errors source
7984         
7985         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
7986         (rb_entry_view_append_column): unescape the URI for display.
7988 2006-03-01  James Livingston  <jrl@ids.org.au>
7990         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
7991         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
7992         function fails.
7994 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
7996         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
7997         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
7998         * sources/rb-play-queue-source.c:
7999         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
8000         (rb_play_queue_source_update_count):  Use "Play Queue" instead
8001         of "Queued Songs".
8003         Fixes #331637.
8005 2006-03-01  James Livingston  <jrl@ids.org.au>
8007         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
8008         Fixes bug 332913.
8010 2006-03-01  James Livingston  <jrl@ids.org.au>
8012         * daapsharing/rb-daap-mdns-browser-howl.c:
8013         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
8014         * daapsharing/rb-daap-mdns-publisher-avahi.c:
8015         (rb_daap_mdns_publisher_class_init),
8016         (rb_daap_mdns_publisher_finalize):
8017         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
8018         * player/rb-recorder-gst.c: (rb_recorder_class_init),
8019         (rb_recorder_finalize):
8020         * rhythmdb/rhythmdb-query-model.c:
8021         (rhythmdb_query_model_constructor):
8022         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
8023         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
8024         * sources/rb-playlist-source-recorder.c:
8025         (rb_playlist_source_recorder_style_set),
8026         (rb_playlist_source_recorder_class_init),
8027         (rb_playlist_source_recorder_finalize):
8028         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
8029         other classes in the same way, so they don't break when derived from.
8031 2006-03-01  James Livingston  <jrl@ids.org.au>
8033         * sources/rb-generic-player-source.c:
8034         (rb_generic_player_source_constructor): don't get the parent class in
8035         a dumb way, and it breaks when the class is derived from.
8037 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
8039         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
8041 2006-03-01  James Livingston  <jrl@ids.org.au>
8043         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
8044         not work in glib 2.8 systems.
8046 2006-03-01  James Livingston  <jrl@ids.org.au>
8048         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
8049         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
8050         say it is crap.
8052         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
8053         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
8054         podcasts on ion-local places
8056         * rhythmdb/gsequence.c: (g_sequence_node_new),
8057         (g_sequence_node_free): use gslice if we are building against glib
8058         2.10.
8060         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
8061         local files too, so it doesn't block.
8063 2006-02-28  James Livingston  <jrl@ids.org.au>
8065         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
8066         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
8067         stats the file. Stops the UI blocking while stats are done.
8069 2006-02-28  James Livingston  <jrl@ids.org.au>
8071         * sources/rb-static-playlist-source.c:
8072         (rb_static_playlist_source_class_init),
8073         (rb_static_playlist_source_constructor), (impl_reset_filters),
8074         (impl_get_property_views), (impl_browser_toggled),
8075         (rb_static_playlist_source_do_query),
8076         (rb_static_playlist_source_browser_changed_cb): add browsers to static
8077         playlists. From bug 118862.
8079         * sources/rb-play-queue-source.c:
8080         (rb_play_queue_source_class_init): disable them for the play queue.
8082 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
8084         * data/glade/library-prefs.glade:  Add a mnemonic.
8085         * sources/rb-library-source.c:
8086         (rb_library_source_location_button_clicked_cb):  Use title
8087         capitalization for window title.
8089 2006-02-28  James Livingston  <jrl@ids.org.au>
8091         * sources/rb-auto-playlist-source.c:
8092         (construct_query_from_selection): don't create a subquery for only one
8093         criteria, as it's a silly effifiency degredation.
8095 2006-02-28  James Livingston  <jrl@ids.org.au>
8097         * rhythmdb/rhythmdb.h:
8098         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8099         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
8100         saved to disk
8102         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
8103         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
8104         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
8105         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
8106         IGNORE (e.g. known video stream) create an entry of the Ignore type.
8107         This will make importing files quicker as we don't need to try files
8108         that we know are not going to be interesting - especially useful when
8109         using the library watching facility.
8111         Fixes bug 323179.
8113 2006-02-28  James Livingston  <jrl@ids.org.au>
8115         * shell/rb-shell.c: (rb_shell_constructor),
8116         (rb_shell_set_visibility): fix browser and source-list pane
8117         positioning, that I broke with the "remember visibility" patch.
8119 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8121         * metadata/rb-metadata-dbus-service.c: (main):
8122         Change argument handling so you can use --debug with the --load and
8123         --can-save test modes.
8124         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
8125         Use a separate GMainContext, not the default one.  Probably fixes
8126         #332344.
8128 2006-02-27  James Livingston  <jrl@ids.org.au>
8130         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
8131         first starting up. Fixes bug 330342.
8133 2006-02-27  James Livingston  <jrl@ids.org.au>
8135         * sources/rb-sourcelist-model.c:
8136         (rb_sourcelist_model_set_dnd_targets):
8137         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
8138         COPY action for draging sources and tracks, not MOVE as well. Stops
8139         Nautilus moving file away, and fixes bug 332488.
8141 2006-02-27  James Livingston  <jrl@ids.org.au>
8143         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
8145         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
8146         and Last Played metadata off iPods. Closes bug 324648.
8148 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8150         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
8151         Disable audioscrobbler when run with the --no-registration flag, since
8152         last.fm doesn't allow multiple concurrent clients per user.
8154 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8156         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
8157         Rename renamable sources when F2 is pressed when the sourcelist has
8158         focus.  Fixes #330700.
8160 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8162         * shell/rb-playlist-manager.c: (cleanup_edit_data),
8163         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
8164         (rb_playlist_manager_cmd_edit_automatic_playlist):
8165         Fix various crashes when deleting auto playlists previously edited
8166         by disconnecting signal handlers when the query editor is closed or
8167         the playlist is deleted.
8169 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8171         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
8172         removed load failure dialog, and actually use the friendly file type
8173         name in error messages.
8175 2006-02-24  James Livingston  <jrl@ids.org.au>
8177         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
8179         * sources/rb-library-source.c:
8180         (rb_library_source_location_button_clicked_cb),
8181         (rb_library_source_preferences_sync),
8182         (rb_library_source_library_location_cb): convert the library URI to
8183         for display, and back again. Fixes bug 332356.
8185 2006-02-23  James Livingston  <jrl@ids.org.au>
8187         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
8188         (rhythmdb_process_metadata_load), (monitor_subdirectory),
8189         (rhythmdb_sync_library_location): don't monitor files at all if
8190         watching is turned off. From bug 323096.
8192 2006-02-23  James Livingston  <jrl@ids.org.au>
8194         * data/rhythmbox.schemas:
8195         * lib/rb-preferences.h:
8196         * shell/rb-shell.c: (rb_shell_constructor),
8197         (rb_shell_set_visibility): remember main window visibility between
8198         sessions. Fixes bug 127320.
8200 2006-02-23  James Livingston  <jrl@ids.org.au>
8202         * data/glade/library-prefs.glade:
8203         * sources/rb-library-source.c: (impl_get_config_widget),
8204         (rb_library_source_location_button_clicked_cb),
8205         (rb_library_source_preferences_sync),
8206         (rb_library_source_library_location_cb),
8207         (rb_library_source_watch_toggled_cb): change the library-location
8208         widgets from the file-chooser drop menu to a text entry and Browse
8209         button. This is needed to prevent the location from chaning if the
8210         directory cannot be found. Fixes bug 328414.
8212 2006-02-23  James Livingston  <jrl@ids.org.au>
8214         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
8215         item. Fixes bug 329042.
8217 2006-02-23  James Livingston  <jrl@ids.org.au>
8219         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8221         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
8222         comma in some podcast feeds. Fixes bug 332194.
8224 2006-02-23  James Livingston  <jrl@ids.org.au>
8226         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
8227         lower priority.
8229         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
8230         the internal audio cd URIs from "cdda://device:track" to
8231         "cdda://track#device" as it makes processing much easier.
8233         * shell/rb-shell-player.c: (rb_shell_player_open_location):
8234         * player/rb-player-gst.c: don't have the shell close the player
8235         between songs, as doing that should be backend-specific. Make the
8236         gstreamer backend close before starting a new track, unless the old
8237         and new ones are both tracks on the same audio cd. Just seek in that
8238         case.
8240 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8242         * doc/reference/rhythmbox.types: Fix doc build a bit more.
8244 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8246         * configure.ac: Enable more warnings in my stupid setup too.
8247         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
8248         #332210.
8250 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8252         * sources/rb-missing-files-source.h,
8253         * sources/rb-missing-files-source.c,
8254         * sources/rb-import-errors-source.h,
8255         * sources/rb-import-errors-source.c:
8256         Add library meta-sources, showing missing files and import errors.
8257         Fixes #167763, #142322.
8259         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
8260         * sources/rb-sourcelist-model.h:
8261         * sources/rb-sourcelist.c: (rb_sourcelist_append),
8262         (match_source_to_iter), (rb_sourcelist_source_to_iter),
8263         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
8264         (visibility_notify_cb):
8265         Store source visibility in the sourcelist model, so we can determine
8266         child source counts correctly and get the sourcelist expander column
8267         right.
8268         
8269         * widgets/rb-entry-view.h:
8270         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8271         (rb_entry_view_append_column), (set_column_visibility):
8272         Allow the creator of the entry view to specify which columns are
8273         always visible.
8275         * sources/rb-source.h:
8276         * sources/rb-source.c: (_autohide_update_visibility),
8277         (_rb_autohide_source_row_deleted_cb),
8278         (_rb_autohide_source_row_inserted_cb),
8279         (_rb_source_hide_when_empty):
8280         Allow sources to automatically hide themselves when empty.
8281         
8282         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
8283         * sources/rb-library-source.c: (rb_library_source_constructor):
8284         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8285         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8286         Explicitly specify which columns are always visible.
8287         
8288         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
8289         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
8290         Remove load error signal handling and load failure dialog.
8291         Create missing files and import errors sources for the library.
8293         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
8294         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
8295         Create DB entries for import errors rather than emitting the 'load
8296         error' signal; mark loaded entries visible.
8297         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
8298         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
8299         (rhythmdb_prop_get_type): Store string form of last seen time for
8300         hidden entries, since it's used in the missing files source.
8301         (rhythmdb_entry_import_error_get_type): 
8302         Add entry type for import errors.
8303         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
8304         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
8305         (rhythmdb_entry_move_to_trash_set_error),
8306         (rhythmdb_entry_move_to_trash):  
8307         Correct spelling, add missing rhythmdb_commit.
8308         * rhythmdb/rhythmdb.h:  
8309         Add import error entry type and last seen string property.
8310         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
8311         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8312         (save_entry):  Ignore string form of 'last seen' property.
8314         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
8315         Don't try to play hidden entries or import error entries.
8317         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
8318         * sources/Makefile.am: Add meta-source files
8319         * widgets/Makefile.am: Remove load failure dialog files
8321 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8323         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8324         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
8325         few bits and pieces.
8327 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8329         * metadata/test-metadata.c: (load_metadata_cb):
8330         Fix compile warning for ignoring return value from getcwd, #332064.
8332 2006-02-21  James Livingston  <jrl@ids.org.au>
8334         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
8335         (edit_auto_playlist_deleted_cb),
8336         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
8337         playlist editor non-modal. Fixes bug 320030.
8339 2006-02-21  James Livingston  <jrl@ids.org.au>
8341         * shell/rb-shell.c: (rb_shell_constructor):
8342         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
8343         (rb_header_set_show_artist_album):
8344         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
8345         (rb_song_display_box_sync): make the queue sidebar and song display
8346         not get affected by gtk_widget_show_all. Fixes bug 332001.
8348 2006-02-21  James Livingston  <jrl@ids.org.au>
8350         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
8352         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
8353         feeds which use timezone names instead of offsets. Doesn't actually
8354         parse the timezone name since they are not standardised. Fixes bug
8355         331691.
8357 2006-02-21  James Livingston  <jrl@ids.org.au>
8359         * help/C/figures/rb-notification-area.png:
8360         * help/C/figures/rb-sidebar.png:
8361         * help/C/quick-reference.xml: remove obsolete files from CVS.
8363         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
8364         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
8365         (rhythmdb_query_free), (rhythmdb_query_serialize),
8366         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
8367         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
8369         * widgets/rb-query-creator-properties.c: add prefix and suffix
8370         (escapedStringCriteriaGetWidgetData): use better escaping, so it
8371         doesn't escape the ':' separator in uris.
8373 2006-02-21  James Livingston  <jrl@ids.org.au>
8375         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
8376         on startup.
8378 2006-02-21  James Livingston  <jrl@ids.org.au>
8380         * NEWS: update with recent changes
8382 2006-02-21  James Livingston  <jrl@ids.org.au>
8384         * shell/rb-shell.c: (rb_shell_constructor),
8385         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
8386         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
8387         (rb_druid_browse_clicked_cb), (do_response):
8388         * widgets/rb-druid.h: Make running the druid not block RBShell
8389         starting up. This is required so that bonobo registration doesn't time
8390         out. Fixed bug 318766.
8392 2006-02-21  James Livingston  <jrl@ids.org.au>
8394         * rhythmdb/rhythmdb-property-model.c:
8395         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
8396         hash table after using it, not before. Fixed bug 331922.
8398 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8400         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
8401         (rb_shell_view_queue_as_sidebar_changed_cb):
8402         When playing from the queue, only attempt to highlight the queue
8403         source in the source list if it's actually visible there.  Otherwise,
8404         leave the preempted source highlighted.  Mostly fixes #330819.
8406 2006-02-20  James Livingston  <jrl@ids.org.au>
8408         * rhythmdb/rhythmdb-property-model.c:
8409         (rhythmdb_property_model_row_inserted_cb),
8410         (rhythmdb_property_model_prop_changed_cb),
8411         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
8412         store the roperty value in the entry-mapping table, so that receiving
8413         the remove signal from a query model before we get notified of a
8414         change doesn't cause a crash. Fixes bug 331770.
8416 2006-02-20  James Livingston  <jrl@ids.org.au>
8418         * data/ui/rhythmbox-ui.xml:
8419         * sources/rb-play-queue-source.c:
8420         (rb_play_queue_source_class_init),
8421         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
8422         playlist things in the queue popup source. From 330490.
8424         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
8425         previous commit
8427 2006-02-20  James Livingston  <jrl@ids.org.au>
8429         * widgets/rb-song-info.c: (rb_song_info_response_cb),
8430         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
8431         attempt to sync data for non-editable entries when using
8432         next/previous. Don't write our Year if it wasn't changed. Fixes bug
8433         331762.
8435 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
8437         * .cvsignore:
8438         * Makefile.am:
8439         * autogen.sh:
8440         * configure.ac:
8441         * help/.cvsignore:
8442         * help/Makefile.am: ported to gnome-doc-utils
8443         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
8444         * help/ChangeLog: added, for translators
8445         * help/C/rhytmbox-C.omf: removed, no longer used
8446         Know issue: figures are installed, but some are not showed; manual
8447         description added, but not showed in Yelp while browsing. I'll
8448         investigate, maybe are needed some little changes to
8449         help/C/rhythmbox.xml.
8451 2006-02-20  James Livingston  <jrl@ids.org.au>
8453         * data/ui/rhythmbox-ui.xml:
8454         * help/C/figures/rb-adv.png:
8455         * help/C/figures/rb-asst-finish.png:
8456         * help/C/figures/rb-asst-library.png:
8457         * help/C/figures/rb-asst-start.png:
8458         * help/C/figures/rb-basic.png:
8459         * help/C/figures/rb-browser.png:
8460         * help/C/figures/rb-context-menu.png:
8461         * help/C/figures/rb-empty.png:
8462         * help/C/figures/rb-full-play.png:
8463         * help/C/figures/rb-group-auto.png:
8464         * help/C/figures/rb-group-create.png:
8465         * help/C/figures/rb-group.png:
8466         * help/C/figures/rb-imported.png:
8467         * help/C/figures/rb-iradio-add.png:
8468         * help/C/figures/rb-iradio.png:
8469         * help/C/figures/rb-nextprev.png:
8470         * help/C/figures/rb-nobrowse-play.png:
8471         * help/C/figures/rb-notification-area-menu.png:
8472         * help/C/figures/rb-player.png:
8473         * help/C/figures/rb-prefs-general.png:
8474         * help/C/figures/rb-prefs-ipod.png:
8475         * help/C/figures/rb-prefs-library.png:
8476         * help/C/figures/rb-prefs.png:
8477         * help/C/figures/rb-repeat.png:
8478         * help/C/figures/rb-search.png:
8479         * help/C/figures/rb-shuffle.png:
8480         * help/C/figures/rb-stats.png:
8481         * help/C/figures/rb-toolbar-editor.png:
8482         * help/C/figures/rb-volume-mute.png:
8483         * help/C/figures/rhythmbox-group.png:
8484         * help/C/figures/rhythmbox-tray-icon.png:
8485         * help/C/user-guide.xml: remove old stuff from cvs
8487 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8489         * metadata/rb-metadata-dbus-client.c: 
8490         * metadata/rb-metadata-dbus-service.c:
8491         * metadata/rb-metadata-dbus.c:
8492         * metadata/rb-metadata-dbus.h:
8493         New files, adding an external service for reading and writing
8494         metadata, and an implementation of the RBMetaData interface that uses
8495         dbus to communicate with it.
8496         
8497         * metadata/rb-metadata.h,
8498         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
8499         (rb_metadata_get_field_name): Put metadata details in a static array
8500         instead of using a hash table, and add a field for language code (not
8501         used for anything)
8502         * metadata/rb-metadata-gst.c: Updates for changes in
8503         rb-metadata-common.c, fix signal handler closure leak for the typefind
8504         element's have-type signal, and add XML to the list of types we ignore.
8505         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
8506         Update for changes to rb_metadata_get_field_type
8507         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
8508         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
8509         here and there.
8510         
8511         * configure.ac: Add --enable-metadata-helper option (not enabled by
8512         default) to use the external metadata service
8513         * metadata/Makefile.am: Add new files
8514         * metadata/test-metadata.c:  Test program for the metadata service
8516         Fixes #329597. 
8518 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8520         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
8521         * sources/rb-podcast-source.c: (impl_get_ui_actions),
8522         (rb_podcast_source_cmd_new_podcast):
8523         Move 'new podcast' action to the podcast source, and add it to the
8524         toolbar.  Fixes #331562.
8526 2006-02-19  James Livingston  <jrl@ids.org.au>
8528         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
8529         menus, and away from move-to-trash. Fixes bug 331013.
8531 2006-02-19  James Livingston  <jrl@ids.org.au>
8533         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
8534         when deleting last entry. Fixes bug 331712.
8536 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8538         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8539         (rb_entry_view_button_press_cb):
8540         * widgets/rb-entry-view.h: Emit show-popup when right clicked
8541         anywhere, and include a flag indicating whether the click was over an
8542         entry or not.
8543         
8544         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
8545         (rb_playlist_source_songs_show_popup_cb):
8546         * sources/rb-playlist-source.h:
8547         Add the 'over entry' flag to the class show popup method, and in the
8548         default handler, ignore right clicks when not over an entry.
8549         
8550         * sources/rb-iradio-source.c:
8551         (rb_iradio_source_songs_show_popup_cb):
8552         * sources/rb-library-source.c:
8553         (rb_library_source_songs_show_popup_cb):
8554         * sources/rb-podcast-source.c:
8555         (rb_podcast_source_songs_show_popup_cb):
8556         Show the source list popup menu when right clicked while not over an
8557         entry.
8559         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
8560         For the queue sidebar, always display the popup so the 'clear queue'
8561         action is available regardless of where you click.  For the queue
8562         source, only display the popup when right clicked over an entry.
8563         Fixes #331392.
8565 2006-02-19  James Livingston  <jrl@ids.org.au>
8567         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
8568         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
8569         entry view, when we're not even using it
8571         * rhythmdb/rhythmdb-property-model.c:
8572         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
8573         function, rather than a copy of the code.
8575         * shell/rb-playlist-manager.c:
8576         (rb_playlist_manager_playlist_row_inserted_cb),
8577         (rb_playlist_manager_set_source_internal),
8578         (rb_playlist_manager_playlist_entries_changed): use the query-model
8579         directly, rather than the source's entry view.
8581         * shell/rb-source-header.c: don't use the entry view, just select the
8582         source widget.
8584 2006-02-18  James Livingston  <jrl@ids.org.au>
8586         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8588         * help/C/figures/rb-iradio-main.png:
8589         * help/C/figures/rb-notification-area-menu.png:
8590         * help/C/figures/rb-notification-window.png:
8591         * help/C/figures/rb-notification-zone.png:
8592         * help/C/figures/rb-podcast-main.png:
8593         * help/C/figures/rb-statusbar.png:
8594         * help/C/figures/rb-toolbar-prevplaynext.png:
8595         * help/C/figures/rb-toolbar-repeat.png:
8596         * help/C/figures/rb-toolbar-shuffle.png:
8597         * help/C/figures/rb-toolbar.png:
8598         * help/C/figures/rb-volume-changer.png:
8599         * help/C/figures/rb-window-small.png:
8600         * help/C/figures/rb-window.png:
8601         * help/C/rhythmbox.xml: Update user guide with some of the changes
8602         that have occurred after 0.8.8. From bug 314001.
8604 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8606         * rhythmdb/rhythmdb-query-results.h,
8607           rhythmdb/rhythmdb-query-results.c:
8608         New interface for objects that accept query results from RhythmDB.
8610         * rhythmdb/rhythmdb-query-model.c:
8611         (rhythmdb_query_model_query_results_init),
8612         (rhythmdb_query_model_set_query),
8613         (rhythmdb_query_model_add_results),
8614         (rhythmdb_query_model_query_complete):
8615         * rhythmdb/rhythmdb-query-model.h:
8616         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
8618         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
8619         (rhythmdb_tree_do_full_query):
8620         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
8621         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
8622         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
8623         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
8624         * rhythmdb/rhythmdb.h:
8625         Pass query results through the RhythmDBQueryResults interface, rather
8626         than directly to a RhythmDBQueryModel.
8628         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
8629         (rb_podcast_manager_db_entry_deleted_cb):
8630         * sources/rb-auto-playlist-source.c:
8631         (rb_auto_playlist_source_do_query),
8632         (rb_auto_playlist_source_set_query):
8633         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
8634         * sources/rb-library-source.c: (rb_library_source_constructor),
8635         (rb_library_source_do_query):
8636         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8637         (rb_podcast_source_do_query):
8638         * rhythmdb/rhythmdb-property-model.c:
8639         (rhythmdb_property_model_drag_data_get):
8640         Cast the query model to RhythmDBQueryResults when passing to one of
8641         the RhythmDB query methods.
8643         * rhythmdb/Makefile.am: Add new files.
8645 2006-02-18  James Livingston  <jrl@ids.org.au>
8647         * data/ui/rhythmbox-ui.xml:
8648         * shell/rb-playlist-manager.c:
8649         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
8650         "queue playlist" item to source context menu. Fixes bug 330490.
8652 2006-02-18  James Livingston  <jrl@ids.org.au>
8654         * data/glade/general-prefs.glade:
8655         * shell/rb-shell-preferences.c:
8656         (rb_shell_preferences_column_check_changed_cb),
8657         (rb_shell_preferences_sync):
8658         * sources/rb-library-source.c: (rb_library_source_constructor):
8659         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8660         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
8661         (rb_entry_view_append_column): Add a "quality" colume which indicates
8662         the bitrate of media. Part of bug 167659.
8664 2006-02-18  James Livingston  <jrl@ids.org.au>
8666         * shell/rb-play-order.c: (do_next_idle_cb),
8667         (default_playing_entry_removed): move to next track when playing entry
8668         is deleted. Fixes bug 131150.
8670         * shell/rb-shell-player.h: remove ancient stuff
8672 2006-02-17  William Jon McCann  <mccann@jhu.edu>
8674         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
8675         (rb_shell_clipboard_set_property): 
8676         * shell/rb-shell.c (rb_shell_sync_party_mode):
8677         Trigger a resync of the clipboard properties when changing party mode.
8679 2006-02-17  William Jon McCann  <mccann@jhu.edu>
8681         * sources/rb-static-playlist-source.c: Fix includes.
8683         * sources/rb-source.c (rb_source_can_rename) 
8684         (rb_source_can_delete, rb_source_can_move_to_trash):
8685         Return FALSE if in party mode.
8687         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
8688         Replace fullscreen with party mode.
8689         (rb_shell_window_delete_cb): Don't quit if in party mode.
8690         (rb_shell_view_party_mode_changed_cb): Setup party mode.
8691         (window_state_event_cb): Try to deiconify shell when iconified
8692         in party mode.
8693         (rb_shell_sync_party_mode): Sync party mode properties.
8694         Currently, that means [de]sensitizing close, quit, and small-display,
8695         going into fullscreen mode with window stuck and kept above, and
8696         toggling queue-only for the shell player.
8697         (rb_shell_sync_smalldisplay): Sensitive party mode.
8698         (rb_shell_get_party_mode): Get party mode setting.
8700         * shell/rb-shell-player.c (rb_shell_player_class_init) 
8701         (rb_shell_player_set_property, rb_shell_player_get_property):
8702         Add queue-only property.
8703         (rb_shell_player_entry_activated_cb): If in party mode
8704         only queue the entry on activation.
8706         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
8707         Break out from set_properties.  Desensitize some actions when
8708         in party mode.
8709         (rb_playlist_manager_set_property): Break out set_source_internal.
8711         * data/rhythmbox.schemas: Remove fullscreen mode.
8713         * data/ui/rhythmbox-ui.xml: Replace fullscreen
8714         action with party mode.
8716         Partial fix for #323933
8718 2006-02-17  James Livingston  <jrl@ids.org.au>
8720         * configure.ac:
8721         * shell/rb-removable-media-manager.c:
8722         (get_nautilus_burn_drive_for_path),
8723         (rb_removable_media_manager_playing_uri_changed_cb): only use
8724         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
8725         over the list when it doesn't.
8727 2006-02-17  James Livingston  <jrl@ids.org.au>
8729         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
8730         (rb_iradio_source_first_time_changed): Only do the import on the
8731         first change from FALSE to TRUE.
8733         * sources/rb-library-source.c:
8734         (rb_library_source_preferences_sync),
8735         (rb_library_source_library_location_cb): set the first-run done flag
8736         if the user presses close and then sets their watches library
8737         location. Fixes bug 325997.
8739 2006-02-17  James Livingston  <jrl@ids.org.au>
8741         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
8742         removable media manager gobject properties
8744         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
8745         (split_drive_from_cdda_uri),
8746         (rb_removable_media_manager_playing_uri_changed_cb),
8747         (rb_removable_media_manager_load_media): stop polling a cd drive
8748         when we are playing from it. Part of bug 330716.
8750 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8752         * rhythmdb/rhythmdb-query-model.c:
8753         (rhythmdb_query_model_set_property),
8754         (rhythmdb_query_model_finalize),
8755         (rhythmdb_query_model_base_entry_removed):
8756         Propagate entry removal from base models out to attached property
8757         models.  Fixes the rest of #331165.
8759 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8761         * rhythmdb/rhythmdb-property-model.c:
8762         (rhythmdb_property_model_row_inserted_cb),
8763         (rhythmdb_property_model_prop_changed_cb),
8764         (rhythmdb_property_model_insert):
8765         Don't store NULL as a hash table value if we want to use
8766         g_hash_table_lookup to check if a key exists, and get the checks for
8767         how and whether to handle entry changes the right way around.
8768         Fixes #331211 and half of #331165.
8770 2006-02-16  James Livingston  <jrl@ids.org.au>
8772         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
8773         the audio cd's TOC in a separate thread, so it doesn't block the UI.
8774         Fixes bug 329942.
8776 2006-02-16  James Livingston  <jrl@ids.org.au>
8778         * widgets/rb-library-browser.c: (reset_view_cb): make View All
8779         actually reset the browsers.
8781 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8783         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
8784         Escape the strings we pass into libnotify so we don't get blank
8785         notifications when the song name contains '&' etc.  Fixes #330784.
8787 2006-02-16  James Livingston  <jrl@ids.org.au>
8789         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
8790         enable "View All" when there is only a search box and no browser.
8791         Fixes bug 331395.
8793 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8795         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
8796         popup menu, which I forgot to commit with the patch for bug #330014.
8798 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8800         * shell/rb-shell-player.c: (open_location_thread):
8801         Sync button and entry view state once we've started the player, so the
8802         entry view gets into the playing state for iradio.
8804 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8806         * shell/rb-shell-player.c: (open_location_thread):
8807         Take GDK lock before doing anything UI-related.
8809 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8811         * shell/rb-shell.c: Move 'new iradio station' action to
8812         iradio source.
8814         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
8815         (rb_iradio_source_init), (rb_iradio_source_finalize),
8816         (rb_iradio_source_constructor):
8817         Remove some unused stuff.
8819         (guess_uri_scheme), (rb_iradio_source_add_station),
8820         (rb_iradio_source_add_from_playlist),
8821         (impl_get_ui_actions), (new_station_location_added),
8822         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
8823         action, include it in the toolbar, and make sure the URI we add has a
8824         scheme.  Fixes #327059, more or less.
8826 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8828         * sources/rb-play-queue-source.c:
8829         (rb_play_queue_source_class_init),
8830         (rb_play_queue_source_constructor),
8831         (rb_play_queue_source_update_count),
8832         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
8833         Add a toolbar button to clear the play queue, and make it sensitive
8834         only when there are entries in the queue.  Fixes #330014.
8836         * sources/rb-source.c: (_rb_source_register_action_group):
8837         * sources/rb-source.h:  Add helper function to register an
8838         action group for a source.
8840         * sources/rb-library-source.c: (rb_library_source_constructor):
8841         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8842         (register_action_group):  Use _rb_source_register_action_group.
8844 2006-02-15  James Livingston  <jrl@ids.org.au>
8846         * widgets/rb-song-info.c: (rb_song_info_add_completion),
8847         (rb_song_info_constructor), (rb_song_info_set_property): make
8848         tag-editing completion work for albums too.
8850 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8852         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
8853         Check the 'limit' checkbox for time-limited playlists.
8855 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
8857         * widgets/rb-song-info.c: Prove text-completion when editing title,
8858         artist or album
8860 2006-02-14  James Livingston  <jrl@ids.org.au>
8862         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
8863         tray icon popup menu. Fixes bug 331026.
8865 2006-02-14  James Livingston  <jrl@ids.org.au>
8867         * data/iradio-initial.pls: update the Virgin Radio stations to use the
8868         Ogg Vorbis streams, instead of the MP3 ones.
8870 2006-02-14  James Livingston  <jrl@ids.org.au>
8872         * rhythmdb/rhythmdb-property-model.c:
8873         (rhythmdb_property_model_class_init),
8874         (rhythmdb_property_model_drag_data_get):
8875         * rhythmdb/rhythmdb-query-model.c:
8876         (rhythmdb_query_model_title_sort_func):
8877         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
8878         LOCATION as the key. Fixes bug 330601.
8880 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8882         * sources/rb-playlist-source.c: (playlist_iter_func):
8883         Make it compile with older versions of totem-plparser too.      
8885 2006-02-13  James Livingston  <jrl@ids.org.au>
8887         * rhythmdb/rhythmdb.h:
8888         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
8889         structure private, since things should use the accessor functions
8890         rather than manipulating it directly - Only RhythmDB and the
8891         implementation classes should access it directly. Part of the RhythmDB
8892         cleanup of bug 330226.
8894         * iradio/rb-station-properties-dialog.c:
8895         (rb_station_properties_dialog_update_title),
8896         (rb_station_properties_dialog_update_title_entry),
8897         (rb_station_properties_dialog_update_genre),
8898         (rb_station_properties_dialog_update_location),
8899         (rb_station_properties_dialog_update_play_count),
8900         (rb_station_properties_dialog_update_bitrate),
8901         (rb_station_properties_dialog_update_last_played),
8902         (rb_station_properties_dialog_update_rating),
8903         (rb_station_properties_dialog_update_playback_error),
8904         (rb_station_properties_dialog_sync_entries):
8905         * podcast/rb-feed-podcast-properties-dialog.c:
8906         (rb_feed_podcast_properties_dialog_update_title),
8907         (rb_feed_podcast_properties_dialog_update_title_label),
8908         (rb_feed_podcast_properties_dialog_update_author),
8909         (rb_feed_podcast_properties_dialog_update_location),
8910         (rb_feed_podcast_properties_dialog_update_copyright),
8911         (rb_feed_podcast_properties_dialog_update_language),
8912         (rb_feed_podcast_properties_dialog_update_summary):
8913         * podcast/rb-podcast-manager.c:
8914         (rb_podcast_manager_entry_downloaded),
8915         (rb_podcast_manager_db_entry_added_cb),
8916         (download_progress_update_cb),
8917         (rb_podcast_manager_db_entry_deleted_cb):
8918         * podcast/rb-podcast-properties-dialog.c:
8919         (rb_podcast_properties_dialog_update_title),
8920         (rb_podcast_properties_dialog_update_title_label),
8921         (rb_podcast_properties_dialog_update_feed),
8922         (rb_podcast_properties_dialog_update_location),
8923         (rb_podcast_properties_dialog_update_play_count),
8924         (rb_podcast_properties_dialog_update_bitrate),
8925         (rb_podcast_properties_dialog_update_last_played),
8926         (rb_podcast_properties_dialog_update_rating),
8927         (rb_podcast_properties_dialog_update_date),
8928         (rb_podcast_properties_dialog_update_description):
8929         * rhythmdb/rhythmdb-query-model.c:
8930         (rhythmdb_query_model_entry_changed_cb),
8931         (rhythmdb_query_model_remove_from_main_list),
8932         (rhythmdb_query_model_update_limited_entries),
8933         (rhythmdb_query_model_drag_data_get),
8934         (rhythmdb_query_model_album_sort_func):
8935         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8936         (save_entry):
8937         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
8938         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
8939         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
8940         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
8941         (rhythmdb_entry_get_double):
8942         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
8943         * shell/rb-play-order-random-by-age-and-rating.c:
8944         (rb_random_by_age_and_rating_get_entry_weight):
8945         * shell/rb-play-order-random-by-age.c:
8946         (rb_random_by_age_get_entry_weight):
8947         * shell/rb-play-order-random-by-rating.c:
8948         (rb_random_by_rating_get_entry_weight):
8949         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
8950         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
8951         (rb_shell_player_set_playing_entry),
8952         (rb_shell_player_sync_replaygain),
8953         (rb_shell_player_sync_with_source),
8954         (rb_shell_player_get_playing_song_duration), (info_available_cb):
8955         * sources/rb-playlist-source.c: (playlist_iter_func),
8956         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
8957         (rb_playlist_source_entry_added_cb):
8958         * sources/rb-podcast-source.c:
8959         (rb_podcast_source_post_status_cell_data_func):
8960         * sources/rb-source.c: (rb_source_update_play_statistics):
8961         * sources/rb-sourcelist-model.c:
8962         (rb_sourcelist_model_drag_data_get):
8963         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
8964         (rb_static_playlist_source_add_entry),
8965         (rb_static_playlist_source_remove_entry):
8966         * widgets/rb-entry-view.c: (type_ahead_search_func),
8967         (rb_entry_view_playing_cell_data_func),
8968         (rb_entry_view_rating_cell_data_func),
8969         (rb_entry_view_pixbuf_clicked_cb):
8970         * widgets/rb-header.c: (rb_header_get_duration):
8971         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
8972         (rb_song_info_populate_dialog),
8973         (rb_song_info_update_playback_error),
8974         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
8975         (rb_song_info_update_location), (rb_song_info_update_play_count),
8976         (rb_song_info_update_last_played), (rb_song_info_update_rating),
8977         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
8978         (rb_song_info_sync_entry_single): fix the huge number of times that
8979         the internals got accessed directly.
8981 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8983         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
8984         trash' are grouped together.
8985         * shell/main.c: (main): Pass no-registration flag in to RBShell
8986         constructor, rather than mysteriously always passing TRUE.
8987         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
8988         Set dirty flag when entries are removed from the model, so the play
8989         queue is marked dirty appropriately.
8990         * AUTHORS: update my email address
8992 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8994         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
8996         * widgets/rb-druid.c: (path_dialog_response_cb):
8997         If the URI is local, don't display the 'file://' prefix.  
8998         Fixes #330919.
9000 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9002         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9003         Attach the notification to the tray icon widget, so libnotify
9004         positions it less badly.  Fixes #330876.
9006 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9008         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
9009         Reverse the selection list before returning it, so we get it in the
9010         right order.  Fixes #330283 and some other weirdness.
9012 2006-02-11  James Livingston  <jrl@ids.org.au>
9014         * shell/rb-shell.c: (rb_shell_constructor),
9015         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
9016         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9017         make small-mode and fullscreen mutually exclusive, since they don't
9018         work together
9020         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
9021         Mode.
9023 2006-02-10  James Livingston  <jrl@ids.org.au>
9025         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
9026         since it can cause it to be slower than real-time. Should fix bug
9027         322270.
9029 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9031         * rhythmdb/rhythmdb-query-model.c:
9032         (rhythmdb_query_model_set_property):
9033         Think just a little bit harder about that last commit.
9035 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9037         * rhythmdb/rhythmdb-query-model.c:
9038         (rhythmdb_query_model_set_property):
9039         Get the check for hidden entries the right way around.
9040         Fixes #330527, #330514.
9042         (rhythmdb_query_model_set_sort_order):
9043         Ignore no-op sort order changes, so we don't get critical
9044         messages when selecting 'all' in auto playlist browsers.
9046 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9048         Patch by: Christophe Fergeau  <teuf@gnome.org>
9050         * sources/rb-removable-media-source.c:
9051         (rb_removable_media_source_init),
9052         (rb_removable_media_source_constructor):
9053         Move icon setup code to the constructor, as the volume property
9054         haven't been set yet when _init is called.
9056 2006-02-09  William Jon McCann  <mccann@jhu.edu>
9058         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
9059         Make the source pixbuf a dynamic property.
9061         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
9062         (rb_source_set_pixbuf, rb_source_set_property) 
9063         (rb_source_get_property): Add icon property.
9065         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
9066         (rb_auto_playlist_source_init):
9067         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
9068         (rb_static_playlist_source_init):
9069         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
9070         (rb_removable_media_source_init): 
9071         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
9072         (rb_podcast_source_init): 
9073         * sources/rb-library-source.c (rb_library_source_class_init) 
9074         (rb_library_source_set_property, rb_library_source_get_property): 
9075         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
9076         (rb_iradio_source_init): Remove impl_get_pixbuf and
9077         set icon property on source base class.
9079         * sources/rb-daap-source.c (rb_daap_get_icon): Get
9080         a different icon for when the share is password protected
9081         and locked.
9082         (rb_daap_source_new): Set icon property.
9083         (composite_icons): Composite an emblem on a pixbuf.
9084         (create_pixbufs): Load global pixbufs.
9085         (destroy_pixbufs): unref global pixbufs.
9086         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
9087         (connection_auth_cb, connection_connected_cb) 
9088         (connection_disconnected_cb): Update icon when connection
9089         status changes.
9090         (rb_daap_source_activate): Connect signals.
9092         * daapsharing/rb-daap-share.c (name_collision_cb): Run
9093         dialog with parent.
9095         * daapsharing/rb-daap-marshal.list: Add new signal.
9097         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
9098         (rb_daap_collision_dialog_new_run): Set parent of dialog.
9100         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
9101         Add authenticate, connected, and disconnected signals.
9102         (connection_get_password): emit authenticate signal instead
9103         of running dialog directly.
9104         (connection_connected, connection_disconnected): Emit signals.
9105         (handle_login): Emit connected signal.
9106         (handle_logout): Emit disconnected signal.
9107         (rb_daap_connection_do_something): Fix leak.
9109         Fixes #330291
9111 2006-02-09  James Livingston  <jrl@ids.org.au>
9113         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
9114         entries from the base model if we don't have show-hidden set. Fixes
9115         bug 330514.
9117 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9119         * daapsharing/rb-daap-share.c (message_get_session_id):
9120         Ugh. Use strtoul instead of atoi.
9121         (session_id_validate): Add debug statements.
9123 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9125         * daapsharing/rb-daap-connection.c (http_response_handler):
9126         Report the actual uri from the message in debug statements.
9128 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9130         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
9131         Add context argument.
9132         (message_get_session_id): New function to parse session id from
9133         the message.
9134         (message_get_revision_number): Break out function to parse
9135         revision number from the message.
9136         (session_id_validate): New function to validate given session id
9137         is valid for given context (ie. client address).
9138         (session_id_generate): Generate a random session id.
9139         (session_id_create): Create a unique session id and store it.
9140         (session_id_remove): Remove a session id from the store.
9141         (login_cb): Create a session id instead of using a constant one.
9142         (logout_cb): Validate session id.
9143         (update_cb): Use new message_get_revision_number function.
9144         (databases_cb): Validate session id.
9145         (server_cb): Add server context to argument list for callbacks.  It
9146         is needed to look up the remote host.
9147         (db_entry_changed_cb): Use braces.
9148         (soup_auth_callback): Remove FIXME.
9149         (rb_daap_share_server_start): Create session id store.
9150         (rb_daap_share_server_stop): Destroy session id store.
9152         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
9153         Don't base64-encode password here since it needs to be
9154         combined with the username first.
9156         * daapsharing/rb-daap-connection.c (build_message):
9157         Add username to Authorization token.
9158         (handle_login, handle_song_listing) 
9159         (rb_daap_connection_do_something): Session id
9160         must be an unsigned int.
9162         Fixes #329814
9164 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9166         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9167         Don't check if we've got a playing entry, ask the player object (duh).
9168         Might actually fix #329993.     
9170 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9172         * sources/rb-static-playlist-source.c:
9173         (rb_static_playlist_source_add_list_uri):
9174         Canonicalise URIs before trying to add them to the playlist, and 
9175         don't try to add files to the database for which there is 
9176         already an entry.
9178 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9180         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9181         Don't ask the entry view if we're playing, just check if we've got a
9182         playing entry.  Fixes #329993.
9184 2006-02-08  James Livingston  <jrl@ids.org.au>
9186         * rhythmdb/rhythmdb-query-model.c:
9187         (rhythmdb_query_model_set_property),
9188         (rhythmdb_query_model_finalize),
9189         (rhythmdb_query_model_base_complete): remove
9190         rhythmdb_query_model_base_entry_prop_changed, so that two signals
9191         don't get emitted for entry changes. Fixes bug 330301.
9193         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
9194         (rb_library_browser_init), (rb_library_browser_constructor),
9195         (rb_library_browser_new): do stuff in the constructor, not the init
9196         function, so that the db property gets set on RBPropertyViews
9197         correctly. Fixes a crash when dragging properties to a playlist.
9199 2006-02-07  William Jon McCann  <mccann@jhu.edu>
9201         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
9202         Actually stop soup server.  Fixes #329816.
9204 2006-02-07  James Livingston  <jrl@ids.org.au>
9206         * lib/rb-util.h:
9207         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
9208         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
9209         (collate_values_cb), (rb_collate_hash_table_keys),
9210         (rb_collate_hash_table_values): add functions to compare, copy and
9211         free string-lists. add functions to collate the keys or values of a
9212         hash table into a list.
9214         * rhythmdb/rhythmdb-property-model.c:
9215         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
9216         (_remove_entry_cb), (_add_entry_cb),
9217         (rhythmdb_property_model_set_property),
9218         (rhythmdb_property_model_get_property),
9219         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
9220         (rhythmdb_property_model_row_inserted_cb),
9221         (rhythmdb_property_model_prop_changed_cb),
9222         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
9223         that are hidden, storing those that we have counted in a hash-table.
9225         * shell/Makefile.am: fix build order issue
9227         * shell/rb-shell-player.c: (rb_shell_player_set_property):
9228         * sources/rb-source.h:
9229         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9230         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9231         * sources/rb-podcast-source.c: (feed_select_change_cb): add
9232         browser-toggled method, rename _get_exta_views to _get_property_views,
9233         since several things depend on returning only that.
9235         * sources/rb-source.c: (rb_source_class_init),
9236         (rb_source_browser_toggled), (default_get_property_views),
9237         (rb_source_get_property_views), (rb_source_row_deleted_cb),
9238         (rb_source_gather_hash_keys),
9239         (rb_source_gather_selected_properties): above changes, and move some
9240         utility functions up from RBLibraryView
9242         * widgets/rb-property-view.c:
9243         (rb_property_view_selection_changed_cb): fix leak.
9245         * rhythmdb/rhythmdb-query-model.c:
9246         (rhythmdb_query_model_set_property),
9247         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
9248         (rhythmdb_query_model_set_sort_order),
9249         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
9250         query model being resorted.
9252         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
9253         NULL query.
9255         * rhythmdb/rhythmdb.h:
9256         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
9257         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
9258         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
9259         two queries. Add a function to append "property={X,Y,Z,...}" to a
9260         query.
9262         * sources/rb-library-source.c: (rb_library_source_class_init),
9263         (rb_library_source_finalize), (rb_library_source_constructor),
9264         (rb_library_source_cmd_choose_genre),
9265         (rb_library_source_cmd_choose_artist),
9266         (rb_library_source_cmd_choose_album), (impl_search),
9267         (impl_get_property_views), (impl_reset_filters),
9268         (rb_library_source_preferences_sync),
9269         (rb_library_source_browser_views_activated_cb),
9270         (rb_library_source_state_prefs_sync),
9271         (construct_query_from_selection), (rb_library_source_do_query),
9272         (rb_library_source_browser_changed_cb):
9273         * widgets/Makefile.am:
9274         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
9275         browser" widgets, which contains several property views, based on the
9276         code from RBLibrarySource. Make RBLibrarySource use it.
9278         * sources/rb-auto-playlist-source.c:
9279         (rb_auto_playlist_source_class_init),
9280         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
9281         (rb_auto_playlist_source_constructor), (impl_reset_filters),
9282         (impl_get_property_views), (impl_browser_toggled),
9283         (construct_query_from_selection),
9284         (rb_auto_playlist_source_do_query),
9285         (rb_auto_playlist_source_set_query),
9286         (rb_auto_playlist_source_browser_changed_cb): Use the new
9287         library-browser widget to add browsers to automatic playlists.
9289 2006-02-07  James Livingston  <jrl@ids.org.au>
9291         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
9292         properly.
9293         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
9294         type of the source is taken into account. Fixes bug 329621.
9296 2006-02-07  James Livingston  <jrl@ids.org.au>
9298         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9299         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
9300         1.1, and perform URI canonicalistion when first upgrading. This should
9301         fix our remaining canonicalisation issues, such as bug 329988.
9303 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9305         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
9306         Track the playing entry when the entry view isn't in the playing
9307         state, so we don't have to get the state changes exactly right.
9308         Fixes #330135.
9310 2006-02-06  James Livingston  <jrl@ids.org.au>
9312         * shell/rb-shell-player.c: (open_location_thread),
9313         (rb_shell_player_open_location): fix several iradio issues: having to
9314         press play after double-clicking on a station, not working correctly
9315         without a http:// prefix, and ignoring totem-plparser results other
9316         than success or error (e.g. IGNORE).
9318 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
9320         Addition of dbus methods for dealing with static playlists and the
9321         play queue.  Fixes #329958.
9323         * shell/Makefile.am:
9324         * shell/rb-playlist-manager.h:
9325         * shell/rb-playlist-manager.xml:
9326         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
9327         (rb_playlist_manager_get_playlists),
9328         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
9329         (rb_playlist_manager_create_static_playlist),
9330         (rb_playlist_manager_delete_playlist),
9331         (rb_playlist_manager_add_to_playlist),
9332         (rb_playlist_manager_remove_from_playlist),
9333         (rb_playlist_manager_export_playlist):
9334         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
9335         to create, delete, list, modify, export, and import  static playlists.
9336         
9337         * shell/main.c: (main): Register playlist manager object with dbus.
9339         * shell/rb-shell.h:
9340         * shell/rb-shell.xml:
9341         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
9342         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
9343         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
9344         object, and implement the addToQueue and removeFromQueue methods.
9345         
9346         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
9347         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
9348         formats.
9350 2006-02-05  James Livingston  <jrl@ids.org.au>
9352         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
9353         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
9354         (save_entry): allow storage of booleans in the on-disk db, and
9355         save/load the HIDDEN property.
9357         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
9358         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
9359         to the state it was when RB shutdown. This makes RB appear to start
9360         faster, as tracks can appear before the stat is done. Remote files
9361         still start hidden. From bug 325215.
9363 2006-02-05  James Livingston  <jrl@ids.org.au>
9365         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
9366         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
9367         really cares about the difference from "entry-added", and it isn't
9368         emitted by the tree backend anyway.
9370         * rhythmdb/rhythmdb-query-model.c:
9371         (rhythmdb_query_model_constructor):
9372         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9373         remove the references to the entry-restored signal.
9375 2006-02-05  James Livingston  <jrl@ids.org.au>
9377         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
9378         issue.
9380 2006-02-05  James Livingston  <jrl@ids.org.au>
9382         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
9383         things are NULL before using g_object_unref. Fixes bug 327452.
9385         * player/rb-recorder-gst.c: (rb_recorder_construct):
9386         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
9387         rather than assertion.
9389         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
9390         emit a warning, rather than asserting if an unknown playlist type is
9391         encountered.
9393 2006-02-05  James Livingston  <jrl@ids.org.au>
9395         * widgets/Makefile.am:
9396         * widgets/rb-simple-view.c:
9397         * widgets/rb-simple-view.h: Move the two features that this class
9398         provides into RBPropertyView, and remove this class. Closes bug
9399         327500.
9401         * podcast/rb-feed-podcast-properties-dialog.c:
9402         * podcast/rb-feed-podcast-properties-dialog.h:
9403         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9404         (rb_podcast_source_feeds_show_popup_cb):
9405         * sources/rb-podcast-source.h:
9406         * widgets/rb-property-view.c: (rb_property_view_class_init),
9407         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
9408         (rb_property_view_append_column_custom),
9409         (rb_property_view_button_press_cb):
9410         * widgets/rb-property-view.h: Updated for the above change.
9412 2006-02-04  James Livingston  <jrl@ids.org.au>
9414         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
9415         too close to Move to Trash and people aren't likely to use it often.
9417 2006-02-04  James Livingston  <jrl@ids.org.au>
9419         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
9421 2006-02-04  James Livingston  <jrl@ids.org.au>
9423         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
9424         passed a path instead of a URI.
9426         * sources/rb-generic-player-source.c: (default_get_mount_path):
9427         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
9428         the path. This fixes bug 329723.
9430 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
9432         * daapsharing/rb-daap-structure.c:
9433         (rb_daap_content_code_string_as_int32):
9434         Use network byte order.
9436 2006-02-03  William Jon McCann  <mccann@jhu.edu>
9438         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
9439         Use a hash for source lookup.
9440         (mdns_service_added, mdns_service_removed): Handle
9441         service-added and service-removed signals from RBDaapMdnsBrowser.
9442         (remove_source): GDestroyNotify function for when sources
9443         are removed from the hash.
9444         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
9445         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
9446         (rb_daap_sources_shutdown): Update.
9447         (source_host_find): GHRFunc for finding a source by ip.
9448         (rb_daap_source_find_for_uri): Use the hash source lookup.
9450         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
9451         Namespace keys.
9452         (password_check_button_toggled_cb): Handle password enabled.
9453         (share_name_entry_focus_out_event_cb): Namespace keys.
9454         Handle changes more robustly.
9455         (share_password_entry_focus_out_event_cb): Handle password entry.
9456         (add_daap_preferences): Connect to password signals.
9458         * lib/rb-preferences.h: Add DAAP keys.
9460         * data/glade/daap-prefs.glade: Add password UI.
9462         * data/rhythmbox.schemas: Add password keys.
9464         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
9465         assert with warning.
9467         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
9468         gconf keys to lib/rb-preferences.h.  Namespace
9469         the gconf keys.
9470         (create_share): Add password support.
9471         (enable_sharing_changed_cb): Namespaced keys.
9472         (require_password_changed_cb): Handle key change.
9473         (share_name_changed_cb): Namespaced keys.
9474         (share_password_changed_cb): Handle key change.
9475         (rb_daap_sharing_init): Namespaced keys.
9476         (rb_daap_sharing_shutdown): Ditto.
9478         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
9479         Add password property.
9480         (rb_daap_share_set_name): Break out prop set function.
9481         (published_cb): New RBDaapMdnsPublisher signal handler.
9482         (name_collision_cb): Ditto.
9483         (rb_daap_share_init): Create publisher object and
9484         connect to signals.
9485         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
9486         (rb_daap_share_set_property): Break out prop set functions.
9487         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
9488         Unref publisher.
9489         (rb_daap_share_new): Add password argument.  Start
9490         publishing and DAAP server.
9491         (message_set_from_rb_daap_structure): Change print to debug.
9492         (server_info_cb): Set auth method to publish.
9493         (logout_cb): Handle DAAP client logout.
9494         (update_cb): Remove C++ comments.
9495         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
9496         (server_cb): Add debug.
9497         (soup_auth_callback): Handle auth requests.
9498         (rb_daap_share_server_start): Split up functions for starting
9499         server and publishing.  Add auth handling to server.
9500         (rb_daap_share_server_stop): Split stop server and publish.
9501         No C++ comments.
9502         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
9503         Start and stop publishing.
9504         (rb_daap_share_restart): Restart server and publishing.
9505         (rb_daap_share_maybe_restart): Conditionally restart.
9507         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
9508         (rb_daap_collision_dialog_new_run): Don't use
9509         separators in dialogs.
9511         * daapsharing/rb-daap-connection.h: Add private
9512         data to class structure.
9514         * daapsharing/rb-daap-connection.c: Move
9515         some includes to top of file.  Make private
9516         data struct name consistent with others.
9517         (rb_daap_connection_class_init): Rename
9518         private.
9519         (rb_daap_connection_init): Get and store the pointer
9520         to the private data once instead of in every
9521         function.  Create a username value "Rhythmbox_VERSION".
9522         (connection_get_password): Don't get private.
9523         (build_message): Ditto.
9524         (http_response_handler): Don't init variables in
9525         declaration.  Add debug.  Spacing.
9526         (http_get, entry_set_string_prop, handle_server_info) 
9527         (handle_login, handle_update, handle_database_info) 
9528         (handle_song_listing, handle_playlists, handle_playlist_entries) 
9529         (rb_daap_connection_constructor, rb_daap_connection_logout) 
9530         (rb_daap_connection_state_done): Don't get private.
9531         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
9532         spacing.  Correctly base64 encode the Authentication token.
9533         Add username to auth token.
9534         (rb_daap_connection_get_playlists): Don't get private.
9535         (rb_daap_connection_dispose): Ditto.  Free username.
9536         (rb_daap_connection_set_property) 
9537         (rb_daap_connection_get_property): Don't get private.
9539         * daapsharing/Makefile.am: Conditionally
9540         compile MDNS backends.  Add marshall stuff.
9542         * daapsharing/.cvsignore: Update.
9544         * configure.ac: Add conditional to see which
9545         MDNS backend we should use.
9547         * daapsharing/rb-daap-mdns.[ch]: Removed files.
9549         * daapsharing/rb-daap-marshal.list:
9550         * daapsharing/rb-daap-mdns-browser-avahi.c:
9551         * daapsharing/rb-daap-mdns-browser-howl.c:
9552         * daapsharing/rb-daap-mdns-browser.h:
9553         * daapsharing/rb-daap-mdns-publisher-avahi.c:
9554         * daapsharing/rb-daap-mdns-publisher-howl.c:
9555         * daapsharing/rb-daap-mdns-publisher.h:
9556         Split rb-daap-mdns.c into two classes.  One for
9557         publishing and one for browsing.  Split out
9558         the avahi and howl backends into different files.
9560         Fixes #322966
9561         
9562 2006-02-04  James Livingston  <jrl@ids.org.au>
9564         patch by: Jan Schmidt <thaytan@mad.scientist.com>
9566         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
9567         crash if metadata reader gives us NULL for strings.
9569 2006-02-03  James Livingston  <jrl@ids.org.au>
9571         * shell/rb-shell-player.c: (open_location_thread),
9572         (rb_shell_player_open_location):
9573         retrieve iradio playlists files in a thread, so that with GStreamer
9574         0.10 the UI doesn't block while connecting to stations. The streamer
9575         connection is synchronous with 0.8, so that will still block (a bit).
9576         Fixed bug 128106.
9578         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
9579         because _open_entry does that automatically when it is ready to.
9581 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9583         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9584         (rb_podcast_source_post_status_cell_data_func):
9585         Leave the podcast status column blank for episodes that have not been
9586         downloaded.
9588 2006-02-03  James Livingston  <jrl@ids.org.au>
9590         Add support for source-specific toolbar items, and make the Burn
9591         Playlist item only available for playlists. Also add Update All
9592         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
9594         * data/ui/rhythmbox-ui.xml:
9595         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
9596         (impl_get_ui_actions): make the Burn CD toolbar item only for
9597         playlists
9599         * lib/rb-stock-icons.c: (rb_stock_icons_init):
9600         * lib/rb-stock-icons.h: load the Eject icon as stock.
9602         * shell/rb-removable-media-manager.c: use the eject icon for the eject
9603         action
9605         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
9606         (rb_shell_select_source):
9607         * sources/rb-source.c: (rb_source_class_init),
9608         (rb_source_disconnect), (default_get_ui_actions),
9609         (rb_source_get_ui_actions):
9610         * sources/rb-source.h: add support for source-specific toolbar items
9612         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
9613         Eject and Rip toolbar items
9615         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
9616         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
9617         item.
9619 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9621         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
9622         * shell/main.c: (main):
9623         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
9624         Replace all g_critical calls with g_warning, since none of them are
9625         the sort of thing the process should die over.  Fixes #329398.
9627 2006-02-03  James Livingston  <jrl@ids.org.au>
9629         * configure.ac: mention gst-plugins-base in the error message for not
9630         finding GStreamer 0.10, since not having that will cause it to fail.
9632 2006-02-03  James Livingston  <jrl@ids.org.au>
9634         * configure.ac: fix typo that means you get the wrong error message if
9635         you explicity request a particular playback engine, and it can't be
9636         found.
9638 2006-02-03  James Livingston  <jrl@ids.org.au>
9640         * data/glade/library-prefs.glade: allow the watched library location
9641         to be a non-local place.
9643 ============ Version 0.9.3
9646 2006-02-02  James Livingston  <jrl@ids.org.au>
9648         * NEWS: update NEWS
9649         * configure.ac: bump version to 0.9.3
9651         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
9652         <caillon@redhat.com>, fixed bug 329517. 
9654 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
9656         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
9658         * widgets/rb-song-info.c: (rb_song_info_constructor):
9659         Make year and disc number fields non-editable if tag editing
9660         is disabled.  Fixes #329463.
9662 2006-02-01  James Livingston  <jrl@ids.org.au>
9664         * rhythmdb/rhythmdb-property-model.c:
9665         (rhythmdb_property_model_row_inserted_cb),
9666         (rhythmdb_property_model_prop_changed_cb),
9667         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
9668         correctly. Fixes bug 327061.
9670         * rhythmdb/rhythmdb-query-model.c:
9671         (rhythmdb_query_model_entry_changed_cb): emit change notification of
9672         the HIDDEN property when an entry is removed for being hidden.
9674         * rhythmdb/rhythmdb-query-model.h:
9675         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9676         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
9677         models's "connected" property. Whatever it was needed for seems to
9678         have gone.
9680 2006-02-01  James Livingston  <jrl@ids.org.au>
9682         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
9684         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
9685         (rb_shell_player_playing_changed_cb): block the signal to prevent
9686         re-entrancy. Fixes bug 329329 and fixes the first click of the play
9687         button pausing.
9689 2006-02-01  James Livingston  <jrl@ids.org.au>
9691         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
9692         /should/ now work, if the neccessary plugins get ported.
9694 2006-01-30  James Livingston  <jrl@ids.org.au>
9696         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
9697         string properties to "Unknown" is the string is empty. Kind of fixes
9698         bug 327495.
9700         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
9701         gettext calls once, rather than once per time the function is used.
9702         This stops us making tens of thousands of gettext calls on startup,
9703         which reduces the cpu-time of startup by 10-20%
9705 2006-01-29  James Livingston  <jrl@ids.org.au>
9707         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
9708         (rhythmdb_add_uri):
9709         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
9710         for files containing known video streams.
9713 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9715         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
9716         required.
9718 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9720         * INSTALL.quick: More random updates
9722         * rhythmdb/rhythmdb-query-model.c:
9723         (rhythmdb_query_model_class_init),
9724         (rhythmdb_query_model_set_property),
9725         (rhythmdb_query_model_get_property),
9726         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
9727         Remove user sort data handling, take a property ID and a reverse
9728         flag instead.
9729         (rhythmdb_query_model_insert_into_main_list),
9730         (rhythmdb_query_model_insert_into_limited_list),
9731         (rhythmdb_query_model_do_reorder),
9732         (_reverse_sorting_func):
9733         Handle reverse sorting by calling _reverse_sorting_func, which
9734         calls the real sort function and reverses the result.
9735         (rhythmdb_query_model_set_sort_order):
9736         Allow this to be called to set the initial sort order for limited
9737         queries, and handle reverse sorting when reordering.
9738         (rhythmdb_query_model_location_sort_func),
9739         (rhythmdb_query_model_album_sort_func),
9740         (rhythmdb_query_model_artist_sort_func),
9741         (rhythmdb_query_model_genre_sort_func),
9742         (rhythmdb_query_model_track_sort_func),
9743         (rhythmdb_query_model_double_ceiling_sort_func),
9744         (rhythmdb_query_model_ulong_sort_func),
9745         (rhythmdb_query_model_date_sort_func),
9746         (rhythmdb_query_model_string_sort_func):
9747         Sort functions moved from rb-entry-view.c.
9748         * rhythmdb/rhythmdb-query-model.h:
9749         Add the sort functions, and update the changed functions.
9750         
9751         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
9752         Just call _resort_model when the query model is set, since it
9753         does all the same things.
9754         (rb_entry_view_append_column):
9755         Rework bits so the rating column doesn't have to be so much of a
9756         special case.
9757         (rb_entry_view_append_column_custom):
9758         Take a property ID to sort on, rather than arbitrary custom data.
9759         (rb_entry_view_resort_model):
9760         Query model does all the reverse sort handling now.
9761         * widgets/rb-entry-view.h: Update _append_column_custom.
9763         * sources/rb-play-queue-source.c:
9764         (rb_play_queue_source_constructor):
9765         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9766         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9767         (rb_podcast_source_post_date_cell_sort_func),
9768         (rb_podcast_source_post_status_cell_sort_func),
9769         (rb_podcast_source_post_feed_cell_sort_func):
9770         Updates required by all the other changes.
9772         * rhythmdb/rhythmdb-property-model.c:
9773         (rhythmdb_property_model_drag_data_get):
9774         Sort the query results on the selected property,
9775         so they arrive in the expected order.  All the other changes were made
9776         to make this possible.  Fixes bug #327494.
9778 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9779         
9780         * shell/rb-shell-clipboard.c:
9781         Use GTK_STOCK_REMOVE icon for the remove action in
9782         the play queue too.
9784 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9786         * sources/rb-play-queue-source.c:
9787         (rb_play_queue_source_constructor),
9788         (rb_play_queue_source_update_count):
9789         Don't make the 'queued songs' column clickable,
9790         and add the queued song count to the column title.
9792 2006-01-29  James Livingston  <jrl@ids.org.au>
9794         * configure.ac: remove "experimental" marking from DAAP, and enable by
9795         default if the dependencies are found.
9797 2006-01-29  James Livingston  <jrl@ids.org.au>
9799         * NEWS: update NEWS
9801 2006-01-29  James Livingston  <jrl@ids.org.au>
9803         patch by: William Jon McCann  <mccann@jhu.edu>
9805         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9806         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
9807         property used for the feed list. Fixes problem with feeds with no
9808         episodes not showing up.
9810 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9811         
9812         * shell/rb-play-order-random-by-age-and-rating.c:
9813         (rb_random_by_age_and_rating_get_entry_weight):
9814         Fix compile errors, bug #328978.
9816 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
9818         * INSTALL.quick, README: Random updates
9819         * README.lirc: Add notes on controlling Rhythmbox with LIRC
9821 2006-01-28  James Livingston  <jrl@ids.org.au>
9823         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
9824         default rating back to 0 (from 2.5, which was needed for autorating).
9826         * shell/rb-play-order-random-by-age-and-rating.c:
9827         (rb_random_by_age_and_rating_get_entry_weight):
9828         * shell/rb-play-order-random-by-rating.c:
9829         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
9830         2.5 for the purposes of weighting entries.
9832 2006-01-28  James Livingston  <jrl@ids.org.au>
9834         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
9835         translator comments, to make it clearer what the "friendly time"
9836         formatting strings mean.
9838 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
9840         * daapsharing/rb-daap-connection.c: (http_response_handler):
9841         Fix the sense of the overflow check so it'll accept valid input.
9843 2006-01-27  James Livingston  <jrl@ids.org.au>
9845         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
9847         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
9848         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
9850 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
9852         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
9853         
9854         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
9855         Don't include the artist field in the window title if it's blank.
9856         Fixes #325973.
9858 2006-01-26  William Jon McCann  <mccann@jhu.edu>
9860         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
9861         Use stock delete icon for move to trash and stock remove
9862         for remove menu item.
9864 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
9866         * shell/rb-shell.c: (rb_shell_constructor),
9867         (idle_handle_load_complete):  Don't start the playlist save
9868         timeout until we've loaded the playlists, otherwise we'll
9869         write an empty playlist file if startup takes too long.
9871 2006-01-25  William Jon McCann  <mccann@jhu.edu>
9873         * shell/rb-shell.c: Make view toolbar toggle use
9874         shift+ctrl+t.  Fixes #327585.
9876 2006-01-25  James Livingston  <jrl@ids.org.au>
9878         patch by: Christope Fergeau  <teuf@gnome.org>
9880         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
9881         (http_response_handler): fix a potential buffer overflow issue.
9883 2006-01-25  James Livingston  <jrl@ids.org.au>
9885         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
9886         Year column wide enough to display "Unknown"
9888 2006-01-25  James Livingston  <jrl@ids.org.au>
9890         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9891         (rb_podcast_source_post_status_cell_data_func): make the episode
9892         status wording better. Part of bug 321607.
9894 2006-01-25  James Livingston  <jrl@ids.org.au>
9896         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
9897         others with a separator.
9899         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
9900         stock Delete icon.
9902 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
9904         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
9906 2006-01-23  James Livingston  <jrl@ids.org.au>
9908         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
9909         0.3.2. Fixed bug 328158.
9911 2006-01-23  James Livingston  <jrl@ids.org.au>
9913         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
9914         (gulong_gst_date_transform), (rb_metadata_class_init):
9915         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
9917 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
9919         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
9920         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
9921         (record_entry_change): Protect added_entries and changed_entries with
9922         a mutex, so it doesn't crash on startup on SMT/SMP machines.
9924 2006-01-23  James Livingston  <jrl@ids.org.au>
9926         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
9927         the browser for audio CDs.
9929 2006-01-22  James Livingston  <jrl@ids.org.au>
9931         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
9932         NEVER_FAIL as it causes the daemon-not-running error to never be
9933         reported, resulting in bug 319438 re-occurring.
9935 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
9937         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
9938         Just call the podcast manager's update method.  Unbreaks the 'update
9939         all feeds' command.
9941 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
9943         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
9945 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
9947         * configure.ac: Don't disable DAAP with gstreamer 0.10
9949         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
9950         (rb_daap_src_class_init), (rb_daap_src_init),
9951         (rb_daap_src_finalize), (rb_daap_src_set_property),
9952         (rb_daap_src_get_property), (rb_daap_src_write),
9953         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
9954         (_split_uri), (rb_daap_src_open):
9955         * daapsharing/rb-daap-src.h:
9956         Mostly fix seeking, handle chunked transfer encoding, and port to
9957         gstreamer 0.10.
9958         
9959         * player/rb-player-gst.c:
9960         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
9961         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
9963         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
9964         being fixed.
9966 2006-01-21  James Livingston  <jrl@ids.org.au>
9968         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
9969         for Year metadata in DAAP sources. Fixes bug 327700.
9971         * daapsharing/rb-daap-connection.c: (handle_song_listing):
9973 2006-01-20  William Jon McCann  <mccann@jhu.edu>
9975         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
9976         enum values instead of magic numbers.
9978         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
9979         Add number of songs that match each property title into
9980         the cell.  Also show the number of properties that match
9981         in the All entry.
9982         (rb_property_view_constructor): Use enum values instead of
9983         magic numbers.
9985         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
9986         Query podcast posts instead of feeds for browser.  Use
9987         post SUBTITLE which is the location for the property view.
9988         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
9989         (construct_query_from_selection) 
9990         (rb_podcast_source_cmd_delete_feed) 
9991         (rb_podcast_source_cmd_properties_feed) 
9992         (rb_podcast_source_cmd_update_feed): Use variable to make
9993         it clear what the selection data represents.
9994         (rb_podcast_source_feed_title_cell_data_func): Add number
9995         of posts that belong to each feed in the browser.
9997         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
9998         (rhythmdb_property_model_delete_prop): Decrement the refcount
9999         for the All entry.
10000         (rhythmdb_property_model_get_column_type): Use column enum
10001         values instead of magic numbers.  Add NUMBER column.
10002         (rhythmdb_property_model_get_value): Use enum.
10003         Add NUMBER column that represents the refcount for
10004         the title of that property.
10005         (rhythmdb_property_model_perform_sync): Don't fake up
10006         a title for All here.
10008         Fixes #327372.
10009         
10010 2006-01-21  James Livingston  <jrl@ids.org.au>
10012         Make Rhythmbox start faster by not blocking the UI while database
10013         initialisation and loading occurs. Closes bug 323348.
10015         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
10016         start 10 seconds later instead of immediately.
10017         
10018         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
10019         safe to call from any thread.
10021         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
10022         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
10023         so the UI doesn't block.
10025 2006-01-18  James Livingston  <jrl@ids.org.au>
10027         * sources/rb-static-playlist-source.c:
10028         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
10029         cause crashes. Oops. fixes bug 327477.
10031 2006-01-17  William Jon McCann  <mccann@jhu.edu>
10033         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
10034         Set GST element state to NULL before unreffing.
10035         Fixes #327422.
10037 2006-01-18  James Livingston  <jrl@ids.org.au>
10039         * sources/rb-static-playlist-source.c:
10040         (rb_static_playlist_source_do_query): don't filter on the SONG entry
10041         type, since the playlists can contain non-song entries. Fixes bug
10042         327448.
10044         * sources/rb-play-queue-source.c:
10045         (rb_play_queue_source_class_init): disable the search box for the
10046         queue.
10048 2006-01-18  James Livingston  <jrl@ids.org.au>
10050         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
10051         dragging of podcast episodes. Fixed bug 327450.
10053 2006-01-18  James Livingston  <jrl@ids.org.au>
10055         * rhythmdb/rhythmdb-query-model.c:
10056         (rhythmdb_query_model_drag_data_received): fix possible assertion when
10057         dragging to an emoty playlist.
10059 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
10061         * sources/rb-playlist-source-recorder.c:
10062         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
10064 2006-01-17  James Livingston  <jrl@ids.org.au>
10066         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10068         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
10069         different number of tracks than exist on the cd, since that happens
10070         with audio+data hybrid CDs. Part of bug 325046.
10072 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
10074         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10075         Remove useless call to gtk_tree_view_column_set_clickable().
10077         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
10078         Don't store sort data for columns if the sort function is NULL,
10079         so only sortable columns will be in the column sort data map.
10080         (rb_entry_view_set_columns_clickable): Only make columns we can sort
10081         on clickable.
10082         (rb_entry_view_constructor):  The 'playing icon' column is never
10083         clickable, so don't connect a signal handler for it.
10085         Fixes bug 326811.
10087 2006-01-17  James Livingston  <jrl@ids.org.au>
10089         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
10090         are 0.8 only. Fix element detection.
10092         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
10093         saving the new metadata failed
10095 2006-01-17  James Livingston  <jrl@ids.org.au>
10097         * shell/rb-shell-player.c: (do_next_idle),
10098         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
10099         (eos_cb): release audio device when a playlist finishes. Fixes bug
10100         323679.
10102 2006-01-17  James Livingston  <jrl@ids.org.au>
10104         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
10105         canonicalise the URIs when things are added via library watching.
10107 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10109         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10110         Off by one error in default speed index.
10112 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10114         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
10115         (update_speed_combobox, update_speed_combobox):
10116         Get a list of the actually supported write speeds from
10117         n-c-b >= 2.13.90.  Otherwise use fallback list.
10119 2006-01-17  James Livingston  <jrl@ids.org.au>
10121         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
10122         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
10123         don't get stuck on recursive symlinks. Fixed bug 125452.
10125 2006-01-17  James Livingston  <jrl@ids.org.au>
10127         Add support for mass-storage audio players. Players are detected via
10128         either the HAL "audio_player" capability, or a ".is_audio_player" file
10129         in the root of the volume. Closes bug 325602.
10131         * configure.ac: separate using HAL from ipod support.
10133         * lib/rb-file-helpers.c: (rb_uri_is_local):
10134         * lib/rb-file-helpers.h: add function to determine whether a URI is
10135         local.
10137         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10138         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
10139         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
10140         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
10141         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
10142         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
10143         directories can be scanned for files to add as  non-SONG entries.
10145         * shell/rb-removable-media-manager.c:
10146         (rb_removable_media_manager_mount_volume): add checking for
10147         mass-storage players.
10149         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
10150         * sources/rb-ipod-source.c: (rb_ipod_source_new),
10151         (hal_udi_is_ipod):
10152         * sources/rb-removable-media-source.c:
10153         (rb_removable_media_source_class_init),
10154         (rb_removable_media_source_constructor): move some things up to the
10155         RBRemovableMediaSource, rather than making subclasses do it.
10157         * sources/Makefile.am:
10158         * sources/rb-generic-player-source.c:
10159         * sources/rb-generic-player-source.h: add mass-storage player source.
10161 2006-01-16  James Livingston  <jrl@ids.org.au>
10163         patch by: William Jon McCann  <mccann@jhu.edu>
10165         * rhythmdb/rhythmdb-query-model.c:
10166         (rhythmdb_query_model_base_row_deleted): fix build issue from last
10167         commit.
10169 2006-01-16  James Livingston  <jrl@ids.org.au>
10171         Patch to add support for "chained queries" and putting hidden tracks
10172         in query models. Use chained queries to add search box support to
10173         normal playlists, and to make hidden entries not get lost. Fixes bug
10174         319278.
10176         * rhythmdb/rhythmdb-query-model.h:
10177         * rhythmdb/rhythmdb-query-model.c:
10178         (rhythmdb_query_model_class_init),
10179         (rhythmdb_query_model_set_property),
10180         (rhythmdb_query_model_get_property):
10181         (rhythmdb_query_model_finalize): add "show-hidden" and
10182         "base-model" properties.
10184         (rhythmdb_query_model_set_connected),
10185         (rhythmdb_query_model_has_pending_changes),     
10186         (rhythmdb_query_model_entry_added_cb),
10187         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
10188         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
10189         (rhythmdb_query_model_remove_entry),
10190         (rhythmdb_query_model_drag_data_received),
10191         (rhythmdb_query_model_base_row_inserted),
10192         (rhythmdb_query_model_base_row_deleted),
10193         (rhythmdb_query_model_base_non_entry_dropped),
10194         (rhythmdb_query_model_base_complete),
10195         (rhythmdb_query_model_base_entry_prop_changed),
10196         (rhythmdb_query_model_base_rows_reordered),
10197         (rhythmdb_query_model_row_drop_possible): handle base-model by
10198         chaining events and operations where necessary. Make hidden entries
10199         not get added only if "show-hidden" is false.
10201         (rhythmdb_query_model_child_index_to_base_index),
10202         (rhythmdb_query_model_base_index_to_child_index),
10203         (rhythmdb_query_model_get_entry_index): utility functions for handling
10204         base-model entries.
10206         (rhythmdb_query_model_reapply_query): apply the current query, and
10207         remove entries that don't match it.
10209         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
10210         empty queries.
10212         * sources/rb-source.c: (rb_source_set_property): move the unref later
10213         to fix problem if it is the last reference.
10215         * sources/rb-static-playlist-source.c:
10216         (rb_static_playlist_source_class_init),
10217         (rb_static_playlist_source_init),
10218         (rb_static_playlist_source_finalize),
10219         (rb_static_playlist_source_constructor), (impl_reset_filters),
10220         (impl_search), (rb_static_playlist_source_do_query),
10221         (impl_save_contents_to_xml),
10222         (rb_static_playlist_source_add_location_internal): use a chained query
10223         model to filter out hidden entries and implement the search box.
10225 2006-01-15  James Livingston  <jrl@ids.org.au>
10227         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
10228         the default playlist loading, which I broke earlier.
10230 2006-01-15  James Livingston  <jrl@ids.org.au>
10232         patch by: William Jon McCann  <mccann@jhu.edu>
10234         * sources/rb-playlist-source.c: (playlist_iter_func): use
10235         totem-plparser's new API version macros to check for API changes.
10236         Handle the recent API change.
10238 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10240         * sources/rb-library-source.c: (impl_get_config_widget):
10241         Ref the preferences object to match the unref in the
10242         finalizer.  Fixes some portion of #323505.
10244 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10246         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
10247         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
10248         Fix valgrind warnings about accessing uninitialised values.
10250 2006-01-14  William Jon McCann  <mccann@jhu.edu>
10252         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
10254 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10256         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
10257         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
10258         Stops the 'now playing' icon from being displayed after the play
10259         order finishes.
10261 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10263         * podcast/rb-podcast-manager.c:
10264         (rb_podcast_manager_db_entry_deleted_cb):
10265         Don't try to delete files we never downloaded, and cancel downloads
10266         for deleted episodes.  Fixes bug #326862.
10267         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
10268         Don't complain about NULL data items in the selection list.
10270 2006-01-14  James Livingston  <jrl@ids.org.au>
10272         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
10273         Make the name ofthe queue non editable. Fixes bug 326918.
10275 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10277         * sources/rb-playlist-source-recorder.c (burn_cd) 
10278         (ask_rewrite_disc): Don't use our locally copied functions
10279         if we have at least 2.13.
10281 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10283         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
10284         Correct the argument type for the process_error signal.
10285         May fix bug #323154.
10287 2006-01-13  James Livingston  <jrl@ids.org.au>
10289         save the queue to disk when exiting, and reload on startup. Fixed bug
10290         326677 .
10292         * shell/rb-playlist-manager.c:
10293         (rb_playlist_manager_load_playlists),
10294         (rb_playlist_manager_save_playlists_async): don't disable saving of
10295         the queue
10297         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
10298         add the queue source as a gobject property.
10300         * sources/rb-play-queue-source.c:
10301         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
10302         code to save the queue to xml
10304         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10305         load the queue from xml.
10306         * sources/rb-playlist-xml.h:
10308         * sources/rb-static-playlist-source.c:
10309         (rb_static_playlist_source_load_from_xml),
10310         (rb_static_playlist_source_new_from_xml):
10311         * sources/rb-static-playlist-source.h: split the playlist xml loading
10312         from the static playlist creation function, so the queue can use it.
10314 2006-01-13  James Livingston  <jrl@ids.org.au>
10316         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
10317         assertion that should be there. Fixes bug 325923.
10318         
10319         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
10320         return NULL if the entry already exists (e.g. as another type).
10321         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10322         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
10323         (rb_podcast_manager_insert_feed):
10324         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
10325         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
10326         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
10327         for the above function returning NULL.
10329 2006-01-12  James Livingston  <jrl@ids.org.au>
10331         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
10332         is enabled. Fixes bug 326673.
10333         
10334         * doc/reference/tmpl/eggtrayicon.sgml:
10335         * doc/reference/tmpl/rb-daap-src.sgml:
10336         * doc/reference/tmpl/rb-source.sgml:
10337         * doc/reference/tmpl/rb-statusbar.sgml:
10338         * doc/reference/tmpl/rb-tree-model-sort.sgml:
10339         * doc/reference/tmpl/rhythmbox-unused.sgml:
10340         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
10342 2006-01-11  James Livingston  <jrl@ids.org.au>
10344         * widgets/rb-song-info.c: (rb_song_info_constructor),
10345         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
10346         (rb_song_info_populate_dialog): fill in the fields if all tracks have
10347         the same value for properties. From bug 326054.
10349 2006-01-11  James Livingston  <jrl@ids.org.au>
10351         * sources/rb-source.h:
10352         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
10353         (rb_shell_player_set_playing_source_internal), (eos_cb):
10354         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
10355         every entry.
10357         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
10358         source use this. Closes bug 322077.
10360 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10362         * widgets/eggtrayicon.c (egg_tray_icon_notify):
10363         In order for set_icon_data_from_pixbuf() to be
10364         effective, one must not set an icon in _new().
10366 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10368         * widgets/eggtrayicon.c (egg_tray_icon_init) 
10369         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
10370         (egg_tray_icon_notify): Add support for libnotify 0.3.
10371         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
10372         * configure.ac: Determine the version of libnotify.
10373         Fixes #326333.
10375 2006-01-08  James Livingston  <jrl@ids.org.au>
10377         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
10378         trying to share a track with unknown length.
10380 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10382         * shell/rb-shell-player.c: (rb_shell_player_init):
10383         Sync volume on startup so it doesn't default to 0.
10385 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10387         * shell/rb-shell-player.c: (rb_shell_player_class_init),
10388         (rb_shell_player_get_property), (rb_shell_player_open_location),
10389         (info_available_cb):  Add the iradio streamed song title as a
10390         property, and emit a signal when it changes.
10392         * shell/rb-shell.c: (rb_shell_constructor),
10393         (rb_shell_player_elapsed_changed_cb),
10394         (rb_shell_player_stream_song_changed_cb):
10395         Issue a notification when the iradio song title changes.
10396         Fixes #326166.
10398 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10400         * shell/rb-shell-player.c: (rb_shell_player_init),
10401         (rb_shell_player_finalize), (rb_shell_player_set_property),
10402         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
10403         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
10404         (rb_shell_player_set_volume_relative),
10405         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
10406         (rb_shell_player_get_mute):
10407         * shell/rb-shell-player.h:
10408         * shell/rb-shell-player.xml:
10409         Store volume as a property on RBShellPlayer, rather than in gconf.
10410         Add some methods to control volume via dbus.
10412         * shell/rb-shell.c: (rb_shell_constructor),
10413         (rb_shell_volume_widget_changed_cb),
10414         (rb_shell_player_volume_changed_cb):
10415         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
10416         Update volume using player properties rather than gconf, and sync the
10417         volume with the volume control button when something else changes it.
10418         Fixes #323840.
10420 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10422         * shell/rb-tray-icon.c (tray_popup_position_menu):
10423         Make tray menu align with edge of panel.
10425         patch from Jaap A. Haitsma <jaap@haitsma.org>
10426         Fixes #319913
10428 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10429         * shell/rb-shell.c (sourcelist_drag_received_cb): 
10430         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
10431         (rb_playlist_manager_new_playlist_from_selection_data):
10432         Make a reasonable default name for playlists created from
10433         dropped data.  Fixes #326116.
10435 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10437         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10438         Use new gconf key.
10439         (burn_cd): Always eject CD after burning.  Too many drives
10440         get confused if we don't.  Save the speed used if the burn
10441         was completed successfully.
10443         * data/rhythmbox.schemas: Use our own speed instead of from
10444         n-c-b. The situation is that the default_speed for n-c-b is most
10445         likely the maximum write speed.  This is fine for n-c-b because it
10446         has burn-proof turned on.  We can't turn it on for audio CDs
10447         because the results are poor in quality.  So we'll just pick a
10448         default that should work for everyone (4).
10450 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10451         
10452         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
10453         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
10455 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10457         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
10458         in my previous commit.  Fixes #326037.
10460 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
10462         patch by: Jonathan Matthew
10464         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
10465         error on Fedora Rawhide.
10467 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10469         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
10470         Assume HTTP URLs ending with .xml or .rss are podcasts.
10471         (rb_shell_add_uri): Handle adding podcast feeds.
10473         * sources/rb-podcast-source.c: (rb_podcast_source_new):
10474         Register as the source for podcast feeds.
10476 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10478         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
10479         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
10480         (rb_shell_preferences_append_view_page):
10481         * shell/rb-shell-preferences.h:
10482         Fix typo in function name.  Fixes #325992.
10484 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10486         * shell/rb-audioscrobbler.c:
10487         Add '+' to the list of characters to URI-encode, so it doesn't get
10488         interpreted as a space.
10490 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10492         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
10493         (rb_daap_connection_do_something):  Don't crash if the DAAP server
10494         goes away while we're still trying to log in.
10496 2006-01-06  James Livingston  <jrl@ids.org.au>
10498         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
10500 2006-01-06  James Livingston  <jrl@ids.org.au>
10502         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
10503         support for Year to automatic playlists. Closes bug 321341.
10505         * rhythmdb/rhythmdb-query-model.c:
10506         (rhythmdb_query_model_set_property):
10507         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
10508         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
10509         (rhythmdb_query_free), (rhythmdb_query_serialize),
10510         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
10511         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
10512         * rhythmdb/rhythmdb.h: Support special
10513         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
10514         year in date.
10516         * widgets/rb-query-creator-properties.c:
10517         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
10518         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
10520 2006-01-06  James Livingston  <jrl@ids.org.au>
10522         * configure.ac: make the playback backend selection work correctly
10524         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
10525         (rb_daap_src_class_init), (rb_daap_src_dispose),
10526         (rb_daap_src_change_state), (rb_daap_src_initialize):
10527         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
10528         doesn't work for this class. Fixes bug 325934
10530 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10532         * configure.ac: Fix check for libnotify.
10534 2006-01-05  William Jon McCann  <mccann@jhu.edu>
10536         * sources/rb-playlist-source.c (xml_get_and_trim_names):
10537         Get name element for current lang and remove all name nodes
10538         from the XML tree.
10539         (get_playlist_name_from_xml): Try to get name element or
10540         fall back to name attribute.
10541         (rb_playlist_source_new_from_xml): Get name before turning over
10542         to sub-types for parsing so that we can remove name elements
10543         from the tree if necessary.
10545         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
10546         Load default playlists file if per user playlists are not found.
10548         * data/playlists.xml.in: 
10549         * data/Makefile.am: 
10550         * data/.cvsignore: Add default set of playlists.
10551         Fixes #323004
10553 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10555         * shell/main.c: (main): Don't use the dbus interface to show the
10556         window if we're also going to use the bonobo interface.
10558 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10560         * shell/rb-history.c: (rb_history_set_playing):
10561         Allow setting the playing song to NULL.
10562         (rb_history_append), (rb_history_delete_link):
10563         Don't randomly change position when entries are added and removed,
10564         it confuses play orders.
10565         
10566         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
10567         Random orders always have a next entry if the model is not empty.
10568         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
10569         Go back to the start of the history if we're past its end.
10571         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
10572         (rb_shuffle_play_order_go_next): Go back to the start of the history
10573         if we're past its end.
10574         (rb_shuffle_sync_history_with_query_model): Go back to the start of
10575         the history if the current entry is removed.
10577         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
10578         (rb_play_order_entry_deleted_cb): Only update have next/previous for
10579         the play order when the query has finished. This wasted about 10% CPU
10580         while the query was running.
10582         Fixes #324641: assertion failures when the query model was changed
10583         such that the playing song was no longer present.
10585 2006-01-05  James Livingston  <jrl@ids.org.au>
10587         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
10588         (rb_daap_src_dispose), (rb_daap_src_change_state):
10589         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
10590         (rhythmdb_gda_finalize):
10591         * widgets/rb-cell-renderer-pixbuf.c:
10592         * widgets/rb-cell-renderer-rating.c:
10593         (rb_cell_renderer_rating_class_init),
10594         (rb_cell_renderer_rating_finalize):
10595         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
10596         * widgets/rb-load-failure-dialog.c:
10597         (rb_load_failure_dialog_class_init),
10598         (rb_load_failure_dialog_finalize):
10599         * widgets/rb-rating.c: (rb_rating_class_init),
10600         (rb_rating_finalize):
10601         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
10602         (rb_search_entry_finalize): use G_DEFINE_TYPE
10604         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
10606 2006-01-05  James Livingston  <jrl@ids.org.au>
10608         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
10610         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
10611         the tarball.
10613         * shell/rb-history.c: (rb_history_class_init),
10614         (rb_history_finalize):
10615         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
10616         (rb_playlist_manager_finalize):
10617         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
10618         (rb_remote_init): use G_DEFINE_TYPE.
10620 2006-01-05  James Livingston  <jrl@ids.org.au>
10622         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
10623         changes
10625 2006-01-04  William Jon McCann  <mccann@jhu.edu>
10627         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
10628         Disable burn action when source is not a playlist.
10629         Fixes #323578.
10631 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
10633         Optionally use libnotify to display song change and other
10634         notifications, and provide an option to disable notifications.
10635         Fixes #320355 and innumerable informal complaints.
10637         * widgets/eggtrayicon.c: (egg_tray_icon_init),
10638         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
10639         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
10640         (egg_tray_icon_notify):
10641         * widgets/eggtrayicon.h:
10642         * configure.ac:
10643         * shell/Makefile.am:
10644         Optionally use libnotify instead of eggnotificationbubble.
10646         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
10647         (rb_tray_icon_constructor), 
10648         (rb_tray_icon_show_notifications_changed_cb),
10649         (rb_tray_icon_hide_notify_cb)
10650         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
10651         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
10652         EggNotificationBubble pointer to eggtrayicon.
10654         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
10655         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
10656         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
10658 2006-01-04  William Jon McCann  <mccann@jhu.edu>
10660         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
10661         Request a minimum size for the progress bar so that
10662         the window doesn't shrink too small.
10664 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10666         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
10667         (add_db_entry), (db_entry_deleted_cb):
10668         Don't track the number of songs currently present, track the next ID
10669         to assign.  Fixes potential ID conflict problems.
10670         
10671         (db_entry_changed_cb), (rb_daap_share_start_publish),
10672         (rb_daap_share_stop_publish):
10673         Watch for db entry changes, and when songs become non-hidden after
10674         a successful stat, add them to the mapping tables.   Fixes #325178,
10675         making the DAAP server usable again.
10677 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10678         
10679         * shell/rb-statusbar.c: (rb_statusbar_class_init),
10680         (rb_statusbar_construct), (rb_statusbar_init),
10681         (rb_statusbar_finalize), (rb_statusbar_set_property),
10682         (rb_statusbar_get_property), (rb_statusbar_new),
10683         (rb_statusbar_sync_with_source):
10684         * shell/rb-statusbar.h:
10685         Remove visibility management code, stop watching for play order
10686         changes (status bar doesn't show play order any more), remove unused
10687         'player' property, and some other minor cleanup.
10688         
10689         * shell/rb-shell.c: (rb_shell_constructor),
10690         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
10691         (rb_shell_sync_statusbar_visibility):
10692         Manage status bar visibility here rather than in the status bar
10693         itself, so we can take small mode into account.  Fixes #323589.
10695 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10697         * widgets/eggnotificationbubble.c: (draw_bubble):
10698         Move the bubble off the visible screen while setting up bevels.  
10699         Fixes #316810.
10701 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10703         * shell/rb-shell-player.c: (rb_shell_player_init),
10704         (rb_shell_player_finalize): 
10705         Remove unused structure members.
10706         
10707         (do_next_idle), (rb_shell_player_error):
10708         Only queue one call to do_next_idle, so we don't skip tracks if we get
10709         two errors for the same song.  Fixes #325216.
10711 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10713         * data/glade/podcast-feed-properties.glade,
10714          podcast/rb-feed-podcast-properties-dialog.c:
10715         (rb_feed_podcast_properties_dialog_init),
10716         (rb_feed_podcast_properties_dialog_update):
10717         Add 'last episode' field to the podcast feed properties dialog.
10719         * podcast/rb-feed-podcast-properties-dialog.c:
10720         (rb_feed_podcast_properties_dialog_update_last_update),
10721         (rb_feed_podcast_properties_dialog_update_last_episode),
10722          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10723         Use last-seen property for the time at which we last updated the feed,
10724         and post-time for the time the last episode was published.
10726         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
10727         Handle upgrades from 0.9.2; if no post-time was found for a podcast
10728         feed, use last-seen (which in 0.9.2 was the last post time).
10730         Fixes #323894.
10732 2006-01-01  James Livingston  <jrl@ids.org.au>
10734         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
10736         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
10737         year from the ipod database.
10739 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10741         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
10742         Only set the pipeline back to NULL state for really uninteresting
10743         files.  This was causing deadlocks with various video files.
10744         Fixes #324912.
10746 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10748         * data/glade/song-info-multiple.glade:
10749         Add disc number label and field.
10750         * widgets/rb-song-info.c: (rb_song_info_construct_single),
10751         (rb_song_info_constructor): 
10752         Handle widgets for disc number.
10753         (rb_song_info_sync_entries_multiple):
10754         Set disc number property on selected entries.
10755         Fixes #324777.
10757 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10759         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
10760         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
10761         Activate the default widget when enter is pressed in these dialogs.
10762         Fixes #322887.
10764 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10766         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
10767         Use rb_shell_player_get_playing_entry, so we get the right entry
10768         when playing from the queue.  Fixes #325379.
10770 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10772         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10773         Include podcast posts with no publication date.  Typically
10774         seen in static collections rather than feeds.
10776 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10778         * shell/main.c: (main): Don't attempt to handle
10779         bonobo-only arguments if we couldn't get a bonobo
10780         client proxy.
10782 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10784         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
10785         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
10786         abort if daap sharing is disabled and then re-enabled.
10788 2005-12-29  William Jon McCann  <mccann@jhu.edu>
10790         * podcast/rb-podcast-parse.c (rb_insert_item):
10791         Add debugging.
10792         (rb_podcast_parser_start_element): Support itunes:image.
10793         Add debugging.  Don't abuse the break statement.  Warn
10794         if state is unknown.
10795         (rb_podcast_parser_end_element): Add debugging.  Warn
10796         if state is unknown.
10797         (rb_podcast_parser_characters): Warn if state is unknown.
10799         Fixes parsing of feeds that use the itunes:image element.
10800         Fixes #324632
10802 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10804         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
10805         (stations_view_drag_data_received_cb):
10806         Remove calls to rhythmdb_entry_lookup_by_location, as
10807         rb_iradio_source_add_station does that anyway.
10808         
10809         (rb_iradio_source_add_from_playlist):
10810         If the URL doesn't point to a playlist, add it as the stream
10811         URL instead.
10813 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10815         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
10816         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
10817         so we don't get an assertion failure.
10818         Fixes #325025.
10820 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10822         * shell/main.c: (load_uri_args): don't compile this in if
10823         neither bonobo nor dbus are enabled.  Fixes #324890.
10825 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10827         * sources/rb-audiocd-source.c:
10828         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
10829         so it closes the device.
10831 2005-12-20  James Livingston  <jrl@ids.org.au>
10833         * metadata/rb-metadata-gst.c: make the state changes time-out again,
10834         so that it doesn't spend forever getting stuck on the one file. Don't
10835         report errors for failing to change state on known non-audio files.
10837         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
10838         audio sink creation if we can't create the gconfaudiosink. This lets
10839         it work with only gst-plugins-base on 0.10.
10841 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
10843         * rhythmdb/rhythmdb-query-model.c:
10844         (rhythmdb_query_model_set_sort_order):
10845         Fix a tiny memory leak in the previous commit.
10847 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
10849         * rhythmdb/rhythmdb-query-model.c:
10850         (rhythmdb_query_model_set_sort_order):
10851         Don't try to emit reorders for empty query models, since it doesn't
10852         achieve anything and it results in a few warnings.
10854 2005-12-19  William Jon McCann  <mccann@jhu.edu>
10856         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
10857         Make burn dialog non-resizable so that the expander can shrink.
10858         Fixes #308951.
10860 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
10862         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
10863         add entries without a location, rather than those with one.
10865 2005-12-19  James Livingston  <jrl@ids.org.au>
10867         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
10868         the error isn't set.
10870 2005-12-19  James Livingston  <jrl@ids.org.au>
10871         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
10872         add entries without a location. Fixes bug 324290.
10874         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
10875         without a location.
10877         * shell/main.c: (main): don't crash if dbus initialisation fails
10878         without setting an error
10880 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
10882         * sources/rb-library-source.c: Remove unused structure members
10883         (rb_library_source_do_query): Actually use the cached 'all' query.
10884         Fixes #324025.
10885         
10886 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
10888         * sources/rb-audiocd-source.c 
10889         (rb_audiocd_get_cd_info): tab
10890         (rb_audiocd_scan_songs): Return boolean success/failure,
10891         fix error messages a bit.
10892         (metadata_cb): Don't crash if we have no tracks
10893         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
10894         the CD.
10895         Fixes #324222.
10897 2005-12-15  William Jon McCann  <mccann@jhu.edu>
10899         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
10900         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
10901         key.
10903         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10904         Fixes #324157
10906 2005-12-14  William Jon McCann  <mccann@jhu.edu>
10908         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
10909         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
10910         (fullscreen_changed_cb): 
10911         * lib/rb-preferences.h: 
10912         * data/ui/rhythmbox-ui.xml: 
10913         * data/rhythmbox.schemas:
10914         Add fullscreen mode.
10916         Fixes #324075.
10918 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
10920         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
10921         configure.  It was not working with RPM.
10922         * data/Makefile.am: Switched dbus directory location to use
10923         datadir instead of variable that was not working.
10925 2005-12-13  James Livingston  <jrl@ids.org.au>
10927         patch by: Alex Lancaster <alexl@users.sourceforge.net>
10929         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
10930         the podcast browser work again. Closes bug 323856.
10932 2005-12-12  William Jon McCann  <mccann@jhu.edu>
10934         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
10935         Remove C99ism.
10937         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
10938         (rb_utf_friendly_time):
10939         * lib/rb-cut-and-paste-code.h:
10941         * podcast/rb-feed-podcast-properties-dialog.c:
10942         (rb_feed_podcast_properties_dialog_parse_time):
10943         * podcast/rb-podcast-properties-dialog.c:
10944         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
10945         to display the date in a more user friendly way.
10946         For example, if the feed was updated yesterday it will say:
10947         Last updated: Yesterday 10:00 AM
10948         instead of printing the date.
10950 2005-12-12  William Jon McCann  <mccann@jhu.edu>
10952         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
10953         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
10954         (rb_validate_item_propert, rb_podcast_parser_start_element) 
10955         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
10956         Use RB style.  Check for NULL before strcmp.  No C++ comments.
10957         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
10958         Don't set invalid mime type when mime type is NULL.  Fix leaks.
10959         (rb_podcast_parse_date): Add support for some real world
10960         date formats.
10961         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
10962         (rb_podcast_parse_item_free): Style and no need to check
10963         for NULL before g_free.
10965         May fix #323742
10967 2005-12-12  James Livingston  <jrl@ids.org.au>
10969         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
10970         with gstreamer 0.10, which replaced audioscale.
10972         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
10973         function to free the SoupSession
10975         * shell/rb-source-header.c: (rb_source_header_set_property),
10976         (rb_source_header_disclosure_toggled_cb),
10977         (rb_source_header_view_browser_changed_cb),
10978         (rb_source_header_sync_control_state):
10979         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
10980         * sources/rb-library-source.c: (rb_library_source_class_init):
10981         * sources/rb-source.c: (rb_source_class_init),
10982         (rb_source_get_status), (default_get_browser_key),
10983         (rb_source_get_browser_key), (rb_source_can_browse),
10984         (rb_source_notify_status_changed),
10985         (rb_source_notify_filter_changed):
10986         * sources/rb-source.h: seperate the enabling of browsers from the use
10987         of a gconf key.
10989 2005-12-11  William Jon McCann  <mccann@jhu.edu>
10991         * data/glade/podcast-feed-properties.glade: 
10992         * data/glade/podcast-properties.glade: Use scrolled viewports
10993         for description text.  Fix regression of #320509.
10995 2005-12-11  James Livingston  <jrl@ids.org.au>
10997         * sources/rb-auto-playlist-source.c:
10998         (rb_auto_playlist_source_class_init), (impl_reset_filters),
10999         (impl_search), (rb_auto_playlist_source_do_query),
11000         (rb_auto_playlist_source_set_query),
11001         (rb_auto_playlist_source_get_query): add support for the search box
11002         to automatic playlists.
11004         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
11005         memory leak.
11007 2005-12-11  James Livingston  <jrl@ids.org.au>
11009         * NEWS: update NEWS
11011 2005-12-11  James Livingston  <jrl@ids.org.au>
11013         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
11014         (rhythmdb_load), (monitor_subdirectory),
11015         (rhythmdb_sync_library_location):  start the library sync and
11016         monitoring in an idle callback.
11018 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11020         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
11021         (rb_podcast_source_constructor): Remove unused pixbuf column.
11022         (rb_podcast_source_set_property, rb_podcast_source_get_property):
11023         Use consistent style.
11025         Fixes #322961.
11027 2005-12-11  James Livingston  <jrl@ids.org.au>
11029         * rhythmdb/rhythmdb-property-model.c:
11030         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
11031         (rhythmdb_property_model_insert),
11032         (rhythmdb_property_model_delete_prop):
11033         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
11034         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
11035         (destroy_tree_property):
11036         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
11037         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
11038         GMemChunks, they are crap and deprecated. Improves startup-time and
11039         memory usage slightly.
11041 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11043         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
11044         Added license and website info.
11046         * MAINTAINERS.old: Add Colin.
11047         * MAINTAINERS: Add James.
11048         * AUTHORS: Put back in order.  Add extra space between name and email
11049         to make it easier to read.  Add James and jonathan.
11051         * widgets/rb-song-info.c (rb_song_info_init) 
11052         (rb_song_info_constructor): Make sure close button is primary/rightmost.
11054 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11056         Play queue implementation. Closes bug 107787.
11058         * data/rhythmbox.schemas: add items for whether the queue should be
11059         displayed as a sidebar, and the height of the sourcelist if it is.
11061         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
11062         playlist, and podcast popups; add 'view queue as sidebar' menu item,
11063         add popups for queue as source and as sidebar.  We need a separate
11064         popup for the sidebar view because otherwise it's hard to tell which
11065         of the visible entry views the action came from.
11067         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
11069         * po/POTFILES.in: Add new file
11071         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
11072         Add helper function for deciding if a podcast episode is available for
11073         playback.
11075         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
11076         reorder entries in the query model.
11077         (idle_process_update): Handle new update type used to insert entries
11078         at a particular position in the query model.
11079         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
11080         parameter to specify the position (-1 meaning 'at the end').
11081         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
11082         parameter.
11083         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
11084         bad entry removal updates for entries that aren't in the model.
11085         (rhythmdb_query_model_emit_reorder): Add helper function for
11086         reordering rows.
11087         (rhythmdb_query_model_move_entry): New method for moving entries
11088         around in the model
11089         (rhythmdb_query_model_entry_added_cb),
11090         (rhythmdb_query_model_update_limited_entries),
11091         (rhythmdb_query_model_do_reorder),
11092         (rhythmdb_query_model_do_insert): Pass through the index parameter,
11093         use rhythmdb_query_model_emit_reorder where appropriate.
11095         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11096         Don't allow the queue to be deleted.
11097         (handle_playlist_entry_cb): Update for method signature change
11098         (rb_playlist_manager_save_playlists_async),
11099         (rb_playlist_manager_get_playlists): Don't save the play queue,
11100         don't report it as a playlist.
11102         * shell/rb-play-order.c: Include queue play order in the list of
11103         available orders.
11105         * shell/rb-shell.c
11106         (rb_shell_class_init), (rb_shell_get_property): Add new property 
11107         for access to the clipboard object.
11108         (rb_shell_constructor): Handle playing-from-queue signal to update the
11109         sourcelist display; add queue sidebar in to UI, listen for queue
11110         sidebar pane changes, and read initial settings from gconf.
11111         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
11112         Only tell the sourcelist the source has changed if the new source is 
11113         not the queue, as we update the sourcelist differently in that case.
11114         (rb_shell_set_window_title): Only use the cached window title if the
11115         playing state was the same when it was created.
11116         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
11117         (rb_shell_sync_pane_visibility): Only hide the side pane if the
11118         sourcelist is hidden and the queue is shown as a source.
11119         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
11120         mode, since it doesn't make any sense.
11121         (sourcelist_visibility_changed_cb): Update the visibility of the pane
11122         too.
11123         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
11124         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
11125         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
11126         playing from queue shown as sidebar.
11128         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
11129         MusicProperties action here from rb-shell-player.c, since it acts like
11130         cut/copy/paste etc.
11131         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
11132         (rb_shell_clipboard_get_property): new property for queue source.
11133         Watch for selection changes in the sidebar entry view as well as the
11134         normal one.
11135         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
11136         actions and MusicProperties.
11137         (rb_shell_clipboard_cmd_queue_delete),
11138         (rb_shell_clipboard_cmd_add_song_to_queue),
11139         (rb_shell_clipboard_cmd_song_info),
11140         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
11142         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
11143         actually came from (could be the playing source, or the queue), add a 
11144         new play order object for the queue, add a property for the queue
11145         source, add a signal for when we switch between playing from the
11146         source and from the queue.
11147         (rb_shell_player_set_property): Handle playing directly from the
11148         queue so we stop once the queue is empty.  Create queue play order
11149         when we get the queue source.
11150         (rb_shell_player_get_playing_source): Return the source we're actually
11151         playing from.
11152         (rb_shell_player_get_playing_entry): Get playing entry from queue if
11153         that's where it is.
11154         (rb_shell_player_set_playing_entry): Update the queue play order if 
11155         that's where we're playing from.
11156         (rb_shell_player_play_order_update_cb): Take has next/previous for the
11157         queue into consideration too.
11158         (swap_playing_source): Helper function for switching the playing
11159         source.
11160         (rb_shell_player_do_previous): Check the queue, even though there's
11161         never a previous entry in it (yet), swap playing source if it changed.
11162         (rb_shell_player_do_next): Check the queue for entries to play before
11163         the normal play order, and swap playing source if it changed.
11164         (rb_shell_player_do_previous_or_seek): Check the queue for previous
11165         entries to go to as well.
11166         (rb_shell_player_playpause): Check the queue before the selection and
11167         the play order, and swap playing source if it changed.
11168         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
11169         (rb_shell_player_entry_activated_cb): Use
11170         rb_podcast_manager_entry_downloaded, do some tapdancing to make
11171         activating queue entries work properly (move the activated entry to
11172         the start of the queue and then play it); if we were playing from the
11173         queue, clear its playing entry so it'll start again from the start
11174         after the activated entry.
11175         (rb_shell_player_sync_buttons): MusicProperties action handler moved
11176         to rb-shell-clipboard.c
11177         (actually_set_playing_source): Add helper for updating the playing
11178         source.
11179         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
11180         signal if we stop or start doing so; use actually_set_playing_source; 
11181         emit playing-source-changed if we actually did change source.
11183         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
11184         rb_static_playlist_source_add_location.
11186         * sources/rb-library-source.c (rb_library_source_class_init): Allow
11187         enqueueing of songs from the library.
11189         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
11190         enqueueing of sonsg from playlists.
11191         (rb_playlist_source_entry_added_cb): Add extra parameter for
11192         rhythmdb_query_model_add_entry.
11193         
11194         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
11195         Implement (can_)add_to_queue for this class.
11196         (rb_podcast_source_entry_activated): Use
11197         rb_podcast_manager_entry_downloaded.
11198         (impl_can_add_to_queue): Return TRUE if at least one entry that has
11199         been downloaded is selected.
11200         (impl_add_to_queue): Only add downloaded entries to the queue.
11202         * sources/rb-source.{c,h}:
11203         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
11204         methods.
11205         (rb_source_class_init): Don't allow enqueueing by default; implement 
11206         add_to_queue though.
11207         (default_add_to_queue): Add all selected entries to the queue.
11208         
11209         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
11210         would be playing if there wasn't anything in the queue).
11211         (set_source_playing): Helper function for manipulating tree store.
11212         (rb_sourcelist_set_playing_source): Use set_source_playing
11213         (rb_sourcelist_preempt_playing_source): Update preempted source
11214         pointer, manipulate source states.
11216         * sources/rb-static-playlist-source.{c,h}:
11217         (rb_static_playlist_source_add_location_internal),
11218         (rb_static_playlist_source_add_location),
11219         (rb_static_playlist_source_add_entry): Add index parameter for
11220         specifying where in the playlist the new entry goes.
11221         (rb_static_playlist_source_new_from_xml), (impl_paste),
11222         (rb_static_playlist_source_add_list_uri),
11223         (rb_static_playlist_source_add_location_swapped),
11224         (rb_static_playlist_source_add_locations),
11225         (rb_static_playlist_source_non_entry_dropped),
11226         (rb_static_playlist_source_row_inserted):
11227         Handle new index parameter everywhere it appears
11228         (rb_static_playlist_source_move_entry): New method for moving entries
11229         around in the playlist.
11231         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
11232         warnings when trying to scroll entry views that have never been
11233         displayed.
11235         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
11236         play order that removes the old entry when switching to a new one.
11238         * sources/rb-play-queue-source.{c,h}: New files, implementing a
11239         static playlist subclass that has a second entry view for the sidebar
11240         view using alternate formatting, and that displays the number of
11241         entries it contains in its source list entry.
11243 2005-12-10  James Livingston  <jrl@ids.org.au>
11245         * rhythmdb/rhythmdb-query-model.c:
11246         (rhythmdb_query_model_add_entry),
11247         (rhythmdb_query_model_drag_data_received):
11248         * sources/rb-static-playlist-source.c:
11249         (rb_static_playlist_source_non_entry_dropped): when things are
11250         dropped, ignore any blank lines in the list of uris. Make the source
11251         responsible for adding new items to the db.
11253         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
11254         empty string.
11256 2005-12-10  James Livingston  <jrl@ids.org.au>
11258         * shell/rb-shell-player.c: (rb_shell_player_set_property),
11259         (rb_shell_player_sync_buttons),
11260         (rb_shell_player_selection_changed_cb): watch for the
11261         "selection-changed" signal, so that the Song Properties get enabled.
11262         Closes bug 323694.
11264 2005-12-10  James Livingston  <jrl@ids.org.au>
11266         * data/rhythmbox.schemas: fix the gconf schema
11268 2005-12-10  James Livingston  <jrl@ids.org.au>
11270         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
11271         the decoded-pad callback with gstreamer 0.8, it causes problems.
11273 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11275         Remove more junk from RBEntryView. Closes bug 323640.
11277         * widgets/rb-entry-view.{c,h}:
11278         Remove unused private structure members, replace 'playing' boolean
11279         with an enum (so we know if we're paused too), and store a pointer to
11280         the RBShellPlayer too.  
11281         (rb_entry_view_class_init), (rb_entry_view_set_property),
11282         (rb_entry_view_get_property):
11283         Remove 'entry-selected' and 'changed' signals and
11284         'playing-entry' property, add 'selection-changed' signal and
11285         'shell-player' and 'playing-state' properties.
11286         (rb_entry_view_new): Take the shell player object reference
11287         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
11288         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
11289         No longer needed, shell player is the place to get this information.
11290         (rb_entry_view_busy), (rb_entry_view_get_duration),
11291         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
11292         (rb_entry_view_get_next_from_entry),
11293         (rb_entry_view_get_previous_from_entry),
11294         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
11295         (rb_entry_view_get_num_entries):
11296         Removed, callers should go to the query model directly.
11297         (rb_entry_view_playing_song_changed): Update active query model, emit
11298         row changed signals to update pixbufs, and scroll to the playing song
11299         when the playing song changes, based on a signal from the shell
11300         player.
11301         (queue_changed_sig), (rb_entry_view_row_changed_cb),
11302         (emit_entry_changed): Evil, removed.
11303         (rb_entry_view_selection_changed_cb): Remove old signals, add new
11304         selection-changed signal.
11305         (rb_entry_view_select_none), (rb_entry_view_select_entry):
11306         Remove selection lock.  It didn't work anyway.
11307         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
11308         (rb_entry_view_emit_row_changed): Simple helper function to emit
11309         row-changed signals.
11311         * widgets/Makefile.am: Entry view needs headers from the shell/
11312         directory.
11313         * widgets/rb-song-info.{c,h}: Use the query model for everything except
11315         scrolling the entry view to show the entry being displayed.
11316         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
11317         'source' property so we can watch for query model changes.
11318         (rb_song_info_finalize): Unref objects, disconnect signal handlers
11319         (rb_song_info_set_property): Watch for query model changes, don't
11320         watch for entry view changes.
11321         (rb_song_info_new): Take source as a parameter, use the source's entry
11322         view unless one was specifically supplied.
11323         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
11324         Use query model rather than entry view to move between songs.
11325         (rb_song_info_update_buttons): Use query model.
11326         (rb_song_info_query_model_changed_cb): Handle query model changes.
11328         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11329         Only one copy of the code to enable/disable the CD burning action
11330         (rb_playlist_manager_playlist_entries_changed):
11331         Use the query model to get the number of entries, not the entry view.
11333         * shell/rb-play-order-random-by-age-and-rating.c,
11334         shell/rb-play-order-random-by-age.c,
11335         shell/rb-play-order-random-by-rating.c,
11336         shell/rb-play-order-random-equal-weights.c:
11337         Use G_DEFINE_TYPE
11339         * shell/rb-shell-player.{c,h}:
11340         Remove a few unused entries from the structure.
11341         (rb_shell_player_set_property):
11342         Don't use the 'changed' signal on the entry view (it's evil)
11343         (rb_shell_player_have_first): No longer needed
11344         (rb_shell_player_play): Just tell the entry view it's playing
11345         (rb_shell_player_playpause): Tell the entry view it's paused
11346         when pausing.
11347         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
11348         (rb_shell_player_property_row_activated_cb):
11349         Get the entry to play using the query model, not the entry view.
11350         (rb_shell_player_sync_buttons): Update entry view state while we're
11351         here.
11352         (rb_shell_player_set_playing_source_internal): Update entry view state
11353         (rb_shell_player_get_playing): Ask the entry view, not the player.
11354         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
11355         and rb_shell_set_window_title work properly, so you get "(Paused)" in
11356         the window title and tray icon tooltip.
11357         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
11359         * sources/rb-iradio-source.c, sources/rb-library-source.c,
11360         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
11361         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
11362         view constructor, pass the source in to the song info widget
11363         constructor.
11365         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
11366         Use 'selection-changed' instead of 'changed', since that's what the
11367         clipboard cares about.
11368         (rb_shell_clipboard_set_source): Don't die if source == NULL
11370 2005-12-10  James Livingston  <jrl@ids.org.au>
11372         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
11373         * sources/rb-playlist-source-recorder.c:
11374         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
11375         stuff not use the deprecated API when compiled against 2.13
11377 2005-12-10  James Livingston  <jrl@ids.org.au>
11379         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11381         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
11382         problem where the genre tag was getting set to the artist. Closes bug
11383         323642.
11385 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11387         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
11388         Return NULL if can't get first iter.
11390         Fixes #323663
11392 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11394         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
11395         updated rb_station_properties_dialog_new API.
11396         (rb_iradio_source_add_from_playlist): New public function.
11397         (rb_iradio_source_first_time_changed): Use add_from_playlist.
11399         * shell/rb-shell.c (new_station_location_added): Handle
11400         iradio location added signal.
11401         (rb_shell_cmd_new_station): Use new iradio station dialog.
11403         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
11404         (rb_station_properties_dialog_new): Don't squeeze new
11405         station functionality into this class.
11406         (rb_station_properties_dialog_response_cb): ditto.
11407         (rb_station_properties_dialog_update_title): Make
11408         consistent with other properties dialogs.
11409         (rb_station_properties_dialog_location_changed_cb): Do nothing.
11411         * iradio/rb-new-station-dialog.[ch]: 
11412         * iradio/Makefile.am: Add new station dialog.
11414         * data/glade/station-new.glade: New file based on
11415         new podcast feed dialog.
11416         * data/glade/station-properties.glade: Updated to
11417         be consistent with song properties dialog.
11419         Fixes #323306.
11421 2005-12-10  James Livingston  <jrl@ids.org.au>
11423         patch by: Ståle Lyngaas <staale@lyngaas.com>
11425         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
11426         submit songs longer than 30 minutes. Fixes bug 323639.
11428 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11430         * shell/rb-shell.c (idle_save_playlist_manager): Use new
11431         async save function.
11432         (rb_shell_finalize): Remove save timeout sources.  Reorder
11433         steps a bit to make saving db and playlists a bit more
11434         failsafe in case something goes wrong later.
11435         (rb_shell_constructor): Keep track of save timeout source.
11436         (add_to_library_response_cb): Keep track of db save timeout source.
11438         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
11439         g_atomic.
11440         (rb_playlist_manager_shutdown): New function to shutdown
11441         threads etc. before exit.
11442         (rb_playlist_manager_finalize): Moved handling outstanding
11443         threads stuff to shutdown since if there are outstanding threads
11444         they hold a ref and finalize is never called.
11445         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
11446         of signal which may be required for sync save.
11447         (rb_playlist_manager_save_playlists_async): Renamed old
11448         save_playlists to save_playlists_async.  Use g_atomic.
11449         (rb_playlist_manager_save_playlists): New function to
11450         perform sync saves (symmetric with RhythmDB API).
11451         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
11453         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
11454         Style consistency anality.
11455         (rhythmdb_finalize): Remove save timeout source.
11456         (rhythmdb_set_property, rhythmdb_get_property) 
11457         (rhythmdb_process_events): More anality and keep track of
11458         save timeout source.
11459         (action_thread_main): No need to call g_thread_exit.
11460         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
11461         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
11462         (write_encoded_gvalue, read_encoded_property): La la la.
11464         Fixes #322940.
11466 2005-12-10  James Livingston  <jrl@ids.org.au>
11468         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
11469         non-audio files.
11471 2005-12-10  James Livingston  <jrl@ids.org.au>
11473         * Makefile.am:
11474         * configure.ac: remove the rpm spec files, so that automake works.
11475         oops
11477         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
11478         locking issue
11480 2005-12-09  James Livingston  <jrl@ids.org.au>
11482         * debian/: try to get cvs to actually remove the files
11484 2005-12-09  James Livingston  <jrl@ids.org.au>
11486         * rhythmbox.spec.in:
11487         * debian/: remove the distro package stuff, they are *really* old, and
11488         downstream manage it anyway.
11490 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
11492         Rework play orders to work off query models rather than 
11493         entry views, and track the playing entry themselves rather
11494         than relying on the entry view to do it.  This makes the entry
11495         view mostly just a widget. Closes bug 323612.
11497         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
11498         Use query model rather than entry view to get the number
11499         of entries in playlists.
11501         * rhythmdb/rhythmdb-query-model.{c.h}
11502         (rhythmdb_query_model_tree_path_to_entry),
11503         (rhythmdb_query_model_iter_to_entry),
11504         (rhythmdb_query_model_get_next_from_entry),
11505         (rhythmdb_query_model_get_previous_from_entry):
11506         New utility functions for iterating through query models.
11507         (rhythmdb_query_model_compute_status_normal):
11508         Have one copy of this code, not four.
11510         * shell/rb-play-order.{c,h}:
11511         Add signals for when next/previous availability changes, and
11512         when the playing entry is removed, and add a property for
11513         the current playing entry.  Add gtkdoc comments too.
11514         (rb_play_order_class_init): Add new property and signals.
11515         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
11516         (rb_play_orer_query_model_changed_cb),
11517         (rb_play_order_query_model_changed): 
11518         Use query model rather than entry view.
11519         (rb_play_order_set_property), (rb_play_order_get_property):
11520         Handle new playing-entry property.  Call playing_entry_changed virtual
11521         method so subclasses can do any processing required.
11522         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
11523         (rb_play_order_set_playing_entry):
11524         Just use the playing-entry property.
11525         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
11526         Utility methods for subclasses.
11527         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
11528         Update next/previous availability, check if the playing entry
11529         was removed.
11530         (default_playing_entry_removed):
11531         Keep the current behaviour of just stopping playback when the 
11532         playing entry is deleted.
11533         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
11534         these for subclasses that don't have go_next/go_previous, but do
11535         have get_next/get_previous.
11536         (rb_play_order_update_have_next_previous): Emit signal if the
11537         availability of next/previous entries has changed.
11539         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
11540         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
11541         Use G_DEFINE_TYPE, replace entry view iterator with query model 
11542         methods.
11543         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
11544         on the last song in the shuffled order, go back to the start. This
11545         means if you press 'play' again you'll get the whole order again, not
11546         just one song.
11548         * shell/rb-shell-player.c:
11549         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
11550         play order rather than the entry view.
11551         (rb_shell_player_set_property): Update the play order when the
11552         selected source changes and we aren't playing anything.
11553         (rb_shell_player_sync_play_order): Copy the playing entry across to
11554         the new play order so playback continues from the same song, and watch
11555         for updates to have_next/have_previous.
11556         (rb_shell_player_play_order_update_cb): Enable/disable the
11557         next/previous actions when next/previous entry availability changes.
11558         (rb_shell_player_jump_to_current): Just use the play order's idea of
11559         what's playing, not the entry view's; if not playing anything, clear
11560         the selection, so when a playlist ends and you hit play again, it'll
11561         start at the start rather than the end.
11562         (rb_shell_player_do_previous): restructure a bit.
11563         (rb_shell_player_do_next): restructure, jump to new playing entry in
11564         an idle handler instead of directly.
11565         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
11566         song if there is one.
11567         (rb_shell_player_playpause): Jump to playing song, don't update the
11568         play order if we got the song from the selection.
11569         (rb_shell_player_playing_entry_deleted_cb): Not needed.
11570         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
11571         looks after next/previous actions now.  Don't break if called while
11572         there is no selected source.
11573         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
11574         (rb_shell_player_set_playing_source_internal),
11575         (rb_shell_player_error): No need to track the attempted playing entry
11576         any more, since the play order does that.
11578         * shell/rb-shell.c:
11579         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
11580         rb_shell_player_get_playing_entry rather than going through the entry
11581         view.
11583         * shell/rb-statusbar.c (rb_statusbar_set_property),
11584         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
11585         than the entry view for status bar text changes.
11586         (rb_statusbar_sync_status): Ask the query model directly
11588         * sources/rb-source.{c}: Add query model property.
11589         (default_get_status): Get status text from query model, should be
11590         suitable for most sources.
11591         (rb_source_set_property): Listen for changes to the query model 
11592         to update the status text.
11593         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
11594         (idle_emit_status_changed): Emit status-changed signals when query
11595         model changes. 
11597         * sources/rb-library-source.c, sources/rb-podcast-source.c:
11598         (impl_get_status): Not needed, RBSource does this now
11599         (rb_library_source_do_query) (rb_podcast_source_do_query): 
11600         Update RBSource's query model reference.
11602         * sources/rb-playlist-source.c:
11603         Remove query-model property, since RBSource has one now
11604         (impl_get_status): Not needed, RBSource does this now
11605         (rb_playlist_source_row_deleted): Use query model iterator helper
11606         function.
11607         (rb_playlist_source_set_query_model): Update RBSource's query model
11608         reference too.
11610         * sources/rb-iradio-source.c:
11611         (impl_get_status): Ask the query model directly.
11612         (rb_iradio_source_do_query): Update RBSource's query model reference
11613         when we create a new query.
11615         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
11616         Use query model rather than entry view.
11618         * widgets/rb-entry-view.{c,h}: 
11619         Remove playing_entry_deleted signal (now in play order).
11620         (entry_from_tree_path), (entry_from_tree_iter): Not needed
11621          as RhythmDBQueryModel has equivalent helper functions.
11622         (rb_entry_view_*): Use query model helpers instead of the above two
11623         functions.
11625 2005-12-09  James Livingston  <jrl@ids.org.au>
11627         * configure.ac:
11628         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
11629         (rb_recorder_enabled):
11630         * shell/rb-removable-media-manager.c: (poll_tray_opened):
11631         * sources/rb-playlist-source-recorder.c:
11632         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
11633         whether libnautilusburn has the _drive_unref function, and if so use
11634         it. Stops it complaining about deprecated API.
11636 2005-12-09  James Livingston  <jrl@ids.org.au>
11638         * configure.ac: drop the minimum gstreamer version back down, it
11639         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
11641 2005-12-09  James Livingston  <jrl@ids.org.au>
11643         * widgets/rb-song-info.c: (rb_song_info_class_init),
11644         (rb_song_info_show), (rb_song_info_constructor),
11645         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
11646         (rb_song_info_forward_clicked_cb): save metadata changes when the
11647         Next/Previous buttons are pressed (closes bug 320952). use
11648         G_DEFINE_TYPE.
11650 2005-12-09  James Livingston  <jrl@ids.org.au>
11652         Patch by: <jonathan@kaolin.hn.org>
11654         * sources/rb-iradio-source.c:
11655         (stations_view_drag_data_received_cb):
11656         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
11657         of urls. Fixes bug 323610.
11659 2005-12-09  James Livingston  <jrl@ids.org.au>
11661          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
11662          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
11664         * configure.ac:
11665         * metadata/rb-metadata-gst.c:
11666         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
11667         (rb_player_construct), (rb_player_new):
11668         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
11669         (rb_recorder_gst_signal_error), (pipe_message),
11670         (rb_recorder_new_pad_cb), (rb_recorder_construct),
11671         (rb_recorder_new):
11672         * shell/main.c: (main):
11673         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
11674         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
11676 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11678         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
11680         * shell/rb-playlist-manager.c:
11681           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
11682           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
11683           (rb_playlist_manager_set_automatic_playlist),
11684           (rb_playlist_manager_cmd_new_automatic_playlist),
11685           (rb_playlist_manager_cmd_edit_automatic_playlist):
11686            Use new playlist subclasses.
11687           (rb_playlist_manager_save_playlists): Only read the dirty flag
11688            for local playlists, minor pointless reformatting
11690         * sources/Makefile.am: add new files
11692         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
11693           split lots of stuff out into two
11694           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
11695           make RBPlaylistSource abstract, add virtual methods for showing a
11696           popup for the entry view and saving the playlist to XML.
11697           Other stuff is subclass-specific, or already virtual in RBSource.
11699         * sources/rb-playlist-xml: Define playlist XML tags and attributes
11700           in one place, since they're used across three source files now
11702         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
11703           Use new static playlist class
11705         * sources/rb-ipod-source.c: (add_rb_playlist):
11706           Use new static playlist class
11708         * sources/rb-static-playlist-source.{c,h},
11709         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
11710         files.
11712         * po/POTFILES.in: add new files
11714 2005-12-07  James Livingston  <jrl@ids.org.au>
11716         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
11717         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
11718         metadata loads not attempt to write changes to disk.
11720 2005-12-07  James Livingston  <jrl@ids.org.au>
11722         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11724         * data/glade/song-info-multiple.glade:
11725         * widgets/rb-song-info.c: (rb_song_info_constructor),
11726         (rb_song_info_sync_entries_multiple): allow the year to be changed on
11727         multiple songs at once.
11729 2005-12-06  James Livingston  <jrl@ids.org.au>
11731         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
11732         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
11734 2005-12-06  James Livingston  <jrl@ids.org.au>
11736         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
11737         names rather than adding a horizontal scroll bar.
11739 2005-12-06  James Livingston  <jrl@ids.org.au>
11741         * rhythmdb/rhythmdb-query-model.c:
11742         (rhythmdb_query_model_update_limited_entries),
11743         (rhythmdb_query_model_drag_data_received): remove some pointless debug
11744         messages
11746         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
11747         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
11748         always hide rather than remove DB entries, which will make RB not lose
11749         information when tag editing happens or people move files to trash and
11750         then change their mind. Also fix some races where the monitoring code
11751         would notice the temporary files generated by saving metadata.
11753 2005-12-05  William Jon McCann  <mccann@jhu.edu>
11755         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
11756         Hide internals and add tooltips.
11757         (rb_song_display_box_size_allocate): Hide internals.
11758         (sanitize_string, info_url): Copied from rb-header.
11759         (rb_song_display_box_sync): New public function.
11761         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
11762         (rb_header_init): Use a separate row for the seek bar.
11763         (rb_header_finalize): Don't unref widgets.
11764         (rb_header_sync): Use rb_song_display_box_sync.
11765         (rb_header_set_urldata)
11766         (rb_header_set_show_artist_album): Hide instead of remove widgets.
11767         (rb_header_set_show_position_slider): Set visibility of seek bar.
11768         (rb_header_set_show_timeline): Set sensitivity of seek bar.
11769         (rb_header_get_elapsed_string): Don't shift when you first start playback.
11771         * shell/rb-statusbar.c (rb_statusbar_init)
11772         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
11774         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
11775         (rb_shell_constructor): Remove hseparator.  Monitor
11776         toolbar visibility settings.  Add toolbar.  Add
11777         volume button to toolbar.  Add tooltips for volume button.
11778         (rb_shell_view_toolbar_changed_cb) 
11779         (rb_shell_sync_toolbar_visibility)
11780         (toolbar_visibility_changed_cb): Set visibility of
11781         toolbar.
11782         (rb_shell_sync_smalldisplay): Set the toolbar style to
11783         icons only when in small display mode.
11784         (rb_shell_volume_widget_changed_cb): Save volume setting.
11786         * shell/rb-shell-player.c (rb_shell_player_constructor):
11787         Remove pause and stop actions.  Make play action "important"
11788         so that text is visible in horizontal toolbar position.
11789         Remove control buttons.
11790         (rb_shell_player_init) 
11791         (rb_shell_player_sync_song_position_slider_visibility):
11792         Set visbibility of seek bar.
11793         (rb_shell_player_cmd_play, rb_shell_player_playpause):
11794         Make play action a toggle.
11795         (rb_shell_player_sync_volume): Volume control moved
11796         to player.
11797         (gconf_song_position_slider_visibility_changed):
11798         Set visbibility of seek bar.
11799         (rb_shell_player_sync_buttons):
11800         Set sensitivity of actions instead of buttons.
11801         (rb_shell_player_playing_changed_cb): Add callback
11802         for player notify::playing changes.
11804         * lib/rb-preferences.h: Add hide toolbar and seek
11805         bar key names.
11807         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
11808         seek bar menu items.  Remove pause and stop actions
11809         from the control menu.  Add a toolbar.
11811         * data/rhythmbox.schemas: Add toolbar_hidden
11812         song_position_slider_hidden keys.
11814         Patch by: James Livingston  <jrl@ids.org.au>
11815                   William Jon McCann  <mccann@jhu.edu>
11816         Fixes #316238.
11818 2005-12-05  James Livingston  <jrl@ids.org.au>
11820         * data/glade/library-prefs.glade:
11821         * data/rhythmbox.schemas:
11822         * lib/rb-preferences.h:
11823         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
11824         (rhythmdb_sync_library_location):
11825         * sources/rb-library-source.c: (rb_library_source_class_init),
11826         (rb_library_source_finalize), (rb_library_source_constructor),
11827         (impl_get_config_widget), (rb_library_source_preferences_sync),
11828         (rb_library_source_watch_toggled_cb): allow people to disable library
11829         monitoring, because with nothing set the file chooser button selects
11830         the Home folder (and hence that will get monitored).
11832 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
11834         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
11835         attempt to fix problem with RSS parsing showing invalid feed types.
11836         Fixes bug 323153
11838 2005-12-04  James Livingston  <jrl@ids.org.au>
11840         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
11841         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
11842         importing a remote directory not block the UI.
11844 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
11846         * data/glade/podcast-feed-properties.glade:
11847         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
11849 2005-12-04  James Livingston  <jrl@ids.org.au>
11851         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
11853         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
11854         to && to fix a mistake in the earlier podcast patch.
11856 2005-12-03  James Livingston  <jrl@ids.org.au>
11858         * data/glade/podcast-new.glade:
11859         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
11860         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
11862         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
11863         GValue, which stops occasional errors.
11865         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
11866         compile issue.
11868 2005-12-03  James Livingston  <jrl@ids.org.au>
11870         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
11872         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
11873         crasher with some podcasts feeds.
11875 2005-12-03  James Livingston  <jrl@ids.org.au>
11877         * data/rhythmbox.schemas: fix the gconf schema
11879 2005-12-03  James Livingston  <jrl@ids.org.au>
11881         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
11882         add a selection timeout to the sourcelist. This lets you hold a track
11883         over the playlist source, and then have the view switch so you can
11884         insert the track in the middle of the playlist. Closes bug 323044.
11886         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
11887         (select_on_drag_timeout), (remove_select_on_drag_timeout),
11888         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
11889         (rb_tree_dnd_add_drag_dest_support):
11890         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
11891         timeout.
11893         * sources/rb-sourcelist-model.c:
11894         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
11895         the source list.
11897 2005-12-02  Bastien Nocera  <hadess@hadess.net>
11899         * data/glade/audioscrobbler-prefs.glade: add a space before the web
11900         links, so that the text doesn't touch the button
11902 2005-12-02  James Livingston  <jrl@ids.org.au>
11904         Add full support for gnome-vfs remote files. Closes bug 140355.
11906         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
11907         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
11908         for authentication information from the user doesn't block the UI.
11910         (rhythmdb_entry_set_visibility): don't emit the signal twice.
11912         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
11913         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
11914         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
11915         (rhythmdb_process_stat_event), (emit_load_error_idle),
11916         (rhythmdb_process_metadata_load),
11917         (rhythmdb_process_queued_entry_set_event),
11918         (rhythmdb_process_file_created_or_modified),
11919         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
11920         (queue_stat_uri), (add_thread_main),
11921         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
11922         (rhythmdb_load), (rhythmdb_save_thread_main),
11923         (threadsafe_entry_set), (rhythmdb_query_internal),
11924         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
11925         (rhythmdb_do_full_query_internal),
11926         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
11927         (rhythmdb_volume_unmounted_cb),
11928         (rhythmdb_check_changed_file): trivial changes to support the
11929         asynchronous stats.
11931         * shell/main.c: (main): activate the authentication manager.
11933         * shell/rb-playlist-manager.c:
11934         (rb_playlist_manager_cmd_load_playlist),
11935         (rb_playlist_manager_cmd_save_playlist):
11936         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
11937         (rb_shell_cmd_add_file_to_library):
11938         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
11939         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
11940         remote files.
11942 2005-12-02  James Livingston  <jrl@ids.org.au>
11944         * shell/rb-playlist-manager.c: makes playlist menu items use the
11945         elipses correctly. Fixes bug 322283.
11947 2005-12-02  James Livingston  <jrl@ids.org.au>
11949         * shell/rb-playlist-manager.c:
11950         (rb_playlist_manager_load_playlists): fix silly mistake
11952 2005-12-02  James Livingston  <jrl@ids.org.au>
11954         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
11955         print out metadata-write unless --debug was passed.
11957         * rhythmdb/rhythmdb.c: (rhythmdb_load):
11958         * shell/rb-playlist-manager.c:
11959         (rb_playlist_manager_load_playlists): block writes to disk if they are
11960         still being loaded.
11962 2005-12-02  James Livingston  <jrl@ids.org.au>
11964         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
11965         ctrl-T, because Ctrl-D is used by "small mode"
11967 2005-12-02  James Livingston  <jrl@ids.org.au>
11969         * shell/rb-shell-preferences.c:
11970         (rb_shell_preferences_append_view_page):
11971         * sources/rb-library-source.c: (impl_get_config_widget):
11972         * sources/rb-podcast-source.c: (impl_get_config_widget):
11973         * sources/rb-source.c: (rb_source_get_config_widget):
11974         * sources/rb-source.h: Make the preference actually work.
11976         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
11977         if Rhythmbox is being run for the first time.
11979 2005-12-02  James Livingston  <jrl@ids.org.au>
11981         Add support for Rhythmbox to watch your library, and automatically add
11982         new tracks. Fixes bug 160159.
11984         * data/glade/library-prefs.glade: add "library location" preference
11985         * data/rhythmbox.schemas: add gconf key for the library location
11987         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
11988         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
11989         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
11990         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
11991         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
11992         (rhythmdb_load_thread_main), (rhythmdb_load),
11993         (monitor_subdirectory), (monitor_library_directory),
11994         (monitor_entry_file), (rhythmdb_sync_library_location),
11995         (library_location_changed_cb), (rhythmdb_check_changed_file),
11996         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
11997         specifiec in the gconf key for new additions. Also fix monitoring code
11998         so that it works properly, and notices deletions.
12000         * lib/rb-preferences.h:
12001         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
12002         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
12003         * shell/rb-audioscrobbler.h:
12004         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
12005         (rb_shell_preferences_append_view_page),
12006         (rb_shell_preferences_new):
12007         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
12008         it's preferences pane, so that we don't need #ifdef's through
12009         rb-shell-preferences.
12011         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
12012         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
12013         "preferences" property, so that sources can acccess it. This is needed
12014         because the library location pref needs to take effect when the window
12015         is closed.
12017         * sources/rb-library-source.c:
12018         (rb_library_source_library_location_changed),
12019         (rb_library_source_dispose), (rb_library_source_finalize),
12020         (rb_library_source_constructor), (impl_get_config_widget),
12021         (rb_library_source_preferences_sync),
12022         (rb_library_source_process_library_location_change),
12023         (rb_library_source_prefs_update),
12024         (rb_library_source_process_library_handle_selection),
12025         (rb_library_source_library_location_cb): set up and control the
12026         "library location" preference.
12028         * sources/rb-audiocd-source.c:(rb_source_class_init):
12029         * sources/rb-source.c: (rb_source_class_init): remove some pointless
12030         code.
12032 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12034         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
12035         (rb_feed_podcast_properties_dialog_update_title): 
12036         * data/glade/podcast-feed-properties.glade:
12037         Make the feed properties dialog consistent with the podcast
12038         properties dialog.
12040 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12042         * metadata/.cvsignore: 
12043         * po/.cvsignore: 
12044         * podcast/.cvsignore: Updated.
12046         * shell/main.c (main): Support DBus 0.6 flags.
12048 2005-11-30  Bastien Nocera  <hadess@hadess.net>
12050         * data/ui/rhythmbox-ui.xml:
12051         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
12052         (rhythmbd_entry_move_to_trash_set_error),
12053         (rhythmdb_entry_move_to_trash):
12054         * rhythmdb/rhythmdb.h:
12055         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
12056         (rb_shell_clipboard_cmd_delete),
12057         (rb_shell_clipboard_cmd_move_to_trash):
12058         * sources/rb-library-source.c: (rb_library_source_class_init),
12059         (impl_delete), (impl_move_to_trash):
12060         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12061         (impl_delete), (impl_move_to_trash):
12062         * sources/rb-removable-media-source.c:
12063         (rb_removable_media_source_class_init):
12064         * sources/rb-source.c: (rb_source_class_init),
12065         (rb_source_can_move_to_trash), (rb_source_delete),
12066         (rb_source_move_to_trash):
12067         * sources/rb-source.h:
12068         Add move_to_trash member for the sources, implement move to trash for
12069         the library and playlists
12070         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
12071         local files to the trash, and deleting them from the database
12072         (Closes: #315389)
12074 2005-11-30  William Jon McCann  <mccann@jhu.edu>
12076         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
12077         (rb_tray_icon_init, rb_tray_icon_finalize): 
12078         * shell/rb-statusbar.c (rb_statusbar_class_init) 
12079         (rb_statusbar_init, rb_statusbar_finalize): 
12080         * shell/rb-source-header.c (rb_source_header_class_init) 
12081         (rb_source_header_init, rb_source_header_finalize): 
12082         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
12083         (rb_shell_finalize): 
12084         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
12085         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
12086         * shell/rb-shell-player.c (rb_shell_player_class_init) 
12087         (rb_shell_player_init, rb_shell_player_finalize): 
12088         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
12089         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
12090         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
12091         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
12092         * shell/rb-play-order.c (rb_play_order_class_init) 
12093         (rb_play_order_init, rb_play_order_finalize): 
12094         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
12095         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
12096         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
12097         (rb_random_play_order_init, rb_random_play_order_finalize): 
12098         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
12099         (rb_history_finalize): 
12100         * shell/rb-commander.c (rb_commander_class_init) 
12101         (rb_commander_init, rb_commander_finalize): 
12102         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
12103         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
12104         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
12105         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
12106         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
12107         (rb_podcast_properties_dialog_init) 
12108         (rb_podcast_properties_dialog_finalize): 
12109         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
12110         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
12111         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
12112         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
12113         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
12114         (rb_feed_podcast_properties_dialog_init) 
12115         (rb_feed_podcast_properties_dialog_finalize): 
12116         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
12117         (rb_metadata_init, rb_metadata_finalize): 
12118         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
12119         (rb_station_properties_dialog_init) 
12120         (rb_station_properties_dialog_finalize): 
12121         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
12122         (rb_daap_share_init, rb_daap_share_dispose): 
12124         Use g_type_class_add_private in all classes. Closes bug 313688.
12125         
12126 2005-11-30  James Livingston  <jrl@ids.org.au>
12128         patch by: William Jon McCann <mccann@jhu.edu> to use
12129         g_type_class_add_private in all classes. Closes bug 313688.
12131         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
12132         (rb_thread_finalize):
12133         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
12134         (rb_player_finalize):
12135         * rhythmdb/rhythmdb-property-model.c:
12136         (rhythmdb_property_model_class_init),
12137         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
12138         * rhythmdb/rhythmdb-query-model.c:
12139         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
12140         (rhythmdb_query_model_finalize):
12141         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
12142         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
12143         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
12144         (rhythmdb_finalize):
12145         * sources/rb-daap-source.c: (rb_daap_source_class_init),
12146         (rb_daap_source_init), (rb_daap_source_dispose):
12147         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12148         (rb_iradio_source_init), (rb_iradio_source_finalize):
12149         * sources/rb-library-source.c: (rb_library_source_class_init),
12150         (rb_library_source_init), (rb_library_source_finalize):
12151         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12152         (rb_playlist_source_init), (rb_playlist_source_dispose):
12153         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
12154         (rb_podcast_source_init), (rb_podcast_source_finalize):
12155         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12156         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
12157         * sources/rb-sourcelist-model.h:
12158         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12159         (rb_sourcelist_init), (rb_sourcelist_finalize):
12160         * sources/rb-sourcelist.h:
12161         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
12162         * widgets/rb-cell-renderer-rating.c:
12163         (rb_cell_renderer_rating_init),
12164         (rb_cell_renderer_rating_class_init),
12165         (rb_cell_renderer_rating_finalize):
12166         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
12167         (rb_druid_finalize):
12168         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12169         (rb_entry_view_init), (rb_entry_view_finalize):
12170         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
12171         (rb_header_finalize):
12172         * widgets/rb-load-failure-dialog.c:
12173         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
12174         (rb_load_failure_dialog_finalize):
12175         * widgets/rb-property-view.c: (rb_property_view_class_init),
12176         (rb_property_view_init), (rb_property_view_finalize):
12177         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
12178         (rb_rating_finalize):
12179         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
12180         (rb_search_entry_init), (rb_search_entry_finalize):
12181         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12182         (rb_simple_view_init), (rb_simple_view_finalize):
12183         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
12184         (rb_song_display_box_init), (rb_song_display_box_finalize):
12185         * widgets/rb-song-info.c: (rb_song_info_class_init),
12186         (rb_song_info_init), (rb_song_info_finalize):
12187         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
12188         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
12190 2005-11-30  James Livingston  <jrl@ids.org.au>
12192         * iradio/rb-station-properties-dialog.c:
12193         (rb_station_properties_dialog_init),
12194         (rb_station_properties_dialog_new):
12195         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
12196         * lib/rb-glade-helpers.h:
12197         * podcast/rb-feed-podcast-properties-dialog.c:
12198         (rb_feed_podcast_properties_dialog_init),
12199         (rb_feed_podcast_properties_dialog_new):
12200         * podcast/rb-podcast-properties-dialog.c:
12201         (rb_podcast_properties_dialog_init),
12202         (rb_podcast_properties_dialog_new):
12203         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
12204         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
12205         * sources/rb-library-source.c: (impl_get_config_widget):
12206         * sources/rb-playlist-source-recorder.c:
12207         (rb_playlist_source_recorder_init):
12208         * widgets/rb-song-info.c: (rb_song_info_construct_single),
12209         (rb_song_info_constructor): create a single rb_glade_boldify_label()
12210         in rb-glade-helpers, rather than having eight implementation
12211         throughout the code.
12213 2005-11-30  James Livingston  <jrl@ids.org.au>
12215         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
12216         * lib/rb-util.h:
12217         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
12218         move the duration->string function into rb-utils, as it gets used in a
12219         few places.
12221         patch by: William Jon McCann <mccann@jhu.edu>
12223         * data/glade/podcast-properties.glade:
12224         * podcast/rb-podcast-properties-dialog.c:
12225         (rb_podcast_properties_dialog_init),
12226         (rb_podcast_properties_dialog_update),
12227         (rb_podcast_properties_dialog_update_title),
12228         (rb_podcast_properties_dialog_update_feed),
12229         (rb_podcast_properties_dialog_update_duration),
12230         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
12231         info dialog look more like the song info dialog. Use the same "Feed"
12232         value that is displayed in the treeview (ie. the album field), displays
12233         the duration, uses units in the bitrate field, and sort the fields in
12234         the same order.
12236 2005-11-29  James Livingston  <jrl@ids.org.au>
12238         * rhythmdb/rhythmdb-marshal.list:
12239         * rhythmdb/rhythmdb.h:
12240         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
12241         (emit_load_error_idle), (rhythmdb_process_metadata_load),
12242         (entry_to_rb_metadata), (emit_save_error_idle),
12243         (action_thread_main): emit error signal when metadata write fails.
12245         * shell/rb-shell.c: (rb_shell_constructor),
12246         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
12247         "metadata save" error and display it to the user.
12249 2005-11-29  James Livingston  <jrl@ids.org.au>
12251         * data/ui/rhythmbox-ui.xml:
12252         * sources/rb-podcast-source.c:
12253         (rb_podcast_source_songs_show_popup_cb),
12254         (rb_podcast_source_cmd_download_post),
12255         (rb_podcast_source_cmd_cancel_download): split download and cancel
12256         download commands. Replace usage of "Post" with "Esisode". Fixes bug
12257         321653.
12259 2005-11-18  William Jon McCann  <mccann@jhu.edu>
12261         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
12262         title on alert dialogs per the HIG.
12264         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
12265         the term Burn.
12266         (free_song_list): Routine to free song list.
12267         (rb_playlist_source_recorder_finalize): Use free_song_list.
12268         (rb_playlist_source_recorder_add_from_model): Return FALSE
12269         if unable to add all songs.  Check that duration of all
12270         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
12271         Fixes #321753.
12273         * sources/rb-playlist-source-recorder.c (check_media_length)
12274         (rb_playlist_source_recorder_start): Only check the duration
12275         and current media if the playlist length is longer than a
12276         standard CD (74 min).  Otherwise, just let the Recorder do the
12277         check.
12278         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
12279         drive at init.
12280         (rb_recorder_set_device): Don't leak drives.
12281         (rb_recorder_get_media_length): Use drive that was already set.
12282         (rb_recorder_burn): Let the recorder handle checking media type/size.
12283         Fixes bug 321754.
12285 2005-11-29  James Livingston  <jrl@ids.org.au>
12287         * rhythmdb/rhythmdb-query-model.c:
12288         (rhythmdb_query_model_set_sort_order):
12289         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
12290         emitting the tree-model "resorted" signal.
12292         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12293         (rb_entry_view_finalize), (rb_entry_view_set_property),
12294         (rb_entry_view_constructor), (rb_entry_view_resort_model):
12295         * widgets/rb-entry-view.h: add a function to resort the entry view,
12296         using the above function.
12298         * sources/rb-iradio-source.c:
12299         (rb_iradio_source_songs_view_sort_order_changed_cb):
12300         * sources/rb-library-source.c: (rb_library_source_finalize),
12301         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
12302         * sources/rb-playlist-source.c:
12303         (rb_playlist_source_songs_sort_order_changed_cb):
12304         * sources/rb-podcast-source.c:
12305         (rb_podcast_source_posts_view_sort_order_changed_cb),
12306         (rb_podcast_source_do_query): use the above function instead of
12307         re-creating the query model. This makes changing the sorting an order
12308         of magnitude faster, as it uses a single resorted signal rather than
12309         deleting and re-adding everything (which emits 2N signals). Closes bug
12310         315389.
12312 2005-11-29  James Livingston  <jrl@ids.org.au>
12314         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
12315         autosizing, which results in large speedups. Closes bug 312122.
12317         * po/ja.po: change the date format, so that it is a constant width
12319         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
12320         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
12321         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
12322         (rb_entry_view_constructor): make columns use fixed widths,
12323         disable column autosizing, and enable fixed-height mode.
12325         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
12326         (rb_entry_view_get_time_date_column_sample):
12327         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
12328         and get the canonical date format for the locale.
12330 ============ Version 0.9.2
12332 2005-11-28  James Livingston  <jrl@ids.org.au>
12334         * configure.ac: bump version to 0.9.2
12335         * NEWS: update with changes for 0.9.2
12337 2005-11-28  James Livingston  <jrl@ids.org.au>
12339         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12341         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
12342         Disable saving, renaming and delting for DAAP playlists.
12343         Fixes bug 322627.
12345 2005-11-28  James Livingston  <jrl@ids.org.au>
12347         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
12348         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
12349         prevent bug 322619.
12351         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12352         * sources/rb-removable-media-source.c:
12353         (rb_removable_media_source_class_init): fix ipod browser visibility
12354         problem.
12356 2005-11-28  James Livingston  <jrl@ids.org.au>
12358         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
12359         Avahi 0.6 support actually work. Fixes bug 322519.
12361 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
12363         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
12364         avahi is specified in --with-mdns
12366 2005-11-27  James Livingston  <jrl@ids.org.au>
12368         patch by: Bastien Nocera <hadess@hadess.net>
12370         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
12371         not the private one. Fixes bug 322485.
12373 2005-11-26  James Livingston  <jrl@ids.org.au>
12375         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
12376         Avahi 0.6, as well as 0.5.
12378         * configure.ac:
12379         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
12380         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
12381         (add_service):
12383 2005-11-25  James Livingston  <jrl@ids.org.au>
12385         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
12386         321926.
12388 2005-11-25  James Livingston  <jrl@ids.org.au>
12390         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
12391         correct type for checking the date against 0. Stops a warning when
12392         saving metadata.
12394 2005-11-25  James Livingston  <jrl@ids.org.au>
12396         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
12397         adjustment to be inside the element's limits. Without this songs that
12398         have large ReplayGain values will recieve no increase because they are
12399         outside the acceptable range, causing them to remain quiet.
12401 2005-11-25  James Livingston  <jrl@ids.org.au>
12403         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12404         * sources/rb-daap-source.c: (rb_daap_source_class_init):
12405         * sources/rb-ipod-source.c:
12406         * sources/rb-source.h:
12407         * sources/rb-library-source.h:
12408         * sources/rb-library-source.c: (rb_library_source_class_init),
12409         (rb_library_source_constructor),
12410         (rb_library_source_has_first_added_column),
12411         (rb_library_source_has_drop_support):
12412         * sources/rb-removable-media-source.c:
12413         (rb_removable_media_source_class_init): Make library-derived sources
12414         not show the Date Added column, as it doesn't make sense. Fixes bug
12415         322269.
12416         Move some of the feature funcs from the ipod and audio cd sources up to
12417         the removable media source.
12419 2005-11-24  James Livingston  <jrl@ids.org.au>
12421         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
12422         errors. oops.
12424 2005-11-24  James Livingston  <jrl@ids.org.au>
12426         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12427         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
12428         (rb_iradio_source_constructor): Chain up dispose method and use
12429         G_DEFINE_TYPE
12431 2005-11-24  James Livingston  <jrl@ids.org.au>
12433         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
12434         mistake in the last commit that can cause crashes.
12436 2005-11-24  James Livingston  <jrl@ids.org.au>
12438         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
12439         instead of g_printerr.
12441         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
12442         rb_debug instead of g_warning. The message happens every time for
12443         removable media/daap shares, so it's not unusual.
12445 2005-11-24  James Livingston  <jrl@ids.org.au>
12447         patch by: Tom Parker <palfrey@tevp.net>
12449         * configure.ac: fix libsoup test for enabling daap
12451 2005-11-23  James Livingston  <jrl@ids.org.au>
12453         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
12454         (rb_query_creator_init), (rb_query_creator_constructor),
12455         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
12456         empty row to queries with no criteria. Fixes bug 322078. use
12457         G_DEFINE_TYPE.
12459 2005-11-23  James Livingston  <jrl@ids.org.au>
12461         patch by:  <baptiste.millemathias@gmail.com>
12463         * help/C/quick-reference.xml: update the quick reference to have the
12464         correct key bindings.
12466 2005-11-22  James Livingston  <jrl@ids.org.au>
12468         * sources/rb-library-source.c: (genres_selection_reset_cb),
12469         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
12470         reset the query when all browser selections are removed.
12472 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
12474         * podcast/rb-podcast-manager.c:
12475         (rb_podcast_manager_db_entry_deleted_cb):
12476         Use a custom loop to remove podcast posts, rather than
12477         gtk_tree_model_foreach(), as deleting the entries within
12478         that loop causes the iterator to return the first entry
12479         twice.  Instead, we need to find the next entry before
12480         removing the current one. Fixes bug 321956.
12481         (rb_podcast_manager_entry_remove_cb): No longer needed.
12483 2005-11-22  James Livingston  <jrl@ids.org.au>
12485         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12486         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
12487         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
12489 2005-11-22  James Livingston  <jrl@ids.org.au>
12491         * sources/rb-podcast-source.c:
12492         (rb_podcast_source_post_date_cell_sort_func),
12493         (rb_podcast_source_post_status_cell_sort_func),
12494         (rb_podcast_source_post_feed_cell_sort_func):
12495         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
12496         (rb_entry_view_album_sort_func),
12497         (rb_entry_view_double_ceiling_sort_func),
12498         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
12499         the entry's location as a last resort when sorting, so the sort order
12500         is stable. This will stop entries moving around when two entries have
12501         the same sorting, and one of them gets played.
12503 2005-11-22  James Livingston  <jrl@ids.org.au>
12505         * daapsharing/rb-daap-connection.c:
12506         (rb_daap_connection_class_init), (rb_daap_connection_init),
12507         (connection_get_password), (build_message),
12508         (http_response_handler), (http_get), (handle_server_info),
12509         (handle_login), (handle_update), (handle_database_info),
12510         (handle_song_listing), (handle_playlists),
12511         (handle_playlist_entries), (rb_daap_connection_new),
12512         (rb_daap_connection_constructor), (rb_daap_connection_logout),
12513         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
12514         (rb_daap_connection_get_headers),
12515         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
12516         (rb_daap_connection_set_property),
12517         (rb_daap_connection_get_property):
12518         * daapsharing/rb-daap-connection.h:
12519         * sources/rb-daap-source.c: (rb_daap_source_dispose),
12520         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
12521         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
12522         of destroying the object when it is going to be used by a callback and
12523         fixes a double-free. Fixes bugs 321930 and 322007.
12525 2005-11-22  James Livingston  <jrl@ids.org.au>
12527         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
12528         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
12529         notification if there aren't any. Fixes bug 321968.
12531 2005-11-22  James Livingston  <jrl@ids.org.au>
12533         * rhythmdb/rhythmdb-property-model.c:
12534         (rhythmdb_property_model_set_property),
12535         (rhythmdb_property_model_finalize),
12536         (rhythmdb_property_model_compare),
12537         (rhythmdb_property_model_insert),
12538         (rhythmdb_property_model_delete_prop): Fix property model sorting
12539         where the display and sort keys are different. Fixes bug 321980.
12541 2005-11-22  James Livingston  <jrl@ids.org.au>
12543         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
12544         when import as a file or passed on the command line, and load them as
12545         playlists.
12547 2005-11-22  James Livingston  <jrl@ids.org.au>
12549         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
12551         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
12552         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
12553         a broken daap server. Fixes bug 321919.
12555 2005-11-22  James Livingston  <jrl@ids.org.au>
12557         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
12558         drag-and-drop for both the episodes and feeds list.
12559         
12560         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
12561         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
12562         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
12564         * widgets/rb-property-view.c: (rb_property_view_class_init),
12565         (rb_property_view_set_property), (rb_property_view_get_property),
12566         (rb_property_view_new), (rb_property_view_constructor):
12567         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12568         (rb_simple_view_new), (rb_simple_view_constructor):
12569         * widgets/rb-simple-view.h: add a "draggable" property to property
12570         views and set it to false for the feed list. Fixes bug 321284.
12572 2005-11-22  James Livingston  <jrl@ids.org.au>
12574         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
12576         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
12577         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12578         * sources/rb-ipod-source.c: (add_rb_playlist):
12579         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12580         (rb_playlist_source_set_property),
12581         (rb_playlist_source_get_property), (rb_playlist_source_new),
12582         (impl_receive_drag), (rb_playlist_source_add_location),
12583         (rb_playlist_source_new_from_xml):
12584         * sources/rb-playlist-source.h: give playlists and (optional)
12585         entry-type, and reject entries that don't match. Fixes bug 322006.
12587 2005-11-21  James Livingston  <jrl@ids.org.au>
12589         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
12590         (rb_source_header_finalize): remove the weak references when the
12591         source header is finalised. Stops the callbacks being called after the
12592         object is destroyed.
12594 2005-11-21  James Livingston  <jrl@ids.org.au>
12596         * shell/main.c: (main): don't try to acquite bonobo/dbus when
12597         --no-registration was passed. It causes warnings that make it
12598         impossible to run with --no-registration --g-fatal-warnings
12600 2005-11-21  James Livingston  <jrl@ids.org.au>
12602         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
12603         of strings when they are still in use. Fixes bug 321547.
12605         (rb_daap_connection_destroy): fix memory leak
12607 2005-11-21  James Livingston  <jrl@ids.org.au>
12609         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12610         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
12611         (rb_daap_mdns_resolve_cancel), (publish_cb),
12612         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
12613         support.
12615 2005-11-21  James Livingston  <jrl@ids.org.au>
12617         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
12618         sorting by genre
12620 2005-11-20  James Livingston  <jrl@ids.org.au>
12622         * podcast/rb-podcast-manager.c:
12623         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
12624         that we don't leak thread structures. Fixes bug 321636, and probably
12625         321775.
12627 2005-11-20  James Livingston  <jrl@ids.org.au>
12629         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
12630         (lookup_cd):
12631         * podcast/rb-podcast-manager.c: (start_job),
12632         (rb_podcast_manager_db_entry_deleted_cb),
12633         (rb_podcast_manager_entry_remove_cb):
12634         * podcast/rb-podcast-parse.c: (rb_insert_item),
12635         (rb_podcast_parse_load_feed):
12636         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
12637         * shell/rb-removable-media-manager.c:
12638         (rb_removable_media_manager_append_media_source):
12639         * shell/rb-shell.c: (add_to_library_response_cb):
12640         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
12641         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
12642         * sources/rb-iradio-source.c:
12643         (stations_view_drag_data_received_cb):
12644         * sources/rb-library-source.c: (string_list_equal),
12645         (impl_get_extra_views), (impl_receive_drag):
12646         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
12647         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
12648         (impl_receive_drag):
12649         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
12650         (rb_entry_view_append_column_custom), (harvest_entries):
12651         * widgets/rb-property-view.c:
12652         (rb_property_view_selection_changed_cb):
12653         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
12654         switch from using g_list_append to g_list_prepend. This changes
12655         operations from O(n^2) to O(n), which in cases like deleting a lot of
12656         tracks can give huge improvements in speed. Closes bug 321696.
12658 2005-11-20  James Livingston  <jrl@ids.org.au>
12660         * sources/rb-sourcelist.c: (rb_sourcelist_init),
12661         (rb_sourcelist_update_expander_visibility): fix indenting of child
12662         sources.
12664 2005-11-20  James Livingston  <jrl@ids.org.au>
12666         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12667         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
12668         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
12669         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
12670         (add_service), (entry_group_cb): dynamically allocate memory, rather
12671         than using static variables.
12673         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
12674         re-enable the daap share if the name hasn't changed.
12675         * shell/rb-shell-preferences.c:
12676         (share_name_entry_focus_out_event_cb): don't ask the daap share to
12677         change it's name when the checkbox is disabled. Fixed bug 321748.
12679 2005-11-18  James Livingston  <jrl@ids.org.au>
12681         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
12682         as hidden if it is on the current workspace.
12684 2005-11-17  William Jon McCann  <mccann@jhu.edu>
12686         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
12687         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
12688         (rb_podcast_properties_dialog_parse_time): 
12689         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
12690         (rb_feed_podcast_properties_dialog_parse_time):
12691         Rework the way the last mod time strings are created.  It was using
12692         thread unsafe functions, not creating value UTF, and not not checking
12693         the value of the result before modifying it.  This new method fixes
12694         these problems.
12696 2005-11-18  James Livingston  <jrl@ids.org.au>
12698         Don't reset the search box when viewing a different source, because it
12699         will change what is being played. Closes 321593.
12701         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
12702         the search box
12704         * shell/rb-source-header.c: (rb_source_header_class_init),
12705         (rb_source_header_init), (rb_source_header_finalize): use
12706         G_DEFINE_TYPE.
12708         (rb_source_header_set_property),
12709         (rb_source_header_source_weak_destroy_cb),
12710         (rb_source_header_search_cb): store the search text when leaving a
12711         source and put it in the search box when viewing it again.
12713 2005-11-18  James Livingston  <jrl@ids.org.au>
12715         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
12716         (save_entry):
12717         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
12718         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
12719         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
12720         time stamp.
12722         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
12723         last-seen as the timestamp of the last update of the feed. Don't
12724         re-add episodes that have been deleted. Closes 319759.
12726 2005-11-18  James Livingston  <jrl@ids.org.au>
12728         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
12729         that don't have the day name at the start. Closes 321645.
12731 2005-11-18  James Livingston  <jrl@ids.org.au>
12733         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
12734         (rb_podcast_manager_copy_post),
12735         (rb_podcast_manager_get_podcast_dir):
12736         * podcast/rb-podcast-manager.h:
12737         * sources/rb-podcast-source.c: (impl_get_config_widget),
12738         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
12739         download location switching to / if the prefs were opened before
12740         downloading an episode. Closes 321611.
12742 2005-11-18  James Livingston  <jrl@ids.org.au>
12744         * data/glade/podcast-new.glade:
12745         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12746         (rb_new_podcast_dialog_set_property),
12747         (rb_new_podcast_dialog_get_property),
12748         (rb_new_podcast_dialog_response_cb),
12749         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
12750         for entering new podcast urls in. Closes bug 321610.
12752 2005-11-18  James Livingston  <jrl@ids.org.au>
12754         * sources/rb-podcast-source.c: (construct_query_from_selection),
12755         (rb_podcast_source_do_query): allow podcast list to be re-sorted
12756         without restarting RB. Closes bug 321612.
12758 2005-11-18  James Livingston  <jrl@ids.org.au>
12760         * widgets/rb-entry-view.c: (set_column_visibility),
12761         (rb_entry_view_sync_columns_visible): when changing visibility of one
12762         column, don't hide and re-show all the others. Makes a show/hide
12763         column operation a lot faster.
12765 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
12767         Closes bug 321702.
12769         * iradio/rb-station-properties-dialog.c
12770          (rb_station_properties_dialog_update_bitrate):
12771         Mark the bitrate value as being kbps, using the same
12772         translatable format string as rb-song-info.c
12774         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
12775          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
12777         * shell/rb-shell-player.c (info_available_cb):
12778          Use RB_METADATA_FIELD_BITRATE to update the iradio
12779          station's bitrate value.
12781 2005-11-17  James Livingston  <jrl@ids.org.au>
12783         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
12785         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
12786         free a NULL date.
12788 2005-11-17  James Livingston  <jrl@ids.org.au>
12790         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
12792         * lib/rb-stock-icons.c: emit a single warning rather than multiple
12793         assertions. Lookup the icon size correctly.
12795 2005-11-16  William Jon McCann  <mccann@jhu.edu>
12797         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
12798         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
12799         Fix build errors.
12801 2005-11-16  James Livingston  <jrl@ids.org.au>
12803         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
12804         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
12805         (rb_shell_preferences_sync_column_button): block the toggle signal of
12806         the column checkboxes while setting their initial state. This stops
12807         the visibility being re-set, which causes a lot of time being spent
12808         measuring the columns aagin when opening the prefs window.
12810         Use G_DEFINE_TYPE.
12812 2005-11-16  James Livingston  <jrl@ids.org.au>
12814         * sources/rb-sourcelist.c: (rb_sourcelist_init),
12815         (rb_sourcelist_edit_source_name): don't assume that the editable
12816         source name is in the first column, because it isn't. Fixes bug
12817         320137.
12819 2005-11-16  James Livingston  <jrl@ids.org.au>
12821         * daapsharing/rb-daap-mdns.h:
12822         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
12823         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
12824         parts can know why operations failed. Avahi can report that the daemon
12825         was not running. Howl doesn't do this (yet).
12826         
12827         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
12828         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
12829         (browse_cb): don't display mdns errors to the user, if it wa because
12830         the daemon was not running.
12832 2005-11-16  James Livingston  <jrl@ids.org.au>
12834         * rhythmdb/rhythmdb-property-model.c:
12835         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
12836         (rhythmdb_property_model_compare),
12837         (rhythmdb_property_model_insert),
12838         (rhythmdb_property_model_insert_prop),
12839         (rhythmdb_property_model_delete),
12840         (rhythmdb_property_model_delete_prop),
12841         (rhythmdb_property_model_get_value): use RBRefStrings rather than
12842         copying the string and re-creating the sort key. Saves a little bit of
12843         memory and time.
12845         (rhythmdb_property_model_perform_sync),
12846         (rhythmdb_property_model_sync): perform the count sync in an idle
12847         callback, so that it doesn't have to be re-run once per value when
12848         loading.
12850 2005-11-16  James Livingston  <jrl@ids.org.au>
12852         * rhythmdb/rhythmdb-query-model.c:
12853         (rhythmdb_query_model_entry_deleted_cb),
12854         (rhythmdb_query_model_remove_entry): remove deleted entries from the
12855         limited list. Stops problems if they are deleted, and then things on
12856         the main list are
12858 2005-11-16  James Livingston  <jrl@ids.org.au>
12860         * NEWS: update NEWS
12862         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
12863         button's minimise-to-tray action
12865 2005-11-16  James Livingston  <jrl@ids.org.au>
12867         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
12868         leak. Disable adding newly created files for now, because it doesn't
12869         work properly.
12871         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12872         (rb_sourcelist_model_finalize):
12873         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12874         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
12876 2005-11-16  James Livingston  <jrl@ids.org.au>
12878         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
12879         problem where a GError* wasn't being set to NULL. Actually check the
12880         result.
12882 2005-11-16  James Livingston  <jrl@ids.org.au>
12884         * doc/reference/tmpl/rb-entry-view.sgml:
12885         * doc/reference/tmpl/rhythmbox-unused.sgml:
12886         * doc/reference/tmpl/rhythmdb-query-model.sgml:
12887         * doc/reference/tmpl/rhythmdb.sgml:
12888         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
12889         docs, including the patch that was on bug 
12891         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
12892         API, because it should only be used by RhythmDB itself.
12894 2005-11-16  James Livingston  <jrl@ids.org.au>
12896         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
12897         pausing by middle clicking on the tray icon.
12899 2005-11-15  James Livingston  <jrl@ids.org.au>
12901         * configure.ac: enable audioscrobbler support by default, if libsoup
12902         is present.
12904 2005-11-15  James Livingston  <jrl@ids.org.au>
12906         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12907         Closes bug 321157.
12909         * configure.ac:
12910         * daapsharing/rb-daap-connection.c: (build_message),
12911         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
12912         support gzip encoded daap connections.
12914         (handle_song_listing): fix leak
12916 2005-11-15  James Livingston  <jrl@ids.org.au>
12918         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
12919         * sources/rb-podcast-source.c:
12920         (rb_podcast_source_post_date_cell_data_func): make the date format
12921         translatable again, so that translators can choose the best format for
12922         their locale (%x is huge in some locales)
12924 2005-11-15  James Livingston  <jrl@ids.org.au>
12926         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
12927         (end_job): mark podcast episodes as failed, if the metadata load
12928         fails. This will prevent people playing non-audio enclosures, helping
12929         stop bug 320366.
12931 2005-11-14  James Livingston  <jrl@ids.org.au>
12933         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
12934         video sink to fakesink. This will stop problems (potentially crashers)
12935         that will occur if the file contains a video stream.
12937         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
12938         rather than using magic numbers everywhere.
12940         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
12941         * sources/rb-podcast-source.c:
12942         (rb_podcast_source_songs_show_popup_cb),
12943         (rb_podcast_source_cmd_download_post),
12944         (rb_podcast_source_post_status_cell_data_func),
12945         (rb_podcast_source_entry_activated_cb): use the above constants.
12947         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
12948         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
12949         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
12950         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
12951         (cancel_job), (download_progress_cb),
12952         (rb_podcast_manager_cancel_download),
12953         (rb_podcast_manager_insert_feed): use the constants, and fix a
12954         trhead-safety issue.
12956 2005-11-14  Bastien Nocera  <hadess@hadess.net>
12958         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
12959         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
12960         entry-changed events after stats on startup, fixes entry deleted from
12961         filtered views not disappearing
12963 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
12965         Fix rhythmdb query model refcount and polling problems. Closes bug
12966         321410.
12968         * rhythmdb/rhythmdb-property-model.c:
12969         (rhythmdb_property_model_finalize):
12970          Unref the query model if we have one.
12972         * rhythmdb/rhythmdb-query-model.h:
12973          Remove poll and cancel methods.  Query cancellation
12974          never did anything anyway.
12976         * rhythmdb/rhythmdb-query-model.c:
12977         (rhythmdb_query_model_init): Remove GAsyncQueues.
12978          Replace the GAsyncQueue-based update processing
12979          with a simpler g_idle_add approach; still has the
12980          same queueing properties, but now we don't poll the
12981          model forever and updates are processed immediately.
12983         (_unref_entry), (rhythmdb_query_model_finalize):
12984          Unref DB entries when finalized
12986         (rhythmdb_query_model_has_pending_changes):
12987          Use our own counter to decide if there are updates pending
12989         (rhythmdb_query_model_process_update), (idle_process_update):
12990          Process updates using g_idle_add, or directly if possible
12992         (rhythmdb_query_model_signal_complete),
12993         (rhythmdb_query_model_add_entries):
12994          Change to new update processing method
12996         (idle_poll_model), (rhythmdb_query_model_poll):
12997          Remove GAsyncQueue-based update processing.
12999         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
13000          No need to poll the model any more - updates are processed
13001          directly for synchronous queries.
13003         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
13004          Property model needs to be unref'd here
13006         * sources/rb-library-source.c: (rb_library_source_do_query):
13007          Don't try to cancel the active query (it never worked anyway),
13008          remove obsolete poll call, unref property models as required,
13009          and don't unref the cached 'all' query, since hold on to it.
13010          We unref it when the sort order changes, which forces the query
13011          to be rerun.
13013         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13014          Unref the property model as required
13016         (rb_podcast_source_do_query):
13017          Treat any query with no selected feeds and no search text as
13018          an 'all' query.  Unref query models except for the cached
13019          'all' query, since we hold on to that.
13021         (rb_podcast_source_cmd_update_all):
13022          Unref the property model as required.
13024         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
13025          Don't try to cancel the query (it never worked anyway)
13027         (rb_entry_view_poll_model):
13028          No need for this any more.
13030         * widgets/rb-entry-view.h:
13031          Remove obsolete function rb_entry_view_poll_model
13033         * widgets/rb-property-view.c: (rb_property_view_set_property):
13034          Ref and unref the property model as required.
13036 2005-11-14  James Livingston  <jrl@ids.org.au>
13038         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13040         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
13041         for error. Closes bug 321416.
13043 2005-11-14  James Livingston  <jrl@ids.org.au>
13045         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13047         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
13048         a crasher if a feed's last-post value isn't set. Closes bug 321353.
13050 2005-11-14  James Livingston  <jrl@ids.org.au>
13052         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
13053         * shell/rb-removable-media-manager.c:
13054         (rb_removable_media_manager_set_uimanager):
13055         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
13056         translation domain for GTK action groups.
13058 2005-11-12  James Livingston  <jrl@ids.org.au>
13060         * po/POTFILES.in: remove the old station-new files
13062 2005-11-12  James Livingston  <jrl@ids.org.au>
13064         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13065         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
13066         (save_entry): cause Rhythmbox to re-read the metadata from a file,
13067         when upgrading from a pre-Date-supporting version to a version that
13068         supports Date metadata. Closes bug 320760.
13070 2005-11-12  James Livingston  <jrl@ids.org.au>
13072         Add "update all podcast feeds" command. Closes bug 319954.
13074         * data/ui/rhythmbox-ui.xml: add to source context menu.
13076         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13077         (register_action_group), (rb_podcast_source_cmd_download_post),
13078         (rb_podcast_source_cmd_delete_feed),
13079         (rb_podcast_source_cmd_properties_feed),
13080         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
13081         rather than the shell.
13083         (rb_podcast_source_update_feed_func),
13084         (rb_podcast_source_cmd_update_all): update every feed.
13086 2005-11-11  James Livingston  <jrl@ids.org.au>
13088         * shell/rb-shell-player.c: (rb_shell_player_class_init),
13089         (rb_shell_player_constructor), (rb_shell_player_finalize):
13090         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
13091         others follow the HIG recommentations.
13093 2005-11-11  James Livingston  <jrl@ids.org.au>
13095         * podcast/rb-podcast-manager.c:
13096         (rb_podcast_manager_subscribe_feed): check that the url is valid,
13097         before trying to use it.
13099 2005-11-11  James Livingston  <jrl@ids.org.au>
13101         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
13102         (rb_entry_view_append_column): When sorting by year, sort by album
13103         within a particular year.
13105 2005-11-11  James Livingston  <jrl@ids.org.au>
13107         * NEWS: updates
13109 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
13110         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
13111         spelling of "Language."
13113 2005-11-11  James Livingston  <jrl@ids.org.au>
13115         * rhythmdb/rhythmdb-property-model.c:
13116         (rhythmdb_property_model_row_inserted_cb),
13117         (rhythmdb_property_model_prop_changed_cb),
13118         (rhythmdb_property_model_entry_removed_cb),
13119         (rhythmdb_property_model_insert_prop),
13120         (rhythmdb_property_model_sync): display the count after the "All"
13121         entry of a property model.
13123         * widgets/rb-property-view.c: (rb_property_view_class_init),
13124         (rb_property_view_finalize), (rb_property_view_constructor): use
13125         G_DEFINE_TYPE
13127 2005-11-10  James Livingston  <jrl@ids.org.au>
13129         * rhythmdb/rhythmdb-query-model.c:
13130         (rhythmdb_query_model_remove_entry):
13131         * rhythmdb/rhythmdb-query-model.h: make
13132         rhythmdb_query_model_remove_entry return whether the entry was in the
13133         model.
13135         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
13136         don't add non-SONG entries, as it doesn't really work and can cause
13137         crashes.
13139         (rb_playlist_source_remove_location): assert if the playlist and model
13140         differ on whether the entry is in the playlist
13142 2005-11-10  James Livingston  <jrl@ids.org.au>
13144         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13145         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
13146         (rb_podcast_manager_thread_parse_feed),
13147         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
13148         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
13149         emulating one with a list and mutex. Fixes a couple of threading
13150         issues.
13151         
13152         (rb_podcast_manager_insert_feed): fix some problems with ignoring
13153         updated feeds.
13154         
13155         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
13156         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
13157         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
13158         * podcast/rb-podcast-parse.c: (rb_insert_item),
13159         (rb_podcast_parse_channel_free):
13160         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
13161         fix some typos, and make a bit of code clearer.
13163 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
13165         Make the "delete podcast" dialog better. Closes bug 320899.
13167         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
13168         Add PROP_WINDOW for rb_shell_get_property so we can access the
13169         GtkWindow widget of the main window. 
13170         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
13171         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
13172         podcast feed delete dialog less confusing as well.
13174 2005-11-09  James Livingston  <jrl@ids.org.au>
13176         * shell/rb-removable-media-manager.c:
13177         (rb_removable_media_manager_mount_volume),
13178         (rb_removable_media_manager_scan): Fix a crasher where we were getting
13179         NULL for a cd volume.
13181 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13183         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
13184         method return a gboolean indicating whether the changes
13185         to the entry have already been applied.
13187         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
13188         only modify the entry if impl_entry_set returns FALSE.
13190         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
13191         When setting the location of an entry, update the
13192         hash table mapping locations to entries.
13194 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13196         * data/glade/Makefile.am:
13197         * iradio/Makefile.am:
13198           Remove 'new station' dialog.
13200         * iradio/rb-station-properties-dialog.h:
13201         * sources/rb-iradio-source.c: (impl_song_properties):
13202         * shell/rb-shell.c: (rb_shell_cmd_new_station):
13203          Add 'new station' mode parameter to
13204          rb_station_properties_dialog_new.
13206         * (rb_station_properties_dialog_response_cb),
13207         (rb_station_properties_dialog_create_station):
13208          When in 'new station' mode, create the station
13209          when OK button is pressed.
13211         * iradio/rb-station-properties-dialog.c:
13212         (rb_station_properties_dialog_location_changed_cb):
13213          Only enable OK button if a location is specified
13214         (rb_station_properties_dialog_init),
13215         (rb_station_properties_dialog_new),
13216         (rb_station_properties_dialog_update),
13217         (rb_station_properties_dialog_update_title),
13218         (rb_station_properties_dialog_rated_cb),
13219         (rb_station_properties_dialog_update_play_count),
13220         (rb_station_properties_dialog_update_bitrate),
13221         (rb_station_properties_dialog_update_last_played),
13222         (rb_station_properties_dialog_update_rating),
13223         (rb_station_properties_dialog_update_playback_error),
13224         (rb_station_properties_dialog_show):
13225          Handle 'new station' mode, where there's no current
13226          station to edit.
13228 2005-11-08  James Livingston  <jrl@ids.org.au>
13230         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
13231         keybinding for track columns consistent between library and playlist
13232         sources.
13234 2005-11-07  James Livingston  <jrl@ids.org.au>
13236         * data/ui/rhythmbox-ui.xml:
13237         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
13238         "Edit" item to playlist menu. Closes bug 311470.
13240 2005-11-07  James Livingston  <jrl@ids.org.au>
13242         patch by: Jaap A. Haitsma <jaap@haitsma.org>
13244         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
13245         confirmation to save dialogs, with gtk 2.8 or higher.
13247 2005-11-07 James Livingston  <jrl@ids.org.au>
13248         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
13249         requirement to a general on, because people are going to have it for
13250         the other dependencies.
13252 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
13254         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
13255         delete dialog less confusing.  Use HIG recommended button order.
13256         Closes bug 320840.
13258 2005-11-06  James Livingston  <jrl@ids.org.au>
13260         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
13261         drag-and-drop error.
13262         
13263         * sources/rb-library-source.c: (rb_library_source_constructor): only
13264         add drag-and-drop for the Library itself, subclasses can add support
13265         themselves if they want it.
13267         * sources/rb-removable-media-source.c:
13268         (rb_removable_media_source_class_init): by default removable media
13269         sources do not support dnd
13271 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
13273         * data/glade/station-properties.glade:
13274          Add box containing error icon and error message label
13275         * iradio/rb-station-properties-dialog.c:
13276         (rb_station_properties_dialog_class_init),
13277         (rb_station_properties_dialog_finalize):
13278          Change this class to use G_DEFINE_TYPE
13279         (rb_station_properties_dialog_init),
13280         (rb_station_properties_dialog_update),
13281         (rb_station_properties_dialog_update_playback_error):
13282          Display error icon and message when there is one, and hide the error
13283          box otherwise.
13284         (rb_station_properties_dialog_show): Hack widget show
13285          method to update the visibility of the error info box when showing
13286          the widget.  Otherwise the icon is displayed all the time (same thing
13287          is done in rb-song-info). Closes bug 320749.
13289 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
13291         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
13292         parsing of the duration of podcast episodes from the feed. Closes bug
13293         320748.
13295 2005-11-05  James Livingston  <jrl@ids.org.au>
13297         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
13298         release date metadata ("Year"). Closes bug 166093.
13300         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
13301         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
13302         (rb_metadata_gst_add_tag_data):
13303         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13304         (save_entry):
13305         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
13306         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
13307         (set_props_from_metadata), (rhythmdb_entry_set_internal),
13308         (rhythmdb_prop_get_type):
13309         * rhythmdb/rhythmdb.h: add support for "date" property
13310         
13311         * data/glade/general-prefs.glade:
13312         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
13313         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
13314         (rb_entry_view_append_column):
13315         * widgets/rb-entry-view.h:
13316         * sources/rb-library-source.c: (rb_library_source_constructor):
13317         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
13318         "Year" colums
13320         * data/glade/song-info.glade:
13321         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
13322         (rb_song_info_construct_single), (rb_song_info_constructor),
13323         (rb_song_info_populate_dialog), (rb_song_info_update_year),
13324         (rb_song_info_sync_entry_single): Add "Year" to song info window
13326         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
13327         sorted by year.
13329 2005-11-05  James Livingston  <jrl@ids.org.au>
13331         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
13332         description if it's very long.
13334 2005-11-05  James Livingston  <jrl@ids.org.au>
13336         pathc by: Artem Baguinski <femistofel@gmail.com>
13338         * help/C/Makefile.am:
13339         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
13340         Closes bug 320613.
13342 2005-11-05  James Livingston  <jrl@ids.org.au>
13344         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13346         * daapsharing/rb-daap-share.c: (write_next_chunk),
13347         (message_finished), (databases_cb): Use chunked file loading and
13348         sending in the DAAP server. This should reduce the amount of memory
13349         required to send files to the client.
13351 2005-11-05  James Livingston  <jrl@ids.org.au>
13353         * configure.ac: make the nautilus_burn_drive_door_is_open detection
13354         work better on some systems. Closes 320622.
13356 2005-11-05  James Livingston  <jrl@ids.org.au>
13358         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
13359         homepage, so that users can find out what AudioScrobbler is. Add
13360         access keys.
13362         * data/glade/daap-prefs.glade:
13363         * data/glade/general-prefs.glade:
13364         * data/glade/library-prefs.glade: make the indent be more consistent
13366         * data/glade/podcast-prefs.glade: 
13367         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13368         (impl_get_config_widget): move thing out of code into glade, where
13369         they belong
13371 2005-11-05  James Livingston  <jrl@ids.org.au>
13373         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
13374         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
13376 2005-11-04  James Livingston  <jrl@ids.org.au>
13378         * configure.ac: don't print DAAP configure info twice
13380 2005-11-04  James Livingston  <jrl@ids.org.au>
13382         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13383         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
13384         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
13385         #ifdefs, since we removed the symbol. Oops
13387 2005-11-04  James Livingston  <jrl@ids.org.au>
13389         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
13390         after the connect line, not before. Oops.
13392 2005-11-04  James Livingston  <jrl@ids.org.au>
13394         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
13395         fix some warnings
13397 2005-11-03  James Livingston  <jrl@ids.org.au>
13399         * NEWS: update the news file
13401         * data/glade/general-prefs.glade: make the prefs refer to "time" not
13402         "duration" column.
13404         * data/ui/rhythmbox-ui.xml:
13405         * shell/rb-playlist-manager.c:
13406         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13407         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
13408         and "delete" for feeds.
13410 2005-11-03  James Livingston  <jrl@ids.org.au>
13412         * sources/rb-podcast-source.c: (impl_delete),
13413         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
13414         feed. Closes 319760.
13416 2005-11-03  James Livingston  <jrl@ids.org.au>
13418         Don't start playing from the remote site when a un-downloaded podcast
13419         is activated. Closes 319983.
13420         
13422         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13423         (write_job_data), (download_progress_cb): write the local location as
13424         soon as any data is recieved
13426         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
13427         the mountpoint to NULL for podcast episodes that haven't yet been
13428         downloaded.
13429         
13430         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
13431         start playing a podcast if it hasn't been downloaded.
13432         
13433         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13434         (rb_podcast_source_entry_activated_cb): begin downloading when the
13435         podcast is activated.
13437 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
13439         * data/glade/general-prefs.glade:  Fix capitalization.
13440         * shell/rb-removable-media-manager.c:  Add a mnemonic.
13441         * sources/rb-podcast-source.c:
13442         (rb_podcast_source_songs_show_popup_cb),
13443         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
13445 2005-11-03  James Livingston  <jrl@ids.org.au>
13447         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
13449         * shell/rb-removable-media-manager.c:
13450         (rb_removable_media_manager_mount_volume): don't check network or
13451         autofs mounts, as they're not going to be removable media. Stops
13452         sending lots of warnings to syslog. Closes 320571.
13454         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
13455         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
13456         320570.
13458 2005-11-03  James Livingston  <jrl@ids.org.au>
13460         Add support for playing audio CDs. Metadata lookup is done using
13461         SoundJuicer's MusicBrainz lookup code, which can be switched to using
13462         the library when it gets broken out of S-J.
13463         
13464         Add a "rescan media" menu item, and commands for ejecting removable
13465         media.
13467         Move nautilus-cd-burner from optional to required depenency.
13469         * configure.ac:
13470         * data/ui/rhythmbox-ui.xml:
13471         * metadata/Makefile.am:
13472         + metadata/sj-error.c:
13473         + metadata/sj-error.h:
13474         + metadata/sj-metadata-marshal.list:
13475         + metadata/sj-metadata-musicbrainz.c:
13476         + metadata/sj-metadata-musicbrainz.h:
13477         + metadata/sj-metadata.c:
13478         + metadata/sj-metadata.h:
13479         + metadata/sj-structures.c:
13480         + metadata/sj-structures.h:
13481         * player/Makefile.am:
13482         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
13483         * po/POTFILES.in:
13484         * shell/Makefile.am:
13485         * shell/rb-removable-media-manager.c:
13486         (rb_removable_media_manager_dispose), (poll_tray_opened),
13487         (end_cd_drive_monitor), (begin_cd_drive_monitor),
13488         (rb_removable_media_manager_load_media),
13489         (rb_removable_media_manager_mount_volume),
13490         (rb_removable_media_manager_cmd_eject_medium),
13491         (rb_removable_media_manager_cmd_scan_media),
13492         (rb_removable_media_manager_check_volume),
13493         (rb_removable_media_manager_unmount_volume_swap),
13494         (rb_removable_media_manager_scan):
13495         * sources/Makefile.am:
13496         + sources/rb-audiocd-source.c:
13497         + sources/rb-audiocd-source.h:
13498         * tests/Makefile.am:
13500 2005-11-02  James Livingston  <jrl@ids.org.au>
13502         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13504         * sources/rb-iradio-source.c:
13505         (stations_view_drag_data_received_cb):
13506         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
13507         don't crash when the second uri is missing frm the drop, which
13508         browsers sometimes do.
13510 2005-11-01  James Livingston  <jrl@ids.org.au>
13512         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13513         (rb_podcast_manager_insert_feed):
13514         * podcast/rb-podcast-manager.h:
13515         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
13516         (rb_set_item_value), (rb_validate_item_propert),
13517         (rb_podcast_parse_date), (rb_podcast_parse_time):
13518         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
13519         from the feed.
13521 2005-10-31  James Livingston  <jrl@ids.org.au>
13523         * ChangeLog:
13524         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
13525         huge
13527 2005-10-31  James Livingston  <jrl@ids.org.au>
13529         * sources/rb-podcast-source.c:
13530         (rb_podcast_source_post_date_cell_data_func): generate the date string
13531         in a way that is correct in all locales.
13532         
13533         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
13534         (rhythmdb_entry_sync_mirrored): make the last played/date added
13535         columns use the same format.
13537 2005-10-30  James Livingston  <jrl@ids.org.au>
13540         * podcast/rb-podcast-manager.c:
13541         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
13542         
13543         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
13544         iradio errors better.
13546 2005-10-30  James Livingston  <jrl@ids.org.au>
13548         patch by: Artem Baguinski <femistofel@gmail.com>
13550         * metadata/rb-metadata-gst.c: (rb_metadata_init):
13552 2005-10-30  James Livingston  <jrl@ids.org.au>
13554         * podcast/rb-podcast-manager.c:
13555         (rb_podcast_manager_subscribe_feed),
13556         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
13557         already been added, usually as a radio station. Closes 319434.
13559 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
13561         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
13562         mnemonics & resize issues)
13563         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
13564         & mnemonics)
13565         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
13566         widget for the "download location" label.
13568         Closes bug 320184.
13570 2005-10-29  James Livingston  <jrl@ids.org.au>
13572         Allow the search box to match words from multiple properties. Closes
13573         bug 139196. Thanks to the person from IRC who did a lot of the initial
13574         work.
13577         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
13578         * lib/rb-util.h: Add functions to split a string into words, and one
13579         to perform "search folding" which is currently like casefolding but
13580         also strips punctuation
13581         
13582         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
13583         (rhythmdb_query_preprocess):
13584         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
13585         against title, artist, album and genre (for the search box)
13586         
13587         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
13588         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13589         (save_entry), (search_match_properties),
13590         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
13591         splitting into words and matching across multiple properties.
13592         
13593         * sources/rb-library-source.c: (construct_query_from_selection): use
13594         the new SEARCH_MATCH property for the search box
13595         
13596         * widgets/rb-entry-view.c: (type_ahead_search_func):
13598 2005-10-29  James Livingston  <jrl@ids.org.au>
13600         * lib/rb-stock-icons.c: (rb_stock_icons_init):
13601         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
13602         
13603         * shell/rb-playlist-manager.c:
13604         * shell/rb-shell.c: use the above stock ids, so that the icons get set
13605         correctly.
13606         
13607         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
13608         initial state of the shuffle/repeat menu items correctly. Patch from
13609         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
13611 2005-10-29  James Livingston  <jrl@ids.org.au>
13613         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
13614         double-free.
13615         
13616         * widgets/rb-cell-renderer-pixbuf.c:
13617         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
13618         icon go black when row is not selected
13619         
13620         * doc/reference/tmpl/rb-daap-connection.sgml:
13621         * doc/reference/tmpl/rhythmdb.sgml: doc updates
13623 2005-10-29  James Livingston  <jrl@ids.org.au>
13625         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
13626         silly mistake, where it could think partial downloads has been
13627         completed.
13629 2005-10-29  James Livingston  <jrl@ids.org.au>
13631         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13633         * data/glade/song-info.glade:
13634         * widgets/rb-song-info.c: (rb_song_info_construct_single),
13635         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
13636         (rb_song_info_sync_entry_single): show the disc number in the song
13637         info window. From bug 311199.
13639 2005-10-29  James Livingston  <jrl@ids.org.au>
13641         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
13642         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
13643         regularly. Closes 155306.
13645 2005-10-29  James Livingston  <jrl@ids.org.au>
13647         * podcast/rb-podcast-manager.c:
13648         (rb_podcast_manager_download_entry),
13649         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13650         (rb_podcast_manager_insert_feed):
13651         * podcast/rb-podcast-manager.h:
13652         * podcast/rb-podcast-parse.c: (rb_set_item_value),
13653         (rb_podcast_parser_start_element):
13654         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
13655         don't download them again. However, it can't resume
13656         partially-downloaded ones.
13658 2005-10-28  James Livingston  <jrl@ids.org.au>
13660         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
13661         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
13662         work. Don't attempt to write duration as a tag.
13664         Thanks to Artem Baguinski <femistofel@gmail.com>
13666 2005-10-28  James Livingston  <jrl@ids.org.au>
13668         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
13669         don't disable the status-bar menu item when the current source doesn't
13670         use the search box.
13672 2005-10-28  James Livingston  <jrl@ids.org.au>
13674         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
13675         crash if the file has unknown length
13677 2005-10-27  James Livingston  <jrl@ids.org.au>
13679         * daapsharing/rb-daap-connection.c:
13680         (rb_daap_connection_state_done): don't assert when a daap server
13681         doesn't have any playlists
13683 2005-10-27  James Livingston  <jrl@ids.org.au>
13685         * sources/rb-sourcelist-model.c:
13686         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
13687         source for the sourcelist. Closes bug 319817.
13689 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
13691         Patch by: Renato Araujo <renatox@gmail.com>
13693         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
13694           Fix for a crasher caused by previous patch.
13696 2005-10-26  James Livingston  <jrl@ids.org.au>
13698         * data/glade/podcast-prefs.glade:
13699         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
13700         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
13701         * sources/rb-podcast-source.c: (rb_podcast_source_new):
13702         * podcast/rb-podcast-manager.c:
13703         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13704         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
13705         * shell/rb-shell.c: Change some strings to make them more consistent.
13706         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
13707         makes it clearer which is which. "Episode" may not be the best term,
13708         but it seems to be widely used.
13709         
13710         Also fix some strings that weren't marked as translatable.
13711         
13712         * podcast/rb-feed-podcast-properties-dialog.c:
13713         (rb_feed_podcast_properties_dialog_class_init),
13714         (rb_feed_podcast_properties_dialog_finalize):
13715         * podcast/rb-new-podcast-dialog.c:
13716         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
13717         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13718         (rb_simple_view_finalize), (rb_simple_view_constructor):
13719         * podcast/rb-podcast-properties-dialog.c:
13720         (rb_podcast_properties_dialog_class_init),
13721         (rb_podcast_properties_dialog_finalize):
13722         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
13723         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
13724         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
13725         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
13726         use G_DEFINE_TYPE, instead of doing it manually.
13728 2005-10-26  James Livingston  <jrl@ids.org.au>
13730         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
13731         <jrl@ids.org.au>
13733         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
13734         (rb_metadata_init): Check that the necessary plugins are present to do
13735         id3 editing.
13736         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
13737         corrupted before replacing the original.
13739 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
13741         reviewed by: James Livingston <jrl@ids.org.au>
13743         Assign sequential IDs to playlists for DAAP rather than using the
13744         address of the playlist object.  Less flaky, and should work on 64bit
13745         platforms. Closes bug 319304.
13747         * daapsharing/rb-daap-share.c: 
13748         (rb_daap_share_set_property): watch for playlist creation
13749         (_find_by_id), (_find_by_source): playlist list search functions
13750         (rb_daap_share_playlist_created),
13751         (rb_daap_share_process_playlist),
13752         (rb_daap_share_playlist_destroyed):
13753          update playlist list as it changes, use weak refs on 
13754          playlists to get notified on destroy.
13755         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
13756          destroy playlist list on shutdown
13757         (add_playlist_to_mlcl): use playlist ID rather than pointer in
13758          DAAP response
13759         (databases_cb): search for playlist ID in list rather than just
13760          converting it to a pointer; return HTTP 404 if playlist not 
13761          found.
13762         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
13763          is already used for the main library
13765 2005-10-26  James Livingston  <jrl@ids.org.au>
13767         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13769         * daapsharing/rb-daap-connection.c: (build_message),
13770         (http_response_handler), (http_get), (handle_server_info),
13771         (handle_login), (handle_update), (handle_database_info),
13772         (handle_song_listing), (handle_playlists),
13773         (handle_playlist_entries), (handle_logout),
13774         (rb_daap_connection_new), (rb_daap_connection_logout),
13775         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
13776         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
13777         * daapsharing/rb-daap-connection.h:
13778         * sources/rb-daap-source.c: (rb_daap_source_activate),
13779         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
13780         (rb_daap_source_disconnect): Make connecting to DAAP sources
13781         asynchronous, so that non-responsive servers don't hang the UI. Closes
13782         316225.
13784 2005-10-26  James Livingston  <jrl@ids.org.au>
13786         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13788         * rhythmdb/rhythmdb-query-model.c:
13789         (rhythmdb_query_model_do_reorder): generate the row re-order map
13790         correctly.
13791         
13792         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
13793         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
13794         Update selection when rows get re-ordered. Closes 319718.
13796 2005-10-26  James Livingston  <jrl@ids.org.au>
13798         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
13800         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
13801         actually set the db pointer in play orders. Closes 319818.
13803 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
13805         Patch by: Renato Araujo <renatox@gmail.com>
13807         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13808         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
13809         (rb_podcast_manager_update_synctime),
13810         (rb_podcast_manager_config_changed),
13811         (rb_podcast_manager_insert_feed):
13812         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13813         (save_entry):
13814         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13815         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13816         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
13818 2005-10-25  James Livingston  <jrl@ids.org.au>
13820         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
13821         (db_entry_deleted_cb): don't share tracks that are hidden because the
13822         file is missing.
13824 2005-10-22  James Livingston  <jrl@ids.org.au>
13826         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
13827         crash if an entry couldn't be playerd, without streamer setting an
13828         error.
13830         
13831         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
13833         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13834         (rb_new_podcast_dialog_text_changed): enable the add button when a url
13835         is pasted into the dialog.
13836         
13837         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
13838         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
13839         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
13840         (rb_podcast_parse_channel_free):
13841         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
13842         feeds
13844 2005-10-22  James Livingston  <jrl@ids.org.au>
13846         * sources/rb-iradio-source.c:
13847         (rb_iradio_source_first_time_changed): Make merging the default
13848         stations actually work.
13849         
13850         * sources/rb-podcast-source.c:
13851         (rb_podcast_source_post_status_cell_data_func): fix problem where some
13852         people weren't seing the percentages in the stats column.
13854 2005-10-21  James Livingston  <jrl@ids.org.au>
13856         Patch from Caio Marcelo <cmarcelo@gmail.com>
13858         * shell/rb-shell.c: (rb_shell_window_state_cb),
13859         (rb_shell_get_visibility), (idle_hide_mainwindow),
13860         (rb_shell_set_visibility): Make the "show window" item in the tray
13861         icon menu show the toggle state correctly. Use a better policy on
13862         deciding whether the window is "visible" or not. Closes bug 308053.
13864 2005-10-21  James Livingston  <jrl@ids.org.au>
13866         * doc/reference/tmpl/rb-shell-preferences.sgml:
13867         * shell/Makefile.am: fix building with gtk-doc
13869         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
13870         don't submit podcasts to audioscrobbler
13871         
13872         
13873         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
13874         
13875         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
13876         (rb_set_item_value): strip spaces surrounding podcast urls
13877         
13879         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
13880         
13881         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
13883 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
13885         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
13886          Audioscrobbler/Last.fm support
13888         * configure.ac:
13889         * data/glade/Makefile.am:
13890         * data/glade/audioscrobbler-prefs.glade:
13891         * data/rhythmbox.schemas:
13892         * lib/Makefile.am:
13893         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
13894         * lib/md5.h:
13895         * lib/rb-preferences.h:
13896         * po/POTFILES.in:
13897         * shell/Makefile.am:
13898         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
13899         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
13900         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
13901         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
13902         (rb_audioscrobbler_timeout_cb), (mkmd5),
13903         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
13904         (rb_audioscrobbler_do_handshake),
13905         (rb_audioscrobbler_do_handshake_cb),
13906         (rb_audioscrobbler_submit_queue),
13907         (rb_audioscrobbler_submit_queue_cb),
13908         (rb_audioscrobbler_import_settings),
13909         (rb_audioscrobbler_preferences_sync),
13910         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
13911         (rb_audioscrobbler_gconf_changed_cb),
13912         (rb_audioscrobbler_song_changed_cb),
13913         (rb_audioscrobbler_username_entry_changed_cb),
13914         (rb_audioscrobbler_username_entry_activate_cb),
13915         (rb_audioscrobbler_password_entry_changed_cb),
13916         (rb_audioscrobbler_password_entry_activate_cb),
13917         (rb_audioscrobbler_enabled_check_changed_cb),
13918         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
13919         (rb_audioscrobbler_load_entry_from_string),
13920         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
13921         (rb_audioscrobbler_print_queue),
13922         (rb_audioscrobbler_free_queue_entries):
13923         * shell/rb-audioscrobbler.h:
13924         * shell/rb-shell-preferences.c:
13925         (rb_shell_preferences_append_audioscrobbler_config):
13926         * shell/rb-shell-preferences.h:
13927         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
13928         (rb_shell_select_source), (rb_shell_cmd_preferences):
13929         * sources/Makefile.am:
13931 2005-10-21  James Livingston  <jrl@ids.org.au>
13933         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
13935         * Makefile.am:
13936         * NEWS:
13937         * configure.ac:
13938         * data/art/Makefile.am:
13939         * data/glade/Makefile.am:
13940         * data/rhythmbox.schemas:
13941         * data/ui/rhythmbox-ui.xml:
13942         * doc/reference/Makefile.am:
13943         * doc/reference/tmpl/rhythmdb.sgml:
13944         * lib/rb-stock-icons.c: (rb_stock_icons_init):
13945         * lib/rb-stock-icons.h:
13946         * po/POTFILES.in:
13947         * podcast/Makefile.am:
13948         + podcast/rb-feed-podcast-properties-dialog.c:
13949         + podcast/rb-feed-podcast-properties-dialog.h:
13950         + podcast/rb-new-podcast-dialog.c:
13951         + podcast/rb-new-podcast-dialog.h:
13952         + podcast/rb-podcast-manager.c:
13953         + podcast/rb-podcast-manager.h:
13954         + podcast/rb-podcast-marshal.list:
13955         + podcast/rb-podcast-parse.c:
13956         + podcast/rb-podcast-parse.h:
13957         + podcast/rb-podcast-properties-dialog.c:
13958         + podcast/rb-podcast-properties-dialog.h:
13959         * rhythmdb/rhythmdb-property-model.c:
13960         (rhythmdb_property_model_set_property),
13961         (rhythmdb_property_model_enable_drag):
13962         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13963         (rhythmdb_tree_parser_end_element), (save_entry),
13964         (rhythmdb_tree_save):
13965         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
13966         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
13967         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
13968         (rhythmdb_entry_podcast_feed_get_type):
13969         * rhythmdb/rhythmdb.h:
13970         * shell/Makefile.am:
13971         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
13972         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
13973         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
13974         (rb_shell_quit):
13975         * sources/Makefile.am:
13976         + sources/rb-podcast-source.c:
13977         + sources/rb-podcast-source.h:
13978         * widgets/Makefile.am:
13979         * widgets/rb-property-view.c: (rb_property_view_class_init),
13980         (rb_property_view_constructor),
13981         (rb_property_view_selection_changed_cb),
13982         (rb_property_view_get_treeview):
13983         * widgets/rb-property-view.h:
13984         + widgets/rb-simple-view.c:
13985         + widgets/rb-simple-view.h:
13987 2005-10-20  James Livingston  <jrl@ids.org.au>
13989         * NEWS: update with changes since 0.9.1
13991         * configure.ac: check whether collate_key_for_filename is available
13992         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
13993         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
13994         it if it isn't available in glib (i.e. building against 2.6)
13995         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
13996         collation to get "natural sorting". Closes bug 158599.
13998 2005-10-20  James Livingston  <jrl@ids.org.au>
14000         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14002         * doc/reference/tmpl/rb-shell-player.sgml:
14003         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14004         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
14005         (rb_shell_player_get_playing),
14006         (rb_shell_player_get_playing_time_string),
14007         (rb_shell_player_get_playing_time),
14008         (rb_shell_player_set_playing_time), (tick_cb),
14009         (rb_shell_player_get_playing_path), (filter_mmkeys):
14010         * shell/rb-shell-player.h:
14011         * shell/rb-shell-player.xml:
14012         * shell/rb-shell.c: (rb_shell_constructor),
14013         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
14014         (rb_shell_set_window_title), (rb_shell_playing_impl),
14015         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
14016         Merge the duration_changed and elapsed_changed DBUS signals into one
14017         elapsed_changed signal. Check that the output argument isn't NULL
14018         before trying to put things in it.
14020 2005-10-20  James Livingston  <jrl@ids.org.au>
14022         * rhythmdb/rhythmdb-query-model.c:
14023         (rhythmdb_query_model_entry_added_cb),
14024         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
14025         problem where hidden entries could be shown in playlists.
14026         
14027         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
14028         issues when switching in and out of small mode.
14030 2005-10-19  James Livingston  <jrl@ids.org.au>
14032         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
14033         (rb_shell_constructor), (rb_shell_window_state_cb),
14034         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
14035         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
14036         (rb_shell_view_smalldisplay_changed_cb),
14037         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
14038         (rb_shell_sync_paned): remove gconf window-state races, prevent
14039         changing small mode too often, fix window event races. Closes 122806.
14041         
14042         Patch from Caio Marcelo <cmarcelo@gmail.com>
14044         * data/rhythmbox.schemas:
14045         * shell/rb-shell.c: (rb_shell_window_state_cb),
14046         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
14047         Remember the position of the window. Closes 315289.
14049 2005-10-19  James Livingston  <jrl@ids.org.au>
14051         Patch from Christophe Fergeau  <teuf@gnome.org>
14053         * configure.ac: determine whether libgpod is present when neither
14054         --with-ipod nor --without-ipod is passed
14056 2005-10-19  James Livingston  <jrl@ids.org.au>
14058         Patch from Caio Marcelo <cmarcelo@gmail.com>
14060         * shell/rb-shell-player.c: (do_next_idle),
14061         (rb_shell_player_do_previous), (rb_shell_player_do_next),
14062         (rb_shell_player_do_previous_or_seek),
14063         (rb_shell_player_previous_button_cb),
14064         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14065         (rb_shell_player_cmd_next), (eos_cb):
14066         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
14067         end of the playlist is reached.
14069 2005-10-19  Christopher Aillon  <caillon@redhat.com>
14071         * lib/rb-thread.c: fix a few GSource leaks
14073 2005-10-19  James Livingston  <jrl@ids.org.au>
14075         * doc/reference/tmpl/bacon-volume.sgml:
14076         * doc/reference/tmpl/disclosure-widget.sgml:
14077         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14078         * doc/reference/tmpl/eggnotificationbubble.sgml:
14079         * doc/reference/tmpl/eggtrayicon.sgml:
14080         * doc/reference/tmpl/gsequence.sgml:
14081         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14082         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14083         * doc/reference/tmpl/rb-daap-connection.sgml:
14084         * doc/reference/tmpl/rb-daap-dialog.sgml:
14085         * doc/reference/tmpl/rb-daap-mdns.sgml:
14086         * doc/reference/tmpl/rb-daap-share.sgml:
14087         * doc/reference/tmpl/rb-daap-sharing.sgml:
14088         * doc/reference/tmpl/rb-daap-source.sgml:
14089         * doc/reference/tmpl/rb-daap-src.sgml:
14090         * doc/reference/tmpl/rb-daap-structure.sgml:
14091         * doc/reference/tmpl/rb-debug.sgml:
14092         * doc/reference/tmpl/rb-dialog.sgml:
14093         * doc/reference/tmpl/rb-druid.sgml:
14094         * doc/reference/tmpl/rb-entry-view.sgml:
14095         * doc/reference/tmpl/rb-enums.sgml:
14096         * doc/reference/tmpl/rb-file-helpers.sgml:
14097         * doc/reference/tmpl/rb-glade-helpers.sgml:
14098         * doc/reference/tmpl/rb-header.sgml:
14099         * doc/reference/tmpl/rb-history.sgml:
14100         * doc/reference/tmpl/rb-ipod-source.sgml:
14101         * doc/reference/tmpl/rb-iradio-source.sgml:
14102         * doc/reference/tmpl/rb-library-source.sgml:
14103         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14104         * doc/reference/tmpl/rb-metadata.sgml:
14105         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14106         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14107         * doc/reference/tmpl/rb-play-order-linear.sgml:
14108         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14109         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14110         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14111         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14112         * doc/reference/tmpl/rb-play-order-random.sgml:
14113         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14114         * doc/reference/tmpl/rb-play-order.sgml:
14115         * doc/reference/tmpl/rb-player.sgml:
14116         * doc/reference/tmpl/rb-playlist-manager.sgml:
14117         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14118         * doc/reference/tmpl/rb-playlist-source.sgml:
14119         * doc/reference/tmpl/rb-preferences.sgml:
14120         * doc/reference/tmpl/rb-property-view.sgml:
14121         * doc/reference/tmpl/rb-query-creator-private.sgml:
14122         * doc/reference/tmpl/rb-query-creator.sgml:
14123         * doc/reference/tmpl/rb-rating-helper.sgml:
14124         * doc/reference/tmpl/rb-rating.sgml:
14125         * doc/reference/tmpl/rb-recorder.sgml:
14126         * doc/reference/tmpl/rb-refstring.sgml:
14127         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14128         * doc/reference/tmpl/rb-removable-media-source.sgml:
14129         * doc/reference/tmpl/rb-search-entry.sgml:
14130         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14131         * doc/reference/tmpl/rb-shell-glue.sgml:
14132         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14133         * doc/reference/tmpl/rb-shell-player.sgml:
14134         * doc/reference/tmpl/rb-shell-preferences.sgml:
14135         * doc/reference/tmpl/rb-shell.sgml:
14136         * doc/reference/tmpl/rb-song-display-box.sgml:
14137         * doc/reference/tmpl/rb-song-info.sgml:
14138         * doc/reference/tmpl/rb-source-header.sgml:
14139         * doc/reference/tmpl/rb-source.sgml:
14140         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14141         * doc/reference/tmpl/rb-sourcelist.sgml:
14142         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14143         * doc/reference/tmpl/rb-statusbar.sgml:
14144         * doc/reference/tmpl/rb-stock-icons.sgml:
14145         * doc/reference/tmpl/rb-string-helpers.sgml:
14146         * doc/reference/tmpl/rb-thread.sgml:
14147         * doc/reference/tmpl/rb-tray-icon.sgml:
14148         * doc/reference/tmpl/rb-tree-dnd.sgml:
14149         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14150         * doc/reference/tmpl/rb-util.sgml:
14151         * doc/reference/tmpl/rhythmbox-unused.sgml:
14152         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14153         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14154         * doc/reference/tmpl/rhythmdb-tree.sgml:
14155         * doc/reference/tmpl/rhythmdb.sgml: update for changes
14156         
14157         * doc/reference/Makefile.am: make docs build with changed ipod support
14158         
14159         * po/POTFILES.in: remove sources/itunesdb
14161 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
14163         * sources/itunesdb.c:
14164         * sources/itunesdb.h: removed now useless files
14166 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
14168         * configure.ac:
14169         * shell/Makefile.am:
14170         * sources/Makefile.am:
14171         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
14172         code
14173         [1]: http://www.gtkpod.org/libgpod.html
14176 2005-10-18  James Livingston  <jrl@ids.org.au>
14178         patch from Funda Wang <fundawang@linux.net.cn>
14180         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
14181         the notification bubble string translatable.
14183 ============ Version 0.9.1
14185 2005-10-16  James Livingston  <jrl@ids.org.au>
14187         * configure.ac: bump version to 0.9.1
14188         * NEWS: update translation credits
14190 2005-10-16  James Livingston  <jrl@ids.org.au>
14192         * rhythmdb/rhythmdb-query-model.c:
14193         (rhythmdb_query_model_class_init),
14194         (rhythmdb_query_model_drag_data_received): 
14195         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
14196         notified when things are dropped into the entry view.
14197         
14198         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
14199         (rb_playlist_source_add_location_swapped),
14200         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
14201         (rb_playlist_source_non_entry_dropped),
14202         (rb_playlist_source_row_inserted): Use the new signal so that dropping
14203         things onto a playlist's entry view work correctly, and doesn't cause
14204         crashes. Allow folders to be dropped as well. (Closes 318308)
14206 2005-10-16  James Livingston  <jrl@ids.org.au>
14208         * NEWS: Update some more
14210         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14211         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
14212         with the paned size, so that it doesn't move when the window is
14213         maximised/restored. Closes bug 315852.
14215         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
14216         display the playcount column, as it's useless (it never get changed).
14218 2005-10-14  James Livingston  <jrl@ids.org.au>
14220         * Makefile.am:
14221         * data/Makefile.am:
14222         * doc/reference/Makefile.am: get "make distcheck" to pass again
14224 2005-10-11  James Livingston  <jrl@ids.org.au>
14226         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
14227         destroy the connection when retrieving the playlists fails, because
14228         tracks have already been added. Closes 318380.
14230 2005-10-11  James Livingston  <jrl@ids.org.au>
14232         * sources/rb-sourcelist.c: (rb_sourcelist_append),
14233         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
14234         (source_name_edited_cb): Ask for the columns to be resized when a
14235         source is added, deleted or changes name.
14237 2005-10-11  James Livingston  <jrl@ids.org.au>
14239         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
14240         create a thread when processing a directory. This stops up created one
14241         thread for each file in a playlist we're trying to load. Closes
14242         317850.
14244         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
14245         typo that made sort-by-artist not work correctly.
14247 2005-10-11  James Livingston  <jrl@ids.org.au>
14249         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
14250         support is enabled
14252 2005-10-11  James Livingston  <jrl@ids.org.au>
14254         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
14255         * lib/rb-file-helpers.h: add a function to turn uris into our
14256         canonical path-escaped form
14257         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
14258         above function when import playlists. This will fix the problem of
14259         duplicate entries due to different representations of the uri (bug
14260         158211).
14262 2005-10-11  James Livingston  <jrl@ids.org.au>
14264         * shell/rb-shell.c: (rb_shell_get_visibility),
14265         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
14266         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
14267         window hiding so that Alt-F4 works again.
14269         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
14270         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
14271         (rb_entry_view_string_sort_func): Stop some crashes where a string
14272         property was set to NULL.
14274 2005-10-10  James Livingston  <jrl@ids.org.au>
14276         * doc/reference/rhythmbox.types: fix gtk-doc generation
14278 2005-10-09  James Livingston  <jrl@ids.org.au>
14280         * sources/rb-sourcelist.c: (rb_sourcelist_init):
14281         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
14282         accelerators, so that we don't have as many conflicting keys.
14284 2005-10-08  James Livingston  <jrl@ids.org.au>
14286         * data/iradio-initial.pls: Update the list of radio stations. Thanks
14287         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
14288         bug 129285.
14290 2005-10-07  James Livingston  <jrl@ids.org.au>
14292         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
14293         local path names in the same way as every other URI. This should stop
14294         duplicates occurring due to different escapings. Closes bug 158211.
14296 2005-10-06  James Livingston  <jrl@ids.org.au>
14298         * NEWS: more updates
14299         
14300         patch from Jaap Haitsma <jaap@haitsma.org>:
14302         * configure.ac:
14303         * data/Makefile.am:
14304         * data/art/Makefile.am:
14305         - data/art/rhythmbox-paused.png:
14306         - data/art/rhythmbox-playback-error.png:
14307         - data/art/rhythmbox-playing.png:
14308         - data/art-clearlooks/:
14309         * lib/rb-file-helpers.c: (rb_file):
14310         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14311         * lib/rb-stock-icons.h:
14312         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
14313         * widgets/rb-cell-renderer-pixbuf.c:
14314         (rb_cell_renderer_pixbuf_render):
14315         * widgets/rb-entry-view.c: (rb_entry_view_init),
14316         (rb_entry_view_set_playing):
14317         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
14318         stock icons instead of custom art. Drop remanents of art-clearlooks.
14320 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
14322         * configure.ac: Added ne in ALL_LINGUAS
14324 2005-10-02  James Livingston  <jrl@ids.org.au>
14326         * data/glade/Makefile.am: actually install the daap prefs glade file
14328 2005-09-30  James Livingston  <jrl@ids.org.au>
14330         * po/POTFILES.in: mremove rb-string-helper.c from the list of
14331         translatable files, so that make check works and we don't annoy the
14332         translators.
14333         
14334         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
14335         sanity checking, in case a db entry is missing some properties.
14337 2005-09-29  James Livingston  <jrl@ids.org.au>
14339         - lib/rb-string-helpers.c:
14340         - lib/rb-string-helpers.h:
14341         * lib/Makefile.am:
14342         * rhythmdb/rhythmdb-tree.c:
14343         * rhythmdb/rhythmdb.c:
14344         * shell/main.c: (main):
14345         * shell/rb-shell.c:
14346         * widgets/rb-entry-view.c:
14347         * widgets/rb-property-view.c: remove rb-string-helpers, as they
14348         utility functions haven't been used in a while.
14350 2005-09-27  James Livingston  <jrl@ids.org.au>
14352         * data/art-clearlooks/Makefile.am:
14353         - data/art-clearlooks/rhythmbox-album.png:
14354         - data/art-clearlooks/rhythmbox-audiocd.png:
14355         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
14356         - data/art-clearlooks/rhythmbox-dnd.png:
14357         - data/art-clearlooks/rhythmbox-ipod.png:
14358         - data/art-clearlooks/rhythmbox-iradio.png:
14359         - data/art-clearlooks/rhythmbox-library.png:
14360         - data/art-clearlooks/rhythmbox-next.png:
14361         - data/art-clearlooks/rhythmbox-pause.png:
14362         - data/art-clearlooks/rhythmbox-play.png:
14363         - data/art-clearlooks/rhythmbox-playlist-menu.png:
14364         - data/art-clearlooks/rhythmbox-playlist.png:
14365         - data/art-clearlooks/rhythmbox-previous.png:
14366         - data/art-clearlooks/rhythmbox-repeat.png:
14367         - data/art-clearlooks/rhythmbox-rewind.png:
14368         - data/art-clearlooks/rhythmbox-shuffle.png:
14369         - data/art-clearlooks/rhythmbox-stop.png:
14370         - data/art-clearlooks/rhythmbox-visuals.png:
14371         - data/art-clearlooks/rhythmbox-volume-max.png:
14372         - data/art-clearlooks/rhythmbox-volume-medium.png:
14373         - data/art-clearlooks/rhythmbox-volume-min.png:
14374         - data/art-clearlooks/rhythmbox-volume-mute.png:
14375         - data/art-clearlooks/rhythmbox-volume-zero.png:
14376         * data/art/Makefile.am:
14377         - data/art/rhythmbox-album.png:
14378         - data/art/rhythmbox-audiocd.png:
14379         - data/art/rhythmbox-automatic-playlist.png:
14380         - data/art/rhythmbox-dnd.png:
14381         - data/art/rhythmbox-ipod.png:
14382         - data/art/rhythmbox-iradio.png:
14383         - data/art/rhythmbox-library.png:
14384         - data/art/rhythmbox-next.png:
14385         - data/art/rhythmbox-pause.png:
14386         - data/art/rhythmbox-play.png:
14387         - data/art/rhythmbox-playlist-menu.png:
14388         - data/art/rhythmbox-playlist.png:
14389         - data/art/rhythmbox-previous.png:
14390         - data/art/rhythmbox-repeat.png:
14391         - data/art/rhythmbox-rewind.png:
14392         - data/art/rhythmbox-shuffle.png:
14393         - data/art/rhythmbox-stop.png:
14394         - data/art/rhythmbox-visuals.png:
14395         - data/art/rhythmbox-volume-max.png:
14396         - data/art/rhythmbox-volume-medium.png:
14397         - data/art/rhythmbox-volume-min.png:
14398         - data/art/rhythmbox-volume-mute.png:
14399         - data/art/rhythmbox-volume-zero.png:
14400         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14401         * lib/rb-stock-icons.h:
14402         * shell/rb-playlist-manager.c:
14403         * shell/rb-shell-player.c:
14404         * sources/rb-daap-source.c: (rb_daap_get_icon):
14405         * sources/rb-ipod-source.c:
14406         * sources/rb-iradio-source.c: (rb_iradio_source_init):
14407         * sources/rb-library-source.c: (rb_library_source_new):
14408         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14409         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
14410         that hasn't been used in a LONG time, and also remove art that are
14411         now stock icons.
14413 2005-09-27  James Livingston  <jrl@ids.org.au>
14415         * README: point to the gnome.org web sites, and update the example
14416         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
14417         
14418         * rhythmdb/rhythmdb-query-model.c:
14419         (rhythmdb_query_model_set_property),
14420         (rhythmdb_query_model_get_property),
14421         (rhythmdb_query_model_finalize):
14422         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
14423         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
14424         * rhythmdb/rhythmdb.h:
14425         * sources/rb-iradio-source.c: (impl_search):
14426         * sources/rb-library-source.c: (impl_search): Add query
14427         "preprocessing", which performs operations such as casefolding any
14428         strings that will be compared to any of the *_FOLDED properties.
14429         Closes bug 316039
14431 2005-09-27  James Livingston  <jrl@ids.org.au>
14433         * data/glade/daap-prefs.glade:
14434         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
14435         file for the daap preferences pane
14436         
14437         * sources/rb-sourcelist.c: (rb_sourcelist_init),
14438         (rb_sourcelist_append), (rb_sourcelist_remove),
14439         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
14440         don't display the column for source expanders unless there is an
14441         expandable source.
14443 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
14445         * .cvsignore:
14446         * Makefile.am:
14447         * configure.ac:
14448         * doc/.cvsignore:
14449         * doc/Makefile.am:
14450         * doc/reference/.cvsignore:
14451         * doc/reference/Makefile.am:
14452         * doc/reference/rhythmbox-docs.sgml:
14453         * doc/reference/rhythmbox-sections.txt:
14454         * doc/reference/rhythmbox.types:
14455         * doc/reference/tmpl/bacon-volume.sgml:
14456         * doc/reference/tmpl/disclosure-widget.sgml:
14457         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14458         * doc/reference/tmpl/eggnotificationbubble.sgml:
14459         * doc/reference/tmpl/eggtrayicon.sgml:
14460         * doc/reference/tmpl/gsequence.sgml:
14461         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14462         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14463         * doc/reference/tmpl/rb-daap-connection.sgml:
14464         * doc/reference/tmpl/rb-daap-dialog.sgml:
14465         * doc/reference/tmpl/rb-daap-mdns.sgml:
14466         * doc/reference/tmpl/rb-daap-share.sgml:
14467         * doc/reference/tmpl/rb-daap-sharing.sgml:
14468         * doc/reference/tmpl/rb-daap-source.sgml:
14469         * doc/reference/tmpl/rb-daap-src.sgml:
14470         * doc/reference/tmpl/rb-daap-structure.sgml:
14471         * doc/reference/tmpl/rb-debug.sgml:
14472         * doc/reference/tmpl/rb-dialog.sgml:
14473         * doc/reference/tmpl/rb-druid.sgml:
14474         * doc/reference/tmpl/rb-entry-view.sgml:
14475         * doc/reference/tmpl/rb-enums.sgml:
14476         * doc/reference/tmpl/rb-file-helpers.sgml:
14477         * doc/reference/tmpl/rb-glade-helpers.sgml:
14478         * doc/reference/tmpl/rb-header.sgml:
14479         * doc/reference/tmpl/rb-history.sgml:
14480         * doc/reference/tmpl/rb-ipod-source.sgml:
14481         * doc/reference/tmpl/rb-iradio-source.sgml:
14482         * doc/reference/tmpl/rb-library-source.sgml:
14483         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14484         * doc/reference/tmpl/rb-metadata.sgml:
14485         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14486         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14487         * doc/reference/tmpl/rb-play-order-linear.sgml:
14488         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14489         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14490         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14491         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14492         * doc/reference/tmpl/rb-play-order-random.sgml:
14493         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14494         * doc/reference/tmpl/rb-play-order.sgml:
14495         * doc/reference/tmpl/rb-player.sgml:
14496         * doc/reference/tmpl/rb-playlist-manager.sgml:
14497         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14498         * doc/reference/tmpl/rb-playlist-source.sgml:
14499         * doc/reference/tmpl/rb-preferences.sgml:
14500         * doc/reference/tmpl/rb-property-view.sgml:
14501         * doc/reference/tmpl/rb-query-creator-private.sgml:
14502         * doc/reference/tmpl/rb-query-creator.sgml:
14503         * doc/reference/tmpl/rb-rating-helper.sgml:
14504         * doc/reference/tmpl/rb-rating.sgml:
14505         * doc/reference/tmpl/rb-recorder.sgml:
14506         * doc/reference/tmpl/rb-refstring.sgml:
14507         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14508         * doc/reference/tmpl/rb-removable-media-source.sgml:
14509         * doc/reference/tmpl/rb-search-entry.sgml:
14510         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14511         * doc/reference/tmpl/rb-shell-glue.sgml:
14512         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14513         * doc/reference/tmpl/rb-shell-player.sgml:
14514         * doc/reference/tmpl/rb-shell-preferences.sgml:
14515         * doc/reference/tmpl/rb-shell.sgml:
14516         * doc/reference/tmpl/rb-song-display-box.sgml:
14517         * doc/reference/tmpl/rb-song-info.sgml:
14518         * doc/reference/tmpl/rb-source-header.sgml:
14519         * doc/reference/tmpl/rb-source.sgml:
14520         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14521         * doc/reference/tmpl/rb-sourcelist.sgml:
14522         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14523         * doc/reference/tmpl/rb-statusbar.sgml:
14524         * doc/reference/tmpl/rb-stock-icons.sgml:
14525         * doc/reference/tmpl/rb-string-helpers.sgml:
14526         * doc/reference/tmpl/rb-thread.sgml:
14527         * doc/reference/tmpl/rb-tray-icon.sgml:
14528         * doc/reference/tmpl/rb-tree-dnd.sgml:
14529         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14530         * doc/reference/tmpl/rb-util.sgml:
14531         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14532         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14533         * doc/reference/tmpl/rhythmdb-tree.sgml:
14534         * doc/reference/tmpl/rhythmdb.sgml:
14535         * macros/.cvsignore:
14536         * shell/Makefile.am:
14537         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
14538         (rb_source_finalize), (rb_source_set_property),
14539         (rb_source_get_property), (default_get_pixbuf),
14540         (_rb_source_show_popup):
14541         * sources/rb-source.h:
14542         Add support for gtk-doc in rhythmbox.
14543         Convert RBSource to use newer glib functions, such as add_private.
14544         Gives RBSource a default get_pixbuf implementation.
14546 2005-09-25  James Livingston  <jrl@ids.org.au>
14548         * NEWS: Update with about a months worth of changes
14550         * data/glade/song-info-multiple.glade:
14551         * data/glade/song-info.glade:
14552         * data/rhythmbox.schemas:
14553         * lib/rb-preferences.h:
14554         * rhythmdb/rhythmdb.h:
14555         * shell/rb-shell-player.c:
14556         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
14557         few remaining parts of autorating.
14559 2005-09-24  James Livingston  <jrl@ids.org.au>
14561         * shell/rb-shell.c: (rb_shell_constructor),
14562         (rb_shell_window_state_cb), (rb_shell_set_visibility),
14563         (rb_shell_window_configure_cb): store window state in the gconf keys,
14564         so that it gets used. Closes bugs 313893 and 137068.
14566 2005-09-20  James Livingston  <jrl@ids.org.au>
14568         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
14569         crash if the entry has a NULL string in a property
14570         
14571         * shell/rb-removable-media-manager.c:
14572         (rb_removable_media_manager_load_media): fix some memory leaks
14573         
14574         (rb_removable_media_manager_mount_volume),
14575         (rb_removable_media_manager_eject_medium_cb),
14576         (rb_removable_media_manager_cmd_eject_medium): use
14577         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14578         
14579         * sources/rb-removable-media-source.c:
14580         (rb_removable_media_source_set_property),
14581         (rb_removable_media_source_get_property): use
14582         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14584 2005-09-18  James Livingston  <jrl@ids.org.au>
14586         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
14587         column
14589         * data/glade/general-prefs.glade:
14590         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
14591         (rb_shell_preferences_column_check_changed_cb),
14592         (rb_shell_preferences_sync): add checkbox to control visibility
14593         of the column
14594         
14595         
14596         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14597         (save_entry):
14598         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
14599         (rhythmdb_prop_get_type):
14600         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
14601         was as "last played" is handled
14602         
14603         * sources/rb-library-source.c: (rb_library_source_constructor):
14604         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14605         Make the column show in the library and playlists
14606         
14607         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
14608         * widgets/rb-entry-view.h: add the column
14609         
14610         * widgets/rb-query-creator-properties.c: allow automatic playlists to
14611         be sorted by the column
14613 2005-09-16  James Livingston  <jrl@ids.org.au>
14615         * shell/rb-shell-player.c: (rb_shell_player_init),
14616         (rb_shell_player_do_previous_or_seek),
14617         (rb_shell_player_previous_button_cb),
14618         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14619         (rb_shell_player_playpause_button_cb): Make the previous button act
14620         the same as the menu item. Fix an inversion of the "previous track or
14621         seek" logic.
14622         
14623         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14624         
14625         (rb_shell_player_playpause): make --play-pause stop source that can't
14626         be paused
14628 2005-09-15  James Livingston  <jrl@ids.org.au>
14630         * configure.ac: increase totem-plparser requirements to 1.1.5
14632         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
14633         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
14634         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
14635         use the newer playlist APIs to save the name of the playlist, and use
14636         the name of a loaded playlist.
14638         Closes bug 309817.
14640 2005-09-15  James Livingston  <jrl@ids.org.au>
14642         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14644         * shell/Makefile.am: stop some linker warnings
14646         * shell/main.c: (main): make --no-registration work with dbus
14648 2005-09-15  James Livingston  <jrl@ids.org.au>
14650         * daapsharing/rb-daap-sharing.c: (create_share):
14651         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
14652         reference sinking and counting issues that I caused.
14654 2005-09-15  James Livingston  <jrl@ids.org.au>
14656         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
14657         playing" icon in the "now playing" column header.
14659 2005-09-14  James Livingston  <jrl@ids.org.au>
14661         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
14662         daap shares, when sharing is turned off.
14664 2005-09-12  Bastien Nocera  <hadess@hadess.net>
14666         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
14667         the GConf value's default, especially for badly installed schema
14668         files
14670 2005-09-12  James Livingston  <jrl@ids.org.au>
14672         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
14674         Patch from Paolo Borelli <pborelli@katamail.com>
14676         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
14677         grip when maximised. Closes bug 316055.
14679 2005-09-11  James Livingston  <jrl@ids.org.au>
14681         Patch from William Jon McCann <mccann@jhu.edu>
14683         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
14684         subclass of GtkStatusbar instead of GtkHBox.
14685         (rb_statusbar_construct): Don't set border width.
14686         (rb_statusbar_init): Use resize grip.  Don't use
14687         markup.
14688         (set_statusbar_tooltip, unset_statusbar_tooltip) 
14689         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
14690         Connect tooltips for actions.
14691         (rb_statusbar_sync_status): Push new message to statusbar.
14692         (rb_statusbar_set_progress): Don't use markup.
14693         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
14694         flag here since it prevents actually showing or hiding.
14695         (rb_statusbar_sync_with_source): Push new message to statusbar.
14697 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14699         * daapsharing/rb-daap-structure.c:
14700         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
14701         around debugging definition.
14703 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14704         
14705         * daapsharing/rb-daap-structure.c:
14706         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
14707         type = version.
14709         * daapsharing/rb-daap-mdns.c/h:
14710         (resolve_cb): Updated mDNS resolve callback to send service-name &
14711         name (read from Machine Name in the TXT data or equal to service-name
14712         if not in TXT).
14714         * daapsharing/rb-daap-source.c:
14715         (rb_daap_source_class_init), (rb_daap_source_set_property), 
14716         (rb_daap_source_get_property), (rb_daap_source_new),
14717         (find_source_by_service_name), (resolve_cb), (browse_cb), 
14718         (stop_resolver), (start_browsing), (stop_browsing), 
14719         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
14720         and added 'host' and 'port' gobject properties.  Updated to use new
14721         mDNS resolve callback sending service-name & name arguments.
14723 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14725         * daapsharing/rb-daap-mdns.c:
14726         (howl_strerror): New function to report errors from Howl
14727         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
14728         (get_sw_discovery), (get_avahi_client): Better error reporting from
14729         Howl & Avahi.
14731         * sources/rb-daap-source.:
14732         (start_browsing), (stop_browsing): Fixed a bug where browsing would
14733         not get started or stopped in some situations.
14734         
14735 2005-09-12  James Livingston  <jrl@ids.org.au>
14737         * shell/rb-removable-media-manager.c: add a missing include, that
14738         would stop compilation if ipod support wasn't turned on
14740 2005-09-11  James Livingston  <jrl@ids.org.au>
14742         * daapsharing/rb-daap-dialog.c: (encode_base64),
14743         (rb_daap_password_dialog_new_run),
14744         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
14745         it is no broken in to two pieces, and remove a use of a goto
14746         
14747         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
14748         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
14749         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
14750         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
14751         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
14752         memory leaks, and some code style things.
14753         
14754         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
14755         (rb_daap_share_init), (rb_daap_share_set_property),
14756         (rb_daap_share_dispose), (rb_daap_share_new),
14757         (rb_daap_share_get_property): make the DB and the playlist manager
14758         gobject properties.
14759         
14760         (message_add_standard_headers),
14761         (message_set_from_rb_daap_structure), (server_info_cb),
14762         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
14763         (server_cb), (add_db_entry), (db_entry_added_cb),
14764         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
14765         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
14766         style and use CONF_PREFIX in the gconf keys
14767         
14768         * daapsharing/rb-daap-sharing.c: (create_share),
14769         (enable_sharing_changed_cb), (share_name_changed_cb),
14770         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
14771         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
14772         (rb_daap_src_instance_init), (rb_daap_src_dispose),
14773         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
14774         (rb_daap_src_get_property), (rb_daap_src_getcaps),
14775         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
14776         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
14777         (rb_daap_src_get_time): Deal with gconf callbacks where the key
14778         hasn't actually changed, fix some memory leaks, code style and release
14779         gconf notifications when the object is destroyed.
14780         
14781         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
14782         (rb_daap_source_class_init), (rb_daap_source_init),
14783         (rb_daap_source_dispose), (rb_daap_source_set_property),
14784         (rb_daap_source_get_property), (rb_daap_source_new),
14785         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
14786         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
14787         (rb_daap_sources_init), (rb_daap_sources_shutdown),
14788         (rb_daap_source_activate), (rb_daap_source_disconnect),
14789         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
14790         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
14791         release gconf notifications, handle gconf callbacks where the key
14792         hasn't changed, make "real name" and "password protected" gobject
14793         properties, fix some code style and fix a memory leak.
14795 2005-09-11  James Livingston  <jrl@ids.org.au>
14797         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14799         * shell/rb-playlist-manager.c:
14800         (rb_playlist_manager_save_playlists),
14801         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
14802         when we aren't supposed to. (Closes bug 315886)
14804 2005-09-11  James Livingston  <jrl@ids.org.au>
14806         * shell/rb-removable-media-manager.c:
14807         (rb_removable_media_manager_class_init),
14808         (rb_removable_media_manager_init),
14809         (rb_removable_media_manager_dispose),
14810         (rb_removable_media_manager_set_property),
14811         (rb_removable_media_manager_get_property),
14812         (rb_removable_media_manager_new),
14813         (rb_removable_media_manager_load_media),
14814         (rb_removable_media_manager_volume_mounted_cb),
14815         (rb_removable_media_manager_volume_unmounted_cb),
14816         (rb_removable_media_manager_mount_volume),
14817         (rb_removable_media_manager_unmount_volume),
14818         (rb_removable_media_manager_source_deleted_cb),
14819         (rb_removable_media_manager_append_media_source),
14820         (rb_removable_media_manager_set_uimanager),
14821         (rb_removable_media_manager_eject_medium_cb),
14822         (rb_removable_media_manager_cmd_eject_medium):
14823         * shell/rb-removable-media-manager.h:
14824         * sources/rb-removable-media-source.c:
14825         (rb_removable_media_source_class_init),
14826         (rb_removable_media_source_init),
14827         (rb_removable_media_source_dispose),
14828         (rb_removable_media_source_set_property),
14829         (rb_removable_media_source_get_property), (impl_get_pixbuf),
14830         (impl_delete_thyself):
14831         * sources/rb-removable-media-source.h: Add the four files that I
14832         somehow managed not to add to cvs in the last commit. Oops.
14834 2005-09-11  James Livingston  <jrl@ids.org.au>
14836         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
14837         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
14838         
14839         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14840         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
14841         removable-media-manager on startup, and handle creation of sources.
14842         
14843         * sources/rb-ipod-source.h:
14844         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
14845         (rb_ipod_source_init), (rb_ipod_source_constructor),
14846         (rb_ipod_source_dispose), (rb_ipod_source_new),
14847         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
14848         the iPod source over to the removable media framework.
14849         
14850         * sources/rb-library-source.c: (paned_size_allocate_cb),
14851         (rb_library_source_get_paned_key): fix a potential bug is a
14852         library-derived source doesn't have a paned-key
14854 2005-09-11  Bastien Nocera  <hadess@hadess.net>
14856         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
14857         mp3 when we can't get the suffix of a file (Closes: #315941)
14859 2005-09-10  James Livingston  <jrl@ids.org.au>
14861         * configure.ac: fix the mdns tests, so that it doesn't complain about
14862         not finding one, if daap support isn't being compiled in
14864 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
14866         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
14868         * daapsharing/rb-daap-dialog.c:
14869         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
14870         HIG compliancy & images.
14872         * daapsharing/rb-daap-mdns.c:
14873         (browse_cb), (resolve_cb): Better detection of local services.  
14874         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
14875         Howl's limitations.  Fix the way collision handling is done under
14876         Avahi.
14878         * daapsharing/rb-daap-share.c:
14879         (publish_cb): Better name collision handling (at least for Avahi).
14881 2005-09-10  James Livingston  <jrl@ids.org.au>
14883         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
14884         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
14885         preferences more HIG compliant (Closes #315889)
14886         
14887         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
14888         list of files to be translated
14890 2005-09-10  James Livingston  <jrl@ids.org.au>
14892         * configure.ac: fix it so that --enable-daap=no works
14893         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
14894         uninstalled
14896 2005-09-10  James Livingston  <jrl@ids.org.au>
14898         Patch from Christophe Fergeau <teuf@gnome.org>
14900         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
14901         the ipod code.
14903 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14904         * README.daap: Updating documentation
14906 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14907         * AUTHORS: Added myself.
14909         * daapsharing/rb-daap-connection.c:
14910         (connection_login), (rb_connection_new): Reorganized password
14911         handling.
14913         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
14915         * shell/rb-shell.c:
14916         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
14918         * sources/rb-daap-source.c:
14919         (rb_daap_source_activate): Better error handling when we are unable to
14920         connect.
14921         
14922 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14923         * README.daap: Fixed some terminology.
14925         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
14926         New --with-mdns=auto|howl|avahi flag to specify.
14928         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
14929         name collision dialogs.
14931         * daapsharing/rb-daap-connection.c:
14932         (connection_get_password), (build_message), (http_get)
14933         (connection_login): Ask for & use a password if the share demands it.
14935         * daapsharing/rb-daap-connection.h: Changed prototype of
14936         rb_daap_connection_new.
14937         
14938         * daapsharing/rb-daap-mdns.c: 
14939         (resolve_cb): Better detection of your own music share so it doesn't 
14940         appear in the sourcelist.
14942         * daapsharing/rb-daap-share.c:
14943         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
14944         that start on any available port.
14946         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
14948         * sources/rb-daap-source.c:
14949         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
14950         (browse_cb): Handle passworded shares. Resolve the host immediately
14951         instead of when activated.
14952         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
14953         (rb_daap_source_new): New GConf keys for UI state.
14954         (rb_daap_source_activate): Use RBPlaylistSource instead of
14955         RBDAAPPlaylistSource
14956         
14957         * sources/rb-daap-playlist-source.c/h: Removed
14959         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
14960         if the playlist is local (i.e. not DAAP or iPod).
14961         
14962         * shell/rb-playlist-manager.c:
14963         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
14964         wouldn't get saved if the last playlist hadn't changed.  Only save
14965         local playlists.
14966         
14967 2005-09-09  James Livingston  <jrl@ids.org.au>
14969         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
14970         iPod preferences pane, as it already uses the browser views as the
14971         library.
14973 2005-09-09  James Livingston  <jrl@ids.org.au>
14975         * sources/rb-library-source.c: (rb_library_source_finalize),
14976         (rb_library_source_constructor): fix gconf monitoring of library
14977         preference keys.
14978         * sources/rb-library-source.h: remove declaration of function that
14979         does not exist
14981 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
14983         * player/rb-player-gst.c:
14984         (rb_player_set_time): Fix seeking in daap streams.
14986 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
14988         * data/rhythmbox.schemas: Turn music share browsing on by default.
14990 2005-09-07  James Livingston  <jrl@ids.org.au>
14992         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
14994 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
14995         * player/rb-player-gst.c: 
14996         (rb_player_get_time): Fix for extra << & == that accidentally made
14997         it in.
14999         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
15000         
15001 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15002         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
15003         it in last time.  Sorry.
15005 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15006         
15007         * player/rb-player-gst.c:
15008         (rb_player_get_time): Fix a small crash appearing when
15009         the uri isn't set in the player, but rb_player_get_time() is
15010         still called.
15012         * configure.ac: Also check for libsoup 2.4, which is what ships with
15013         Gnome 2.12.
15015         * po/POTFILES.in: Added music sharing files that have translatable 
15016         strings.
15018         * README.daap: New file explaining "How Music Sharing Works"  
15020 2005-09-06  Bastien Nocera  <hadess@hadess.net>
15022         * daapsharing/.cvsignore: added
15024 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15026         * daapsharing/*: Music sharing library.
15027         
15028         * sources/rb-daap-source.c/h: Music share RBSource.
15029         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
15031         * configure.ac: --enable-daap flag to turn on music sharing. Requires
15032         libsoup and a mutlicast DNS implementation (howl or avahi).
15034         * data/rhythmbox.schemas: New GConf keys for music sharing.
15036         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
15037         source right click menu.
15039         * player/rb-player-gst.c: Changes to properly play & seek in remote
15040         music share files.
15042         * shell/rb-playlist-manager.c/h:
15043         (rb_playlist_manager_get_playlists): New function to get a GList * of
15044         the playlists.
15045         (rb_playlist_manager_save_playlists): Don't save music share playlists
15046         and fixed a GObject reference leak.
15048         * shell/rb-shell.c/h:
15049         (rb_shell_append_source): No longer a local function.  Now takes a
15050         parent RBSource * argument, NULL to append a toplevel source.
15051         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
15052         source (useful for disconnecting from remote music share,
15053         specifically).
15054         (rb_shell_quit): Stop music sharing/browsing.
15055         (rb_shell_playlist_added_cb): Work with tree source structure.
15056         (rb_shell_get_property): "playlist-manager" property accessor.
15057         (rb_shell_class_init): New "playlist-manager" property.
15058         (rb_shell_construor): Append sources as toplevel sources.  Initialize
15059         daap sharing/browsing.
15060         (rb_shell_select_source): Notify source of activation/deactivation.
15062         * shell/rb-shell-prefernces.c: Music sharing preferences.
15064         * sources/rb-source.c/h: New activate, deactivate and disconnect
15065         class functions.  Activate & deactivate are notification style 
15066         functions that will tell a source when it is selected/unselected.
15067         Disconnect can be hooked up to a UI object to disconnect the source.
15069         * sources/rb-sourcelist-model.c:
15070         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
15071         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
15072         append a toplevel source.
15074 2005-09-05  James Livingston  <jrl@ids.org.au>
15076         * rhythmdb/rhythmdb-query-model.c:
15077         (rhythmdb_query_model_entry_changed_cb),
15078         (rhythmdb_query_model_do_reorder): Update the query model's totals if
15079         the duration of filesize of an entry changes.  Emit the row-changed
15080         signals that I forgot to put back in, when I was doing query sorting.
15082         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
15083         out "0 minutes" or "0 bytes".
15085 2005-09-04  James Livingston  <jrl@ids.org.au>
15087         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
15088         remove a leftover bit of the "internal-name" property of sources.
15090 2005-09-03  James Livingston  <jrl@ids.org.au>
15092         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
15093         extraneous debug message
15094         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
15095         crasher would affect any library-derived sources (which was also a
15096         memory leak).
15098 2005-09-02  Colin Walters  <walters@verbum.org>
15100         * configure.ac: Fix sytnax error.
15102         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
15103         code to disable minimization icons - need to figure out
15104         why it doesn't work...
15106 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
15108         * data/glade/song-info-multiple.glade:
15109         * data/glade/song-info.glade:
15110         * widgets/rb-song-info.c: (rb_song_info_constructor):
15111         Add a mnemonic to the newly added "Automatically rate" label
15112         in the properties dialog and use a bold typeface like all the 
15113         other labels in the dialog. (Closes bug 315089)
15115 2005-09-03  James Livingston  <jrl@ids.org.au>
15117         * sources/rb-library-source.c: (rb_library_source_class_init),
15118         (rb_library_source_finalize), (rb_library_source_constructor),
15119         (rb_library_source_set_property), (rb_library_source_get_property),
15120         (impl_get_paned_key), (paned_size_allocate_cb),
15121         (rb_library_source_state_prefs_sync), (impl_show_popup),
15122         (rb_library_source_get_paned_key):
15123         * sources/rb-library-source.h: Allow sources derived from
15124         RBLibrarySource to use different gconf keys for sort order, browser
15125         visibility and browser pane position. Fix a crasher if a derived
15126         source overrides _get_pixbuf.
15128 2005-09-02  Colin Walters  <walters@verbum.org>
15130         * shell/rb-shell.c (rb_shell_set_visibility): Move
15131         hint setting which seems to avoid races more.
15132         
15133 2005-09-03  James Livingston  <jrl@ids.org.au>
15135         * shell/rb-shell.c: fix compilation with iPod support enabled
15136         
15137 2005-09-02  Colin Walters  <walters@verbum.org>
15139         * shell/rb-shell.c (struct RBShellPrivate): Add
15140         idle_hide_mainwindow_id.
15141         (rb_shell_constructor): Move taskbar skipping hint into
15142         rb_shell_set_visibility.
15143         (idle_hide_mainwindow): New function.
15144         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
15145         racy hack to avoid rb appearing in taskbar when minimized.
15147 2005-09-01  Colin Walters  <walters@verbum.org>
15149         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
15151         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
15152         from gtkstatusicion.c.
15154         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
15156         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
15157         TrayShowWindow entry.
15158         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
15159         (rb_tray_icon_constructor): Create action group here.
15160         (rb_tray_icon_finalize): Destroy action group.
15161         (rb_tray_icon_set_property): Don't take an action group.
15162         (rb_tray_icon_new): Ditto.
15163         (tray_popup_position_menu): Some mostly boilerplate code
15164         to position menu.
15165         (rb_tray_icon_button_press_event_cb): Position menu.
15166         (rb_tray_icon_get_geom): New function used for the shell
15167         to set minimization hints.
15169         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
15171         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
15172         (struct RBShellPrivate): Change visible to iconified.
15173         (set_icon_geometry): New function from Søren Sandmann to
15174         tell Metacity where to draw the minimization animiation.
15175         (rb_shell_window_state_cb): Update iconified.
15176         (rb_shell_get_visibility): New function to say whether
15177         or not we're currently visible.
15178         (rb_shell_set_visibility): Update to minimize to
15179         tray or present as appropriate.
15180         (rb_shell_window_delete_cb): On window close, just
15181         minimize to tray if we're deleted.
15182         (rb_shell_set_window_title): Kill old notification code.
15183         (rb_shell_toggle_visibility): Nwe function.
15184         (rb_shell_cmd_toggle_visibility): Call it.
15185         (rb_shell_constructor): Skip the taskbar.
15186         (tray_destroy_cb): Better debugging.
15187         
15188 2005-09-01  Colin Walters  <walters@verbum.org>
15190         * data/ui/rhythmbox-ui.xml: Add MusicClose.
15192         * configure.ac: Enable bonobo by default.
15193         
15194 2005-09-01  Colin Walters  <walters@verbum.org>
15196         * configure.ac: Default to old art.  Add macros subdir.
15198         * Makefile.am (SUBDIRS): Add macros.
15200         * macros/Makefile.am: New.
15201         
15202 2005-09-01  Colin Walters  <walters@verbum.org>
15204         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
15205         rb-shell-player.xml.
15207         * remote/dbus/rb-remote-dbus.h: Deleted.
15208         
15209         * remote/dbus/Makefile.am: Delete all the junk, just dist
15210         rb-print-playing.py and rb-set-rating.py.
15212         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
15214         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
15216 2005-09-02  James Livingston  <jrl@ids.org.au>
15218         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
15219         file from cvs
15221         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
15222         (rb_shell_constructor): Patches from Jonathan Matthew
15223         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
15224         a crash when using "browse this artist".
15226 2005-08-31  Colin Walters  <walters@verbum.org>
15228         * configure.ac: Add --with-old-art configure switch.  Also
15229         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
15230         but it doesn't work.
15232         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
15233         Don't use eel_create_colorized_pixbuf for new art.
15234         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
15236         * data/art-clearlooks: New artwork.
15237         
15238 2005-08-31  Colin Walters  <walters@verbum.org>
15240         * shell/main.c (main): Fix Bastien's commit to continue to focus
15241         the window with GTK+ 2.8 at least.
15242         
15243 2005-08-31  Colin Walters  <walters@verbum.org>
15245         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
15246         is already loaded.
15248         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
15250 2005-08-31  Bastien Nocera  <hadess@hadess.net>
15252         * README: remove mentions of the xine-lib backend
15253         * shell/main.c: (main): make it compilable with gtk+ < 2.8
15255 2005-08-30  Colin Walters  <walters@verbum.org>
15257         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
15258         Make non-visible sources insensitive.
15259         
15260 2005-08-30  Colin Walters  <walters@verbum.org>
15262         * shell/rb-shell.c: Don't use GConf for selected source; it's
15263         confusing to have the selected source change after startup,
15264         and since we don't save other things it's not worth saving this.
15266         * sources/rb-playlist-source.c:
15267         * sources/rb-library-source.c:
15268         * sources/rb-iradio-source.c:
15269         * sources/rb-ipod-source.c: Delete internal-name property usage.
15270         * sources/rb-source.c: Delete internal-name property.
15272         * data/rhythmbox.schemas: Delete selected_source.
15273         
15274 2005-08-30  Colin Walters  <walters@verbum.org>
15276         * sources/rb-sourcelist.c: Make playing source bold instead of
15277         displaying a pixbuf; it's much less ugly.
15278         
15279 2005-08-30  Colin Walters  <walters@verbum.org>
15281         * sources/rb-source.c:
15282         * sources/rb-source.h: New virtual method try_playlist.
15284         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
15285         impl_try_playlist.
15286         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
15287         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
15288         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
15289         need to.
15290         (stations_view_drag_data_received_cb): Don't check for iradio uris;
15291         in theory we should though...
15293         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
15294         list in rb_shell_construct now.
15295         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
15296         RBiPodSource.
15297         (rb_shell_constructor): Create library, iradio, ipod here.
15298         (rb_shell_source_deleted_cb): Use source directly instead of
15299         indirecting through type.
15300         (rb_shell_sync_selected_source): Ditto.
15301         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
15302         from the type instead of special-casing.
15303         (rb_shell_guess_type_for_uri) 
15304         (rb_shell_add_uri)
15305         (handle_one_uri_with_possible_metadata): New functions.
15306         (rb_shell_load_uri): Refactor to allow loading playlists again,
15307         also use other URI infrastructure.
15309         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
15310         (rb_shell_player_error): Always set entry error on error, instead
15311         of depending on EOF behavior.
15313         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
15314         to just invoke rb_shell_add_uri.
15315         (rb_playlist_manager_parse_file): Return error instead of tossing
15316         up dialog box directly.
15317         (load_playlist_response_cb): Display error here.
15318         (add_uri_to_playlist): Delete.
15319         (handle_playlist_entry_into_playlist_cb): Renamed to
15320         handle_playlist_entry_cb.
15322         * shell/rb-playlist-manager.h: Add error, update prototype.
15324         * lib/rb-file-helpers.c:
15325         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
15327 2005-08-29  Colin Walters  <walters@verbum.org>
15329         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
15330         if entry already exists.  Use rhythmdb_entry_set_uninserted.
15332         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
15333         needlessly duping string, and use rhythmdb_entry_set_uninserted.
15334         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
15336         * shell/rb-shell.h (enum RBShellError): Add some more errors.
15337         Prototype rb_shell_set_song_property.
15339         * shell/rb-shell.xml: Export setSongProperty.
15341         * shell/rb-shell.c (rb_shell_set_song_property): New function.
15342         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
15343         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
15345         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
15346         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
15347         want to notify of the change.
15348         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
15350         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
15351         logic error; idle functions would be enqueued for each set.
15352         (rhythmdb_entry_set): Fix assertion logic error.
15354         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
15355         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
15356         Return if the entry already exists.
15357         
15358 2005-08-29  Colin Walters  <walters@verbum.org>
15360         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
15361         "inserted" member which we use to keep track of
15362         whether or not an entry is in the DB.  Prototype
15363         rhythmdb_entry_set_uninserted.
15365         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
15366         flag.
15367         (rhythmdb_entry_insert): Assert entry is not already inserted.
15368         (rhythmdb_process_metadata_load): Update to call _set_uninserted
15369         just after creating entry.
15370         (rhythmdb_entry_set): Document, and fail on uninserted entries.
15371         (rhythmdb_entry_set_nonotify): Ditto.
15372         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
15373         entries.
15374         (rhythmdb_entry_set_internal): Change notify flag to
15375         notify_if_inserted.  Also move notification after assertions.
15377         Update all existing callers of rhythmdb_entry_set_internal
15378         to give TRUE for notify_if_inserted; this should be what
15379         we want but may be an efficiency hit.
15380         
15381 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15383         * shell/rb-shell-player.c: (rb_shell_player_init),
15384         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
15385         (rb_shell_player_set_playing_source_internal),
15386         (rb_shell_player_sync_with_selected_source): Notify the player when an
15387         entry has updated the title, album or artist field, and resync the big
15388         display.
15389         
15390         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15391         * sources/rb-library-source.c: (rb_library_source_class_init),
15392         (impl_get_config_widget):
15393         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
15394         * sources/rb-source.c:
15395         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
15396         get_album functions in rb-source and adapted other sources accordingly.
15397         
15398 2005-08-29  Colin Walters  <walters@verbum.org>
15400         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
15401         signal_change member.
15402         (threadsafe_entry_set): New function.
15403         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
15404         (rhythmdb_entry_set_nonotify): New function; just call
15405         threadsafe_entry_set with FALSE.
15406         (rhythmdb_entry_set_internal): Take a notify flag; if true
15407         add the change to our pending set.
15409         Also update all internal callers of rhythmdb_entry_set_internal
15410         to pass FALSE.  Some of these may be bugs however and need to
15411         pass TRUE...
15413         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
15414         rhythmdb_entry_set, and rename rhythmdb_entry_set to
15415         rhythmdb_entry_set_nonotify.
15417         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
15418         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
15420         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
15422         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
15423         * sources/rb-source.c (rb_source_update_play_statistics): 
15424         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
15425         * sources/rb-ipod-source.c (entry_set_string_prop) 
15426         (load_ipod_db_idle_cb): 
15427         * shell/rb-shell.c (rb_shell_set_rating_impl): 
15428         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
15429         (info_available_cb): 
15430         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
15431         (rb_station_properties_dialog_sync_entries): 
15432         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
15434         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
15435         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
15436         
15437 2005-08-29  Colin Walters  <walters@verbum.org>
15439         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
15441         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
15442         linking insanity.
15444         * widgets/rb-header.c (sanitize_string): New function, extracted
15445         from old info_url.  Be sure to always strip the string.
15446         (info_url): Rewrite to take artist/album, and generate a sane
15447         URL for them from last.fm, which is better than allmusic.com in
15448         that they support Rhythmbox, and have a *SANE* URL scheme.
15449         (artist_info_url, album_info_url): Delete.
15450         (rb_header_sync): Use info_url.
15452 2005-08-29  James Livingston  <jrl@ids.org.au>
15454         * sources/rb-source.c: (rb_source_search): Check to ensure that this
15455         is implemented before calling it. Many sources don't implement the
15456         method.
15458 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
15460         * data/glade/create-playlist.glade:  Cleanup the layout,
15461         and add a few more mnemonics.
15462         * shell/rb-playlist-manager.c:
15463         (rb_playlist_manager_cmd_load_playlist),
15464         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
15465         capitalization for window titles.
15466         * widgets/rb-query-creator-properties.c: Add mnemonics
15467         to checkbutton labels.
15468         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
15469         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
15471 2005-08-28  Colin Walters  <walters@verbum.org>
15473         * data/rhythmbox.schemas: Delete search_text for library
15474         and iradio; this isn't a persistent value anymore.
15475         Closes #313757.
15476         
15477         * sources/rb-source.h:
15478         * sources/rb-source.c: Delete impl_can_search.
15480         * sources/rb-iradio-source.c: Delete search_text usage.
15481         * sources/rb-library-source.c: Ditto.
15483         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
15484         search when source is set, and just do rb_source_search in
15485         rb_source_header_search_cb.
15487         * shell/rb-shell.c (rb_shell_append_source): Don't
15488         initiate search.
15490         * shell/Makefile.am: Don't dist dashboard.c.
15492 2005-08-28  Colin Walters  <walters@verbum.org>
15494         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
15495         
15496 2005-08-28  Colin Walters  <walters@verbum.org>
15498         * data/org.gnome.Rhythmbox.service.in: New.
15500         * data/Makefile.am: Install service file.
15502         * configure.ac: Define DBUS_SERVICES_DIR.
15504         * autogen.sh: Set ACLOCAL_FLAGS.
15506         * macros/acinclude.m4: New.
15507         
15508 2005-08-28  Colin Walters  <walters@verbum.org>
15510         Initial patch from Jonathan Matthew; closes 313684.
15512         * rhythmdb/rhythmdb-tree.c:
15513         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
15514         (save_entry): Return on error.
15515         (rhythmdb_tree_save): Handle error when saving the
15516         db; additionally, handle errors from fclose and unlink,
15517         and print error too.
15519 2005-08-28  Colin Walters  <walters@verbum.org>
15521         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
15522         extra _.
15523         
15524 2005-08-28  Colin Walters  <walters@verbum.org>
15526         * configure.ac: Change iPod support to --with-ipod;
15527           automatically enable it if we have HAL.  Try to
15528           support both HAL 0.5 and HAL 0.2.  Break out
15529           totem-plparser into its own check so later we
15530           can do version tests there too.
15531           Kill dashboard support.
15532         
15533         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
15534         to support HAL > 0.5, but preserve the old code for HAL < 0.5
15535         Closes #310017.
15536         
15537         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
15538         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
15540         * sources/Makefile.am: Also handle
15541         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
15543         * shell/dashboard.c: Delete; someone should just write a little
15544         python shim which lists on the D-BUS interface and writes the
15545         stuff to Dashboard.  Even better Dashboard should be ported
15546         to D-BUS and do the listening itself, perhaps on an abstract
15547         "org.gnome.MusicPlayer" interface or something.
15549         * shell/rb-shell.c: Kill dashboard support.
15551 2005-08-28  Colin Walters  <walters@verbum.org>
15553         * remote/dbus/rb-print-playing.py: New file.
15555 2005-08-28  Colin Walters  <walters@verbum.org>
15557         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
15558         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
15560         * shell/rb-shell-player.h:
15561         * shell/rb-shell-player.c: Add playing-uri-changed signal.
15562         * shell/rb-shell-player.xml: Export it.
15564         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
15565         (rb_shell_error_quark): New.
15567         * shell/rb-shell.h: Prototype.  Also add RBShellError.
15568         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
15569         
15570 2005-08-28  Colin Walters  <walters@verbum.org>
15572         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
15573         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
15574         bonobo_unlock.
15575         (rb_remote_bonobo_preinit): Lock setting moved here.
15576         (rb_remote_bonobo_init): From here.
15578         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
15579         Also invoke handle_cmdline in the right place.
15580         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
15581         GFunc.
15583 2005-08-28  James Livingston  <jrl@ids.org.au>
15585         * NEWS: keep the NEWS file up to date, so we don't have to do it all
15586         when 0.9.1 comes around.
15588 2005-08-28  James Livingston  <jrl@ids.org.au>
15590         * iradio/rb-new-station-dialog.c:
15591         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
15592         bug 314477.
15594 2005-08-28  James Livingston  <jrl@ids.org.au>
15596         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15598         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
15599         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
15600         is a song is longer than 60 minutes. Closes bug 313311.
15602 2005-08-27  James Livingston  <jrl@ids.org.au>
15604         * data/glade/create-playlist.glade:
15605         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
15606         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
15607         "minutes" as an option in the playlist limit menu.
15609         * rhythmdb/rhythmdb-query-model.c:
15610         (rhythmdb_query_model_class_init),
15611         (rhythmdb_query_model_set_property),
15612         (rhythmdb_query_model_get_property),
15613         (rhythmdb_query_model_update_limited_entries): Allow query models to
15614         have a time limit
15615         
15616         * shell/rb-playlist-manager.c:
15617         (rb_playlist_manager_set_automatic_playlist),
15618         (rb_playlist_manager_cmd_edit_automatic_playlist):
15619         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
15620         (rb_playlist_source_get_query), (impl_receive_drag),
15621         (rb_playlist_source_new_from_xml),
15622         (rb_playlist_source_save_to_xml),
15623         (rb_playlist_source_songs_sort_order_changed_cb),
15624         (rb_playlist_source_do_query):
15625         * sources/rb-playlist-source.h:
15626         * widgets/rb-query-creator.h: Allow playlists to be limited by time
15628 2005-08-27  James Livingston  <jrl@ids.org.au>
15630         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
15632         * configure.ac:
15633         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
15634         non-standard location. Closes bug 314640.
15636 2005-08-26  Colin Walters  <walters@verbum.org>
15637         
15638         Patch from Olivier Blin <oblin@mandriva.com>
15640         * widgets/eggnotificationbubble.c (draw_bubble): 
15641         Handle extreme-left case as well.
15642         
15643 2005-08-26  Colin Walters  <walters@verbum.org>
15645         * shell/rb-shell.c (idle_save_state): Don't do this.
15646         (rb_shell_construct): Remove idle calls to idle_save_state.
15647         We should save the playlists automatically when they're
15648         modified.
15649         (rb_shell_load_uri): Don't try to re-stat entry if it already
15650         exists.
15652         * shell/rb-shell-player.c: Keep track of entry we are attempting
15653         to play.
15654         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
15655         Don't double-free error.
15656         (rb_shell_player_play_entry): Signal errors.
15657         (rb_shell_player_entry_activated_cb): Ditto.
15658         (rb_shell_player_property_row_activated_cb): Ditto.
15659         (rb_shell_player_set_playing_source_internal): Unset attempted
15660         playing entry.
15661         (rb_shell_player_error): Refactor to be usable both sync and
15662         async.  Handle case where displayed entry differs from entry.
15663         (error_cb): Move GDK locking here.
15665         * shell/main.c (main): Drop most commandline arguments for D-BUS;
15666         people can just use dbus-send or python.  We only support focusing
15667         and loading files.
15668         (load_uri_args): New function, extracted from handle_cmdline.
15669         (dbus_load_uri, bonobo_load_uri): New functions.
15671         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
15672         appropriate.
15674         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
15675         * remote/dbus/rb-remote-dbus.c: Deleted.
15677         * player/rb-player-gst.c: Clear any pending idle handlers when we
15678         close the player.  Signal errors generated during open/play etc
15679         as synchronous errors.
15681         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
15682         
15683 2005-08-26  Colin Walters  <walters@verbum.org>
15685         * shell/rb-shell.c (rb_shell_present): Try harder.
15687 2005-08-26  Colin Walters  <walters@verbum.org>
15689         * shell/rb-shell.c (rb_shell_present): Try to handle
15690         GTK_MINOR_VERSION < 8.
15692 2005-08-26  James Livingston  <jrl@ids.org.au>
15694         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
15695         <pbrobinson@gmail.com>
15697 2005-08-26  Colin Walters  <walters@verbum.org>
15699         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
15701 2005-08-25  Colin Walters  <walters@verbum.org>
15703         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
15704         Delete.
15705         (rb_shell_player_do_next_with_rating): Move back into
15706         rb_shell_player_do_next.
15707         (rb_shell_player_entry_activated_cb): Remove call to
15708         rb_shell_player_auto_adjust_rating.
15709         (do_next_idle): Just call rb_shell_player_do_next.
15711         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
15713 2005-08-25  Colin Walters  <walters@verbum.org>
15715         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
15716         before gtk_window_present_with_time.
15717         
15718 2005-08-25  Colin Walters  <walters@verbum.org>
15720         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
15721         default.
15723         * shell/rb-shell.c (rb_shell_constructor): Adapted from
15724         rb_shell_construct.  This is so we only have to do g_object_new.
15725         (rb_shell_get_player): New function.
15726         (rb_shell_get_player_path): Ditto.
15727         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
15728         
15729         * shell/rb-shell.h: Prototype them.
15731         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
15732         export over D-BUS.
15733         (reemit_playing_signal): New function.
15734         (rb_shell_player_open_playlist_location): Use return values from
15735         rb_player_open, rb_player_close, etc. instead of checking "error".
15736         Return a gboolean on failure.
15737         (rb_shell_player_open_entry): Just open entry location, don't
15738         print to stderr.
15739         (rb_shell_player_play): Handle retval from rb_player_play.  Return
15740         a gboolean.
15741         (do_next_idle): Move logic for handling of end of playlist here.
15742         (rb_shell_player_set_playing_entry): Take a GError, return a
15743         gboolean.  Update to use gboolean return values.
15744         (rb_shell_player_do_previous): Delete lots of crazy duplicate
15745         logic.  Signal an error on end of playlist.  Also signal error if
15746         we're not playing.  Move heuristic for replaying the song into
15747         rb_shell_player_cmd_previous.
15748         (rb_shell_player_do_next_with_rating): Signal error on end of
15749         playlist.
15750         (rb_shell_player_do_next): Return errors.
15751         (rb_shell_player_cmd_previous): Heuristic for restarting song
15752         moved here; the idea is you generally only want that from the GUI.
15753         (rb_shell_player_cmd_play): Handle error.
15754         (rb_shell_player_playpause): Signal errors.
15755         (filter_mmkeys): Use rb_shell_player_cmd_previous and
15756         rb_shell_player_cmd_next in favor of the internal _do functions.
15757         
15758         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
15759         errors.  Update prototypes for above changes.
15761         * shell/main.c: More tightly integrate D-BUS; register various
15762         major singleton objects here.  Fix handle_cmdline so we only
15763         process extra arguments, not every argument.
15765         * shell/Makefile.am: Generate D-BUS glue headers.
15767         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
15768         into shell/main.c.  Now this file just acts as a client library.
15769         Not heavily tested.
15771         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
15772         Moved here.
15773         (rb_remote_bonobo_init): Move long CORBA rant here along with
15774         setting of lock functions.
15776         * player/rb-player-gst.c (rb_player_construct)
15777         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
15778         on error.
15780         * player/rb-player.h: Update prototypes.
15782         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
15783         rb-remote-bonobo.c.
15784         (rb_threads_init): Don't set gdk lock functions here.
15786 2005-08-25  James Livingston  <jrl@ids.org.au>
15788         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15790         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
15791         * lib/rb-tree-dnd.h:
15792         * rhythmdb/rhythmdb-property-model.c:
15793         (rhythmdb_property_model_class_init),
15794         (rhythmdb_property_model_drag_source_init),
15795         (rhythmdb_property_model_iter_parent),
15796         (rhythmdb_property_model_row_draggable),
15797         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
15798         (rhythmdb_property_model_drag_data_get),
15799         (rhythmdb_property_model_enable_drag):
15800         * rhythmdb/rhythmdb-property-model.h:
15801         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
15802         (rb_playlist_manager_set_property), (append_new_playlist_source),
15803         (rb_playlist_manager_save_playlists):
15804         * shell/rb-shell.c: (rb_shell_construct),
15805         (sourcelist_drag_received_cb):
15806         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15807         * sources/rb-playlist-source.c: (impl_receive_drag):
15808         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
15809         (rb_sourcelist_model_drag_dest_init),
15810         (rb_sourcelist_model_set_dnd_targets),
15811         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
15812         (rb_sourcelist_model_row_drop_position),
15813         (rb_sourcelist_model_get_drag_target),
15814         (rb_sourcelist_model_drag_data_get):
15815         * sources/rb-sourcelist-model.h:
15816         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
15817         (rb_sourcelist_init), (rb_sourcelist_get_property),
15818         (rb_sourcelist_selection_changed_cb):
15819         * sources/rb-sourcelist.h:
15820         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
15821         improve drag-n-drop support. Allow dragging of item from property
15822         views to the source list, to create new automatic playlists. Allow
15823         playlist re-ordering. Fix dragging from Rhythmbox to other
15824         applications. (Closes bug 147337)
15826 2005-08-24  Colin Walters  <walters@verbum.org>
15828         Patch from Olivier Blin <oblin@mandriva.com>
15830         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
15831         correctly in the case where the window is next to monitor edge.
15833 2005-08-24  James Livingston  <jrl@ids.org.au>
15835         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
15836         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
15837         a gobject property to get the query model that backs the playlist.
15839 2005-08-24  James Livingston  <jrl@ids.org.au>
15841         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
15842         (handle_playlist_entry_into_playlist_cb),
15843         (rb_playlist_manager_playlist_entries_changed): Disable the "create
15844         audio cd" menu item when a non-playlist source is selected, or the
15845         playlist is empty. (Closes Bug 313253)
15847 2005-08-24  James Livingston  <jrl@ids.org.au>
15849         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
15850         Fix the playlist length checkso it doesn't report 0 for automatic
15851         playlists. This was stopping automati playlists being burnt to cd.
15853 2005-08-24  James Livingston  <jrl@ids.org.au>
15855         * configure.ac:
15856         * sources/rb-playlist-source-recorder.c: (burn_cd):
15857         * sources/rb-playlist-source.c:
15858         (rb_playlist_source_songs_sort_order_changed_cb):
15859         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
15860         more warnings that occur when compiling RPMs on Fedora.
15862 2005-08-24  James Livingston  <jrl@ids.org.au>
15864         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
15865         was stopping some distros gcc version compiling.
15867 2005-08-24  James Livingston  <jrl@ids.org.au>
15869         * NEWS:
15870         * data/glade/create-playlist.glade:
15871         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
15872         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
15873         (rhythmdb_query_free), (rhythmdb_query_serialize),
15874         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
15875         * rhythmdb/rhythmdb.h:
15876         * shell/rb-playlist-manager.c:
15877         (rb_playlist_manager_set_automatic_playlist),
15878         (rb_playlist_manager_cmd_edit_automatic_playlist):
15879         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
15880         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
15881         (impl_receive_drag), (rb_playlist_source_new_from_xml),
15882         (rb_playlist_source_save_to_xml),
15883         (rb_playlist_source_songs_sort_order_changed_cb),
15884         (rb_playlist_source_do_query):
15885         * sources/rb-playlist-source.h:
15886         * widgets/Makefile.am:
15887         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
15888         (rb_entry_view_set_sorting_order):
15889         * widgets/rb-query-creator-private.h:
15890         * widgets/rb-query-creator-properties.c:
15891         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
15892         (stringCriteriaGetWidgetData),
15893         (escapedStringCriteriaSetWidgetData),
15894         (escapedStringCriteriaGetWidgetData), (set_rating_score),
15895         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
15896         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
15897         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
15898         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
15899         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
15900         (relativeTimeCriteriaCreateWidget),
15901         (relativeTimeCriteriaSetWidgetData),
15902         (relativeTimeCriteriaGetWidgetData):
15903         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
15904         (rb_query_creator_class_init), (rb_query_creator_constructor),
15905         (rb_query_creator_dispose), (rb_query_creator_set_property),
15906         (rb_query_creator_get_property), (rb_query_creator_load_query),
15907         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
15908         (get_entry_for_property), (rb_query_creator_get_query),
15909         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
15910         (limit_toggled_cb), (lookup_row_by_widget),
15911         (remove_button_click_cb), (append_row),
15912         (get_property_index_from_proptype), (select_criteria_from_value),
15913         (property_option_menu_changed), (create_property_option_menu),
15914         (create_criteria_option_menu), (sort_option_menu_changed),
15915         (setup_sort_option_menu):
15916         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
15917         playlists. The two most notable improvements are 1) adding more
15918         properties to the query creator, making it much easier to add more in
15919         the future, and 2) allow playlists to be sorted, from the query editor
15920         if they gave limits, and by clicking on column headers if they don't.
15922         Files added: widgets/rb-query-creator-private.h,
15923         sources/rb-query-creator-properties.c
15925 2005-08-21  James Livingston  <jrl@ids.org.au>
15927         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
15928         error=NULL. This stops some crashes.
15930 2005-08-19  Colin Walters  <walters@verbum.org>
15932         Patch from Olivier Blin <oblin@mandriva.com>
15934         * widgets/eggnotificationbubble.c (force_window): Support top
15935         orientation.
15936         * widgets/eggnotificationbubble.h: Remove
15937         egg_notification_bubble_force_window from header.
15938         
15939 2005-08-18  James Livingston  <jrl@ids.org.au>
15941         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
15942         with the changes since then.
15944 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
15946         * shell/rb-shell-player.c: (rb_shell_player_init),
15947         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
15948         (rb_shell_player_volume_widget_changed_cb):
15949         * sources/rb-iradio-source.c:
15950         * sources/rb-library-source.c:
15951         * sources/rb-playlist-source.c:
15952         * widgets/Makefile.am:
15953         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
15954         (bacon_volume_button_class_init), (bacon_volume_button_init),
15955         (bacon_volume_button_dispose), (bacon_volume_button_new),
15956         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
15957         (bacon_volume_button_scroll), (bacon_volume_button_press),
15958         (cb_button_timeout), (cb_button_press), (cb_button_release),
15959         (bacon_volume_release_grab), (cb_dock_press),
15960         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
15961         (bacon_volume_scale_new), (bacon_volume_scale_press),
15962         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
15963         * widgets/bacon-volume.h:
15964         * widgets/rb-volume.c:
15965         * widgets/rb-volume.h:
15966           Use BaconVolumeButton (#300867).
15968 2005-08-17  James Livingston  <jrl@ids.org.au>
15970         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
15971         (rhythmdb_process_metadata_load): don't reset the First Seen time
15972         whenever we recheck the metadata.
15974 2005-08-17  James Livingston  <jrl@ids.org.au>
15976         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
15977         temporary workaround to stop crashes when trying to burn an empty
15978         playlist. Doesn't disable the menu item which is the better solution
15979         (Bug 313253).
15981 2005-08-15  James Livingston  <jrl@ids.org.au>
15983         * shell/rb-source-header.c: (rb_source_header_init),
15984         (rb_source_header_sync_control_state),
15985         (rb_source_header_search_activate_cb):
15986         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
15987         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
15988         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
15989         (rb_search_entry_init), (rb_search_entry_searching),
15990         (rb_search_entry_activate_cb):
15991         * widgets/rb-search-entry.h: Move focus to the entry view when user
15992         presses enter in the search box. Patch from Paolo Borelli
15993         <pborelli@katamail.com> (Closes bug 128110)
15995 2005-08-15  James Livingston  <jrl@ids.org.au>
15997         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
15998         (rb_playlist_manager_new_playlist):
15999         * shell/rb-playlist-manager.h:
16000         * shell/rb-shell.c: (rb_shell_construct),
16001         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
16002         the source list to be shown when a new playlist is created. (Closes
16003         bug 161935)
16005 2005-08-15  James Livingston  <jrl@ids.org.au>
16007         * widgets/rb-header.c: (rb_header_init),
16008         (rb_header_set_show_timeline): disable the seek slider, rather than
16009         hiding it, which more closely follows the HIG. (Closes bug 139102)
16011 2005-08-13  Colin Walters  <walters@verbum.org>
16013         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
16014         rb_shell_hidden_notify.
16015         (rb_shell_hidden_notify): Notify if the shell is hidden.
16016         (rb_shell_set_visibility_impl): Debug goo.
16018         * shell/rb-shell.h: Export rb_shell_hidden_notify.
16020         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
16021         when the user clicks on notification.
16023         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
16024         CD burn is complete.
16025         (rb_playlist_source_recorder_finalize): Unref shell.
16026         (rb_playlist_source_recorder_new): Take shell.
16028         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
16029         Pass shell to RBPlaylistSourceRecorder.
16030         
16031 2005-08-13  Colin Walters  <walters@verbum.org>
16033         * lib/rb-thread.c:
16034         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
16035           time to convert.
16037 2005-08-13  Colin Walters  <walters@verbum.org>
16039         * widgets/eggnotificationbubble.h:
16040         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
16041         * widgets/eggtrayicon.c:
16042         * widgets/eggtrayicon.h: Add notification API.
16043         * shell/rb-tray-icon.c:
16044         * shell/rb-tray-icon.h: Add notification API.
16045         * shell/rb-shell.c: Notify on song change.
16047 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16049         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
16050         Correct an inversion of two lines causing NULL to be unreffed
16052 ============ Version 0.9.0
16054 2005-08-10  Bastien Nocera  <hadess@hadess.net>
16056         * configure.ac: 0.9.0, whee!
16057         * NEWS: badly updated
16058         * remote/bonobo/Makefile.am:
16059         * remote/bonobo/rb-remote-bonobo.h:
16060         * shell/Makefile.am:
16061         * shell/main.c: make distcheck fixes