2006-10-27 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
blob06ff3d2e690f9be71cc1c145de993da4e8ecaec4
1 2006-10-27  James Livingston  <doclivingston@gmail.com>
3         * plugins/artdisplay/Makefile.am:
4         * plugins/audioscrobbler/Makefile.am:
5         * plugins/iradio/Makefile.am: fix make clean
7 2006-10-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9         * rhythmdb/rhythmdb-query.c: (rhythmdb_read_encoded_property):
10         Fall back to strtod() if g_ascii_strtod() doesn't work.
12         * rhythmdb/rhythmdb-tree.c: (save_entry_double):
13         Write floating point values using g_ascii_dtostr() to avoid
14         problems with locale-specific representations.  From #353205.
16 2006-10-25  James Livingston  <doclivingston@gmail.com>
18         * plugins/artdisplay/Makefile.am:
19         * plugins/audioscrobbler/Makefile.am:
20         * plugins/iradio/Makefile.am: fix "make distcheck"
22 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
24         patch by: Brian Cameron <brian.cameron@sun.com>
26         * plugins/audiocd/Makefile.am:
27         Link audiocd plugin with libnautilus-burn as required to get it to work
28         on Solaris.  Fixes #363288.
30 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
32         patch by:  Gabor Kelemen  <kelemeng@gnome.hu>
34         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
35         Clarify that we don't submit actual songs to last.fm, just information
36         on what you're listening to.  Fixes #364014.
38 2006-10-24  Bastien Nocera  <hadess@hadess.net>
40         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
41         (bacon_volume_button_class_init), (bacon_volume_button_new),
42         (bacon_volume_key_release), (cb_button_timeout), (cb_button_press),
43         (cb_dock_button_press), (cb_dock_key_release), (cb_dock_key_press),
44         (bacon_volume_scale_value_changed): update from libbacon, to get
45         better accessibility support (Closes: #364637)
47 2006-10-24  James Livingston  <doclivingston@gmail.com>
49         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
51         * configure.ac: fix some typos and leftovers from disabled->enabled
52         changes. Fixes #364217
54 2006-10-23  William Jon McCann  <mccann@jhu.edu>
56         * shell/rb-source-header.c (rb_source_header_init):
57         Don't require source header cells to be homogeneous.
58         Patch from #359188
60 2006-10-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
62         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
63         Pause the pipeline while buffering.  Fixes #358290.
65 2006-10-23  Bastien Nocera  <hadess@hadess.net>
67         * configure.ac: update required libgpod version to avoid crashes
68         when starting up with an iPod connect (Closes: #352972)
69         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path),
70         (hal_udi_is_ipod): remove outdated ifdefs
72 2006-10-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
74         * plugins/Makefile.am:
75         * plugins/power-manager/rb-power-manager-plugin.c:
76         Don't try to build the power-manager plugin with dbus < 0.35.
78 2006-10-22  James Livingston  <doclivingston@gmail.com>
80         patch by: Ed Catmur  <ed@catmur.co.uk>
82         * plugins/artdisplay/Makefile.am:
83         * plugins/artdisplay/artdisplay/__init__.py:
84         * plugins/artdisplay/rhythmbox-missing-artwork.svg: display some
85         placeholder art when none is available, to avoid having the widget pop
86         in and out of existance.
88 2006-10-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
90         * plugins/lyrics/lyrics.py:
91         Set the lyrics window transient for the main window so it can
92         actually be seen in party mode.  Fixes #362981.
94 2006-10-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
96         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
97         * sources/rb-source.c: (rb_source_class_init),
98         (rb_source_can_show_properties), (rb_source_song_properties):
99         * sources/rb-source.h:
100         Only enable the 'properties' item in the 'music' menu if the selected
101         source implements the show_properties method.  Fixes #356485.
103 2006-10-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
105         * shell/rb-shell-player.c:
106         (rb_shell_player_property_row_activated_cb):
107         Take the entry to play from the play order, rather than grabbing the
108         first entry in the query model.  Fixes #362042.
110 2006-10-16  James Livingston  <doclivingston@gmail.com>
112         * shell/main.c: (main): save custom menu accelerators before exiting.
113         Fixed #362300
115 2006-10-13  Ryan P Skadberg  <skadz@stigmata.org>
117         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
118         I HATE adding this patch, but I'm sick of hitting Yes once
119         and hour.  Working around brain-dead podcasts.
121 2006-10-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
123         * plugins/lyrics/lyrics.py:
124         Disconnect the create-song-info handler when deactivated.
125         Fixes #361882.
127 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
129         * widgets/rb-search-entry.c: (rb_search_entry_changed_cb):
130         Reset the style when clearing the search text.  Fixes #361295.
132 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
134         * rhythmdb/rhythmdb-query-model.c:
135         (rhythmdb_query_model_entry_changed_cb):
136         Don't emit entry-prop-changed for hidden signals from chained query
137         models, as the model will also propagate the parent model's
138         entry-prop-changed signal.  Fixes mysteriously unreported crashes.
140 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
142         * sources/rb-ipod-source.c: (generate_ipod_filename):
143         * lib/rb-cut-and-paste-code.c: (rb_make_valid_utf8):
144         * lib/rb-cut-and-paste-code.h:
145         Move eel_make_valid_utf8 to lib/, make the replacement
146         character a parameter.
148         * rhythmdb/rhythmdb.c: (make_access_failed_error),
149         (rhythmdb_execute_multi_stat_info_cb),
150         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_load):
151         When constructing an error message that includes a URI, make sure the
152         URI is valid utf-8.  Fixes #353588.
154 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
156         * player/rb-recorder-gst.c: (rb_recorder_construct),
157         (acb_wave_time):
158         Add an extra audioconvert element to allow endianness conversion on
159         big-endian machines, and fix a few endianness issues in the .wav
160         reading code.  Fixes #355611.
162 2006-10-09  James Livingston  <doclivingston@gmail.com>
164         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
166         * widgets/eggtrayicon.c: (egg_tray_icon_notify): work around a
167         libnotify 0.3.0 bug, as it doesn't handle escaped messages properly.
168         Fixes #357553.
170 2006-10-09  James Livingston  <doclivingston@gmail.com>
172         patch by: Luca Ferretti  <elle.uca@libero.it>
174         * data/glade/song-info-multiple.glade:
175         * data/glade/song-info.glade: Fix a few HIG issues.
177 2006-10-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
179         * plugins/audioscrobbler/rb-lastfm-source.c:
180         (rb_lastfm_source_class_init):
181         Return TRUE from impl_try_playlist so playback starts in a separate
182         thread.
184 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
186         * shell/main.c: (main):
187         Call bind_textdomain_codeset ("gstreamer-0.10", "UTF-8") so we get
188         UTF-8 GStreamer messages.  Fixes #357973.
190 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
192         * shell/rb-shell.c: (rb_shell_constructor):
193         Remove a line that accidentally slipped in from some other universe.
195 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
197         * plugins/audiocd/rb-audiocd-plugin.c: (_delete_cb):
198         Don't remove sources from the hash table while iterating it on
199         shutdown.  Fixes #359583.
201 2006-10-07  James Livingston  <doclivingston@gmail.com>
203         patch from Alex Lancaster  <alexl@users.sourceforge.net>
205         * shell/rb-shell.c: change the keybinding for "Plugins" to not
206         conflict with others. Fixes #355904
208 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
210         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
211         (rhythmdb_query_model_chain),
212         (rhythmdb_query_model_entry_changed_cb),
213         (rhythmdb_query_model_base_entry_prop_changed),
214         (rhythmdb_query_model_base_entry_removed):
215         For chained models, propagate the parent model's entry-prop-changed
216         signal rather than emitting one from the db entry-changed handler.
217         This ensures that when the change filters the entry out of the parent
218         model, property models attached to the child model get the entry
219         change signal before the post-entry-delete signal, so they can
220         decrement the refcount for the right property value.  Fixes #359083.
222 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
224         * plugins/audioscrobbler/Makefile.am:
225         define NULL
227 2006-10-07  James Livingston  <doclivingston@gmail.com>
229         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
230         (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
231         * plugins/audioscrobbler/rb-lastfm-source.c:
232         (rb_lastfm_source_get_playback_uri): work around GStreamer not support
233         hypens in URI schemes.
235 2006-10-06  William Jon McCann  <mccann@jhu.edu>
237         * plugins/iradio/Makefile.am:
238         * plugins/audioscrobbler/Makefile.am:
239         * plugins/cd-recorder/Makefile.am:
240         Don't clean all plugin_DATA.
241         Fixes #360210
243 2006-10-06  James Livingston  <doclivingston@gmail.com>
245         patch from Matt N  <fisxoj@gmail.com>
247         * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
248         (rb_player_gst_bus_cb):
249         * backends/rb-player.c: (rb_player_interface_init),
250         (_rb_player_emit_tick), (_rb_player_emit_event):
251         * backends/rb-player.h: let the backend emit named "events", for
252         things that the core shouldn't know about.
254         * rhythmdb/rhythmdb.h:
255         * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
256         support for streams containing album metadata.
258         * plugins/audioscrobbler/Makefile.am:
259         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
260         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
261         (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
262         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
263         * plugins/audioscrobbler/rb-lastfm-source.c:
264         * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
265         of last.fm streams. From #313049.
267 2006-10-06  James Livingston  <doclivingston@gmail.com>
269         * plugins/magnatune/magnatune/Makefile.am: add a file I missed
270         committing. Oops.
272 2006-10-06  James Livingston  <doclivingston@gmail.com>
274         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
276         * configure.ac:
277         * data/rhythmbox.schemas:
278         * plugins/Makefile.am:
279         * plugins/magnatune/Makefile.am:
280         * plugins/magnatune/magnatune-loading.glade:
281         * plugins/magnatune/magnatune-prefs.glade:
282         * plugins/magnatune/magnatune-purchase.glade:
283         * plugins/magnatune/magnatune.rb-plugin.desktop.in:
284         * plugins/magnatune/magnatune/BuyAlbumHandler.py:
285         * plugins/magnatune/magnatune/MagnatuneSource.py:
286         * plugins/magnatune/magnatune/TrackListHandler.py:
287         * plugins/magnatune/magnatune/__init__.py:
288         * plugins/magnatune/magnatune_circle_small.png:
289         * plugins/magnatune/magnatune_logo_color_small.png:
290         * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
291         play and download tracks from the MagnaTune online music store. From
292         #345783.
294 2006-10-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
296         * lib/rb-proxy-config.c: (rb_proxy_config_init),
297         (rb_proxy_config_dispose), (rb_proxy_config_finalize),
298         (check_auto_proxy_config), (get_proxy_config):
299         Don't crash when eel_gconf_get_string returns NULL.
300         Fixes #359974.
302 2006-10-04  James Livingston  <doclivingston@gmail.com>
304         patch by: Fryderyk Dziarmagowski  <freetz@gmx.net>
306         * plugins/audiocd/Makefile.am: fix the plugin when linking with
307         --as-needed. Fixes #358730
309 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
311         patch by:  William Jon McCann  <mccann@jhu.edu>
313         * sources/rb-iradio-source.c: (playing_source_changed_cb):
314         Fix some stupidity I introduced that caused crashes on shutdown.
315         Fixes #359181.
317 2006-10-02  William Jon McCann  <mccann@jhu.edu>
319         * plugins/audiocd/Makefile.am:
320         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
321         * plugins/iradio/.cvsignore:
322         * plugins/iradio/Makefile.am:
323         * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
324         (impl_deactivate):
325         * plugins/power-manager/.cvsignore:
326         Install missing iradio ui file.  Don't leak ui filename.
327         Fix iradio install dir. Fix audiocd install dir.
328         Remove unused code from audio cd plugin.
330         Fixes #359170
332 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
334         * sources/rb-ipod-source.c: (impl_move_to_trash):
335         Uncomment rhythmdb_entry_move_to_trash call that I accidentally
336         commented out while fixing bug 355235.  Oops.
338 2006-10-03  James Livingston  <doclivingston@gmail.com>
340         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
341         non-unicode warnings to debug statements, since they can occur with
342         slightly broken files.
344         * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
345         * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
346         iradio plugin is disabled and re-enabled.
348 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
350         * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
351         (rhythmdb_entry_podcast_post_get_type):
352         * rhythmdb/rhythmdb.h:
353         * tests/bench-rhythmdb-load.c: (main):
354         Add definitions for some common extra-metadata fields,
355         remove iradio entry type definition, add the concept of entry type
356         categories, define categories for the core entry types.
357         Categories are used to decide if an entry can be copied to a removable
358         device, if it should be reported to audioscrobbler, etc.
360         * shell/Makefile.am:
361         * shell/rb-shell-player.c: (rb_shell_player_class_init),
362         (rb_shell_player_constructor), (rb_shell_player_init),
363         (rb_shell_player_get_property), (open_location_thread),
364         (rb_shell_player_open_location),
365         (rb_shell_player_sync_with_source),
366         (rb_shell_player_set_playing_source_internal), (tick_cb):
367         * shell/rb-shell.c: (construct_widgets), (construct_sources),
368         (rb_shell_player_elapsed_changed_cb):
369         Remove iradio-specific code, use extra metadata fields for streaming
370         title and artist name.
372         * data/ui/rhythmbox-ui.xml:
373         Add a placeholder for 'new ...' menu items.
375         * Makefile.am:
376         * sources/Makefile.am:
377         * configure.ac:
378         * data/rhythmbox.schemas:
379         * plugins/Makefile.am:
380         * plugins/iradio/Makefile.am:
381         * plugins/iradio/iradio-ui.xml:
382         * plugins/iradio/iradio.rb-plugin.desktop.in:
383         * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
384         (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
385         (rb_iradio_plugin_class_init):
386         iradio plugin, enabled and hidden by default.
388         * plugins/audioscrobbler/rb-audioscrobbler.c:
389         (rb_audioscrobbler_song_changed_cb):
390         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
391         * sources/rb-daap-source.c: (rb_daap_source_new):
392         * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
393         Define entry type categories, and use them where appropriate.
395         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
396         (rb_iradio_source_constructor), (rb_iradio_source_new),
397         (impl_get_status), (impl_want_uri), (buffering_cb),
398         (check_entry_type), (streaming_title_request_cb),
399         (streaming_artist_request_cb), (extra_metadata_gather_cb),
400         (info_available_cb), (playing_entry_changed_cb),
401         (playing_source_changed_cb):
402         Move streaming metadata and buffering handling here from
403         rb-shell-player.c.  Emit extra-metadata notify signals when the streaming
404         title or artist changes, and handle request and gather signals for
405         those.
407         * widgets/rb-header.c: (rb_header_class_init),
408         (rb_header_set_property), (rb_header_get_property),
409         (rb_header_new), (append_and_free), (rb_header_sync):
410         * widgets/rb-header.h:
411         Rework to use streaming artist and title extra-metadata.
412         streaming-artist overrides entry artist, and streaming-title means
413         entry title is a stream name, displayed in brackets.
415         * doc/reference/Makefile.am:
416         * doc/reference/rhythmbox.types:
417         Remove iradio stuff from gtk-doc build.
419         Fixed #347097.
421 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
423         patch mostly by: Ed Catmur  <ed@catmur.co.uk>
425         * bindings/python/rhythmdb.defs:
426         * lib/rb-marshal.list:
427         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
428         (rhythmdb_emit_entry_deleted),
429         (rhythmdb_entry_extra_metadata_accumulator),
430         (rhythmdb_entry_request_extra_metadata),
431         (rhythmdb_emit_entry_extra_metadata_notify),
432         (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
433         * rhythmdb/rhythmdb.h:
434         Add signals for dealing with transient metadata outside the set stored
435         in RhythmDBEntry:
436         - entry_extra_metadata_request returns a value for the requested
437           metadata field
438         - entry_extra_metadata_notify notifies observers of a change to an
439           extra metadata field
440         - entry_extra_metadata_gather returns the values of all extra metadata
441           fields
443         * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
444         (rb_shell_player_extra_metadata_cb):
445         Sync the display on extra metadata changes and emit dbus signals when
446         we can marshal the value.
448         * shell/rb-shell.c: (rb_shell_get_song_properties):
449         Implement rb_shell_song_get_properties using
450         rhythmdb_entry_gather_metadata.
452         * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
453         (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
454         * configure.ac:
455         Add GValue marshaller for python (until bug 351072 is fixed)
457         From #345592.
459 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
461         * configure.ac:
462         * data/rhythmbox.schemas:
463         * plugins/Makefile.am:
464         * plugins/power-manager/Makefile.am:
465         * plugins/power-manager/power-manager.rb-plugin.desktop.in:
466         * plugins/power-manager/rb-power-manager-plugin.c:
467         (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
468         (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
469         (playing_changed_cb), (impl_activate), (impl_deactivate):
470         gnome-power-manager integration: inhibit suspend while playing.
471         Fixes #344979.
473 2006-10-02  James Livingston  <doclivingston@gmail.com>
475         update by: Aloriel  <jorge.gonzalez.gonzalez@hispalinux.es>
476         and Alex Lancaster  <alexl@users.sourceforge.net>
478         * help/C/rhythmbox.xml: fix some mispellings and grammer.
479         Fixes #353143, #353146 and #353147.
481 ============ Version 0.9.6
483 2006-10-01  James Livingston  <doclivingston@gmail.com>
485         * configure.ac: bump version to 0.9.6. enable tag-writing and
486         ipod-writing by default
488         * NEWS: update NEWS
490 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
492         patch by:  William Jon McCann  <mccann@jhu.edu>
494         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
495         Use a local GError in case no error pointer pointer is passed in.
496         From bug #358396.
498 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
500         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
501         Don't reference members of freed structures.
503 2006-09-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
505         patch by:  William Jon McCann  <mccann@jhu.edu>
507         * player/rb-recorder-gst.c: (rb_recorder_burn):
508         Drop GDK lock before entering n-c-b.  Fixes #353894?
510 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
512         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
513         (impl_activate):
514         Handle error/hangup conditions on the LIRC connection.  Fixes #358049.
516 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
518         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
519         Call lirc_init before lirc_readconfig so we don't crash if the user's
520         .lircrc file has any mode sections. Fixes #357419.
522 2006-09-24  James Livingston  <doclivingston@gmail.com>
524         * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
525         if we get called twice, as that can happen. Fixes #357214.
527 2006-09-24  James Livingston  <doclivingston@gmail.com>
529         * backends/rb-encoder.h: add "file access" error
531         * lib/rb-file-helpers.c: (rb_dot_dir):
532         * podcast/rb-podcast-manager.c:
533         (rb_podcast_manager_download_file_info_cb): remove directory creation
534         race condition.
536         * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
537         (create_parent_dirs), (rb_encoder_gst_encode): check result of
538         directory creation. Fixes #347743
540 2006-09-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
542         * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
543         Strip trailing whitespace
545 2006-09-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
547         * rhythmdb/Makefile.am:
548         * rhythmdb/rhythmdb-private.h:
549         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
550         (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
551         * rhythmdb/rhythmdb-tree.h:
552         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
553         (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
554         * rhythmdb/rhythmdb.h:
555         Rather than aborting, show an error and refuse to load the database when
556         it appears to come from the future.  From bug #350304.
558 2006-09-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
560         * bindings/python/rhythmdb.override:
561         Make entry_foreach usable.
563 2006-09-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
565         * sources/rb-podcast-source.c: (rb_podcast_source_init):
566         Scale the icon so it matches the rest of the sources.
567         Fixes #351410.
569 2006-09-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
571         * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
572         (rhythmdb_property_model_set_query_model_internal),
573         (rhythmdb_property_model_row_inserted_cb),
574         (rhythmdb_property_model_prop_changed_cb),
575         (rhythmdb_property_model_entry_removed_cb),
576         (rhythmdb_property_model_delete),
577         (rhythmdb_property_model_perform_sync):
578         Use the hash table to track hidden entries, rather than visible
579         entries.  Cuts memory usage fairly significantly.  From bug #347425.
581 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
583         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
584         Patch from Christian Becke to fix compilation with -O3, bug #355945.
586 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
588         * sources/rb-ipod-source.c: (add_rb_playlist),
589         (impl_move_to_trash), (impl_delete_thyself):
590         Delete ipod playlists when the ipod source is deleted.  Fixes #355235.
592         * sources/rb-sourcelist.c: (rb_sourcelist_remove):
593         Make sure we don't leave the sourcelist thinking a deleted source is
594         still playing.  Fixes nothing.
596 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
598         * shell/rb-shell.c:
599         Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
600         'Music->Import Folder' menu item for better icon theme coverage.
601         Fixes #354575.
603 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
605         * rhythmdb/rhythmdb-private.h:
606         * rhythmdb/rhythmdb.c: (rhythmdb_init),
607         (rhythmdb_start_action_thread), (rhythmdb_finalize),
608         (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
609         (rhythmdb_load), (rhythmdb_save_async):
610         Use a limited thread pool for adding URIs to the database.
611         Fixes #352494.
613 2006-09-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
615         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
616         Do something like the previous change, but for gstreamer 0.10
617         this time.  Oops.  Really fixes #349569.
619 2006-09-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
621         * backends/gstreamer/rb-player-gst.c: (error_cb):
622         Ignore 'internal data flow error' messages if we've already got an
623         error for the file.  Fixes #349569.
625 2006-09-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
627         * shell/rb-shell-clipboard.c:
628         (rb_shell_clipboard_playlist_deleted_cb):
629         Rebuild 'add to playlist' menu before removing actions for deleted
630         playlists, and don't unref the action, as we never had a reference on
631         it to begin with.  Fixes #354599.
633 2006-09-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
635         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
636         (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
637         Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
639 2006-09-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
641         * daapsharing/rb-daap-connection.c: (handle_playlists):
642         Reverse the list of playlists on the DAAP server so it ends up in the
643         right order.  Fixes #353926.
645 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
647         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
648         Fully process each code so the LIRC client returns to its normal state
649         when we're done.  Makes LIRC actually work properly for me.
651 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
653         patch by: Ed Catmur  <ed@catmur.co.uk>
655         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
656         (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
657         Don't show unused GdkWindows in SexyIconEntry.  Fixes #353671.
659 2006-09-02  William Jon McCann  <mccann@jhu.edu>
661         patch by: James Livingston <doclivingston@gmail.com>
663         * configure.ac:
664         * data/rhythmbox.schemas:
665         * metadata/Makefile.am:
666         * plugins/Makefile.am:
667         * plugins/audiocd/.cvsignore:
668         * plugins/audiocd/Makefile.am:
669         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
670         * plugins/audiocd/rb-audiocd-plugin.c:
671         (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
672         (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
673         (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
674         (end_cd_drive_monitor), (begin_cd_drive_monitor),
675         (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
676         (rb_audiocd_plugin_playing_uri_changed_cb),
677         (nautilus_burn_drive_get_device),
678         (rb_audiocd_plugin_source_deleted), (create_source_cb),
679         (impl_activate), (_delete_cb), (impl_deactivate):
680         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
681         (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
682         * shell/main.c: (main):
683         * shell/rb-removable-media-manager.c:
684         (rb_removable_media_manager_finalize),
685         (rb_removable_media_manager_load_media),
686         (rb_removable_media_manager_mount_volume),
687         (rb_removable_media_manager_scan):
688         * sources/Makefile.am:
689         * sources/rb-audiocd-source.c:
690         * sources/rb-audiocd-source.h:
691         Make auto CD support a plugin.
693         Fixes #349415.
695 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
697         * daapsharing/rb-daap-connection.c: (handle_song_listing):
698         Add a final rhythmdb_commit to make sure all songs from the share show
699         up in the daap source.  Fixes #353913.
701 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
703         * sources/rb-sourcelist-model.c:
704         (rb_sourcelist_model_drag_data_received),
705         (rb_sourcelist_model_row_drop_possible):
706         Re-enable dragging of a set of tracks to the source list to create a
707         new static playlist.  Fixes #353893.
709 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
711         * widgets/bacon-volume.c: (cb_button_timeout):
712         Actually drop the GDK lock, rather than returning while holding it.
713         Fixes #353895.
715 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
717         * plugins/generic-player/rb-generic-player-source.c:
718         (rb_generic_player_source_constructor),
719         (rb_generic_player_source_get_device_info), (impl_delete_thyself),
720         (rb_generic_player_source_load_songs), (load_playlist_file),
721         (default_load_playlists), (get_hal_context):
722         Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
723         Fixes #353483.
725 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
727         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
728         Canonicalise URIs received from gnome-vfs file monitor.
729         Fixes #353447.
731 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
733         * help/C/rhythmbox.xml: unbreak help build
734         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
735         Unbuffer the IO channel.  Fixes some weirdness for me.
737 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
739         * help/C/rhythmbox.xml:
740         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
741         (impl_activate), (impl_deactivate):
742         Add 'playpause' LIRC command.
744 2006-08-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
746         * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
747         (rb_source_finalize):
748         Remove idle callbacks in dispose, rather than finalize. Fixes crashes
749         when disconnecting generic audio players.
751 2006-08-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
753         patch by: Paolo Borelli  <pborelli@katamail.com>
755         * plugins/rb-python-plugin.c: (rb_python_object_get_type):
756         Fix a small leak.
758 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
760         * backends/gstreamer/rb-player-gst.c:
761         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
762         Don't actually disable the seek bar for non-seekable songs,
763         because we can't reliably tell yet.
765 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
767         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
768         (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
769         (db_entry_deleted_cb), (rb_daap_share_server_start),
770         (rb_daap_share_server_stop):
771         * rhythmdb/rhythmdb-private.h:
772         * rhythmdb/rhythmdb-tree.c: (save_entry):
773         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
774         (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
775         (rhythmdb_entry_get_ulong):
776         * rhythmdb/rhythmdb.h:
777         Give db entries a numeric ID property, replacing the daap server's
778         entry->id map.  From #347665.
780 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
782         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
783         * widgets/rb-header.c: (rb_header_class_init),
784         (rb_header_set_property), (rb_header_get_property),
785         (rb_header_set_playing_entry), (rb_header_sync),
786         (rb_header_sync_time):
787         * widgets/rb-header.h:
788         Add a 'seekable' property on RBHeader, and use it to make the seek bar
789         insensitive when the player backend tells us we can't seek in the
790         current song.  From #330410.
792 2006-08-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
794         * widgets/rb-song-info.c: (rb_song_info_update_buttons):
795         Don't try to unref previous/next entries if they aren't there.
796         Fixes #351806.
798 2006-08-15  James Livingston  <doclivingston@gmail.com>
800         * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
801         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
802         mountpoint into a RBRefString and compare equality of those, rather
803         than doign lots of strcmp()s.
805         * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
806         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
807         status notification as well as the visibility update in an idle
808         callback. Makes it take much less time to update after a volume
809         mount/unmount event.
811 2006-08-15  James Livingston  <doclivingston@gmail.com>
813         patch by: Christian Becke  <christianbecke@web.de>
815         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
816         multiple selections in the Import Folder dialog. Fixes #351414.
818 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
820         * shell/rb-shell.c: (construct_widgets):
821         * shell/rb-statusbar.c: (rb_statusbar_class_init),
822         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
823         (rb_statusbar_get_property), (rb_statusbar_new):
824         * shell/rb-statusbar.h:
825         Use the connect-proxy signal from the UI manager, which covers all
826         action groups, rather than just one.  Fixes #351280.
828 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
830         * widgets/rb-library-browser.c: (rebuild_child_model):
831         Fix query model reference counts (bug #349601).
833 2006-08-15  James Livingston  <doclivingston@gmail.com>
835         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
836         Error signals be non-recursive. Fixes a highly-unlikely issue that
837         could have caused #322972.
839 2006-08-14  James Livingston  <doclivingston@gmail.com>
841         * sources/rb-auto-playlist-source.c:
842         (rb_auto_playlist_source_init):
843         * sources/rb-static-playlist-source.c:
844         (rb_static_playlist_source_init):
846 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
848         * sources/rb-browser-source.c:
849         * sources/rb-import-errors-source.c:
850         * sources/rb-iradio-source.c:
851         * sources/rb-library-source.c:
852         * sources/rb-missing-files-source.c:
853         * sources/rb-play-queue-source.c:
854         * sources/rb-playlist-source.c:
855         * sources/rb-podcast-source.c:
856         * sources/rb-source.c:
857         Make entry-type a property on RBSource, rather than on most of its
858         subclasses.  Fixes #347288.
860 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
862         * remote/dbus/rb-client.c: (parse_pattern),
863         (create_rb_shell_proxies), (main):
864         Actually implement %ag and %aG (genre) for --print-playing-format
866 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
868         * lib/rb-debug.c: (rb_debug_real):
869         No point allocating a buffer for the timestamp when we can just put it
870         on the stack.
872 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
874         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
875         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
877 2006-08-11  James Livingston  <doclivingston@gmail.com>
879         * podcast/rb-podcast-manager.c:
880         (rb_podcast_manager_update_synctime): fix accidental commit in the
881         last, which caused a warning.
883 2006-08-11  James Livingston  <doclivingston@gmail.com>
885         * data/rhythmbox.schemas:
886         * podcast/rb-podcast-manager.c:
887         (rb_podcast_manager_update_synctime): change the schema's
888         update-inteval value from 0 to 1, which causes it to update on
889         startup, rather than never. Should fixs #343818.
891 2006-08-11  James Livingston  <doclivingston@gmail.com>
893         * configure.ac:
894         * data/Makefile.am:
895         - data/rhythmbox.desktop.in:
896         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
897         the @VERSION@ can be substituted in. Fix some issues with newer
898         bug-buddy versions. Fixes #348853.
900 2006-08-10  William Jon McCann  <mccann@jhu.edu>
902         * data/rhythmbox.schemas:
903         * plugins/Makefile.am:
904         * plugins/artdisplay/Makefile.am:
905         * plugins/audioscrobbler/Makefile.am:
906         * plugins/cd-recorder/Makefile.am:
907         * plugins/generic-player/Makefile.am:
908         * plugins/ipod/Makefile.am:
909         * plugins/lirc/Makefile.am:
910         * plugins/lyrics/Makefile.am:
911         * plugins/pythonconsole/Makefile.am:
912         * plugins/rb-module.c:
913         * plugins/rb-module.h:
914         * plugins/rb-plugin-manager.c: (configure_button_cb),
915         (plugin_manager_view_cell_cb), (cursor_changed_cb),
916         (plugin_manager_populate_lists), (plugin_manager_set_active),
917         (plugin_manager_toggle_active),
918         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
919         (rb_plugin_manager_finalize):
920         * plugins/rb-plugin-manager.h:
921         * plugins/rb-plugin.c: (rb_get_plugin_paths),
922         (rb_plugin_find_file):
923         * plugins/rb-plugin.h:
924         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
925         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
926         (rb_plugins_engine_init), (rb_plugin_info_free),
927         (load_plugin_module), (rb_plugins_engine_activate_plugin),
928         (rb_plugins_engine_deactivate_plugin),
929         (rb_plugins_engine_plugin_is_active),
930         (rb_plugins_engine_plugin_is_visible),
931         (rb_plugins_engine_plugin_is_configurable),
932         (rb_plugins_engine_configure_plugin),
933         (rb_plugins_engine_get_plugin_name),
934         (rb_plugins_engine_get_plugin_description),
935         (rb_plugins_engine_get_plugin_authors),
936         (rb_plugins_engine_get_plugin_website),
937         (rb_plugins_engine_get_plugin_copyright),
938         (rb_plugins_engine_get_plugin_icon):
939         * plugins/rb-plugins-engine.h:
940         * plugins/rb-python-module.c: (rb_python_module_init_python),
941         (rb_python_module_load), (rb_python_module_unload),
942         (rb_python_module_class_init), (rb_python_module_new),
943         (finalise_collect_cb), (rb_python_shutdown):
944         * plugins/rb-python-module.h:
945         * plugins/rb-python-plugin.c: (call_python_method),
946         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
947         (impl_is_configurable), (rb_python_object_get_type):
948         * plugins/rb-python-plugin.h:
949         * plugins/rb/Makefile.am:
951         Use TRUE/FALSE in schemas to make it easier to read.  Remove
952         spurious whitespace.  Don't use libgnome explicitly.  Replace the
953         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
954         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
955         special case loading of dirs.  Install plugins to subdirectors of
956         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
957         not DATADIR.  Fixes #350352
959 2006-08-10  James Livingston  <doclivingston@gmail.com>
961         * daapsharing/rb-daap-connection.c: (connection_connected),
962         (connection_disconnected), (connection_operation_done):
963         * daapsharing/rb-daap-share.c: (name_collision_cb):
964         * plugins/generic-player/rb-generic-player-source.c:
965         (rb_generic_player_source_load_playlists):
966         * podcast/rb-podcast-manager.c:
967         (rb_podcast_manager_download_entry),
968         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
969         (end_job), (rb_podcast_manager_event_loop):
970         * rhythmdb/rhythmdb-property-model.c:
971         (rhythmdb_property_model_perform_sync):
972         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
973         (rhythmdb_query_model_process_update), (idle_process_update),
974         (rhythmdb_query_model_reapply_query_cb):
975         * shell/rb-play-order.c: (sync_playing_entry_cb):
976         * shell/rb-removable-media-manager.c:
977         (rb_removable_media_manager_load_media):
978         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
979         (rb_shell_clipboard_sync),
980         (rb_shell_clipboard_entryview_changed_cb),
981         (rb_shell_clipboard_entries_changed_cb),
982         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
983         (rebuild_playlist_menu_idle),
984         (rb_shell_clipboard_playlist_added_cb):
985         * shell/rb-shell-player.c: (notify_playing_idle),
986         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
987         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
988         (rb_shell_quit):
989         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
990         * sources/rb-library-source.c: (add_child_sources_idle):
991         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
992         (burn_cd_idle):
993         * sources/rb-source.c: (update_visibility_idle):
994         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
995         (cb_button_press):
996         * widgets/rb-druid.c: (idle_set_sensitive):
997         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
998         take the GDK lock when we should be, from #348588
1000 2006-08-09  James Livingston  <doclivingston@gmail.com>
1002         * rhythmdb/rhythmdb-property-model.c:
1003         (rhythmdb_property_model_get_path),
1004         (rhythmdb_property_model_get_value),
1005         (rhythmdb_property_model_iter_next): don't attempt to verify the
1006         iterator if it's the All value, since it isn't valid. Fixes a
1007         potential crasher.
1009 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1011         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
1012         (rb_podcast_manager_download_file_info_cb),
1013         (rb_podcast_manager_abort_download), (download_info_free),
1014         (download_info_new):
1015         Use gnome_vfs_async_get_file_info to figure out the local filename for
1016         a podcast episode, so we get the filename from the target of any
1017         redirects, rather than the source.  When creating the GnomeVFSURI, hide
1018         the query string, then append it later, to stop gnome-vfs from
1019         converting 'http://' to 'http:/'.  If the local filename ends with the
1020         query string, remove it.  Fixes #330766 and #321991.
1022 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1024         * sources/rb-library-source.c: (impl_want_uri):
1025         * sources/rb-static-playlist-source.c: (impl_want_uri):
1026         Treat sftp:// URIs as likely indicators of songness.
1028 2006-08-07  James Livingston  <doclivingston@gmail.com>
1030         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
1031         remote tracks with GStreamer 0.10, and remember their visibility like
1032         local ones.
1034 2006-08-07  James Livingston  <doclivingston@gmail.com>
1036         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
1037         apparently it's a borrowed reference. Should fix #347072.
1039 2006-08-06  James Livingston  <doclivingston@gmail.com>
1041         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
1042         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1043         (rb_shuffle_play_order_get_previous),
1044         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
1045         (remove_from_history), (add_randomly_to_history),
1046         (rb_shuffle_sync_history_with_query_model),
1047         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
1048         (query_model_and_history_contents_match): remove the tentatative
1049         history stuff, which is from older code, like we did for -random a few
1050         weeks ago.
1052 2006-08-06  James Livingston  <doclivingston@gmail.com>
1054         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
1055         (rb_queue_play_order_get_previous):
1056         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
1057         (rb_random_play_order_go_next),
1058         (rb_random_play_order_get_previous), (rb_random_db_changed):
1059         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1060         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1061         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
1062         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
1063         (rb_shuffle_entry_removed),
1064         (query_model_and_history_contents_match):
1065         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
1066         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1067         (default_has_next), (default_has_previous),
1068         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
1069         various play orders, after reviewing the code. Should fix #349601.
1071 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1073         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
1074         Pass the items_per_notification parameter to
1075         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
1076         with some versions of python.
1078 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1080         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
1081         Don't try to draw the icon if the drawable area is too small.
1082         Fixes #349838.
1084 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
1086         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
1088         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
1090 2006-08-05  James Livingston  <doclivingston@gmail.com>
1092         * configure.ac: tell libtool not to check for C++/fortran/ etc
1093         compilers
1095         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
1096         watch, to fix some gconf warnings.
1098 2006-08-04  James Livingston  <doclivingston@gmail.com>
1100         patch by: William Jon McCann  <mccann@jhu.edu>
1102         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
1104 2006-08-04  James Livingston  <doclivingston@gmail.com>
1106         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
1107         actually fix #349722 this time
1109 2006-08-04  James Livingston  <doclivingston@gmail.com>
1111         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
1112         to seach for local art from http:// URIs, or those gnome-vfs doesn't
1113         know about. Fixes #348571.
1115 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
1117         various fixes for valgrind complaints:
1118         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
1119         (init_rb_tree_dnd_data):
1120           free the associated target list, too
1121         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
1122           initialize allocation.{x,y,width,height} correctly
1123         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
1124         (rb_entry_view_constructor):
1125           free strings when no longer needed
1127 2006-08-03  James Livingston  <doclivingston@gmail.com>
1129         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
1130         real GtkTreeModel not the filter. Fixes #349722
1132 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1134         * backends/gstreamer/rb-player-gst.c:
1135         Only use DAAP seek hacks for GStreamer 0.8 builds.
1137         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
1138         (rb_daap_src_open):
1139         * daapsharing/rb-daap-src.h:
1140         Implement normal GStreamer seeking for GStreamer 0.10 builds.
1142         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1143         (rb_daap_source_get_headers):
1144         * sources/rb-daap-source.h:
1145         Reimplement rb_daap_source_get_headers for the case where we've
1146         already got the byte offset.  Add a small hack to
1147         rb_daap_source_class_init to prevent the linker from dropping
1148         rb-daap-src.o entirely.
1150         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
1152 2006-08-02  James Livingston  <doclivingston@gmail.com>
1154         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
1155         (handle_song_listing), (handle_playlist_entries),
1156         (rb_daap_connection_dispose):
1157         * sources/rb-daap-source.c: (_add_location_to_playlist),
1158         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
1159         for playlist URIs, not pointless duplicate strings. From #347425.
1161 2006-08-02  James Livingston  <doclivingston@gmail.com>
1163         * data/rhythmbox.schemas:
1164         * lib/rb-preferences.h:
1165         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
1166         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
1167         (plugin_manager_set_active), (plugin_manager_toggle_active),
1168         (plugin_manager_get_selected_plugin), (name_search_cb),
1169         (plugin_manager_construct_tree), (rb_plugin_manager_new),
1170         (rb_plugin_manager_finalize):
1171         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
1172         (rb_plugins_engine_load_all), (rb_plugin_info_free),
1173         (rb_plugins_engine_plugin_is_visible),
1174         (rb_plugins_engine_plugin_visible_cb):
1175         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
1176         per-user plugins, and 2) hide plugins from the manager UI. From #349395
1178 2006-08-02  James Livingston  <doclivingston@gmail.com>
1180         * sources/rb-sourcelist-model.c:
1181         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
1182         drop on a source. Fixes #349580.
1184 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1186         * configure.ac:
1187         * daapsharing/rb-daap-dialog.c:
1188         * daapsharing/rb-daap-dialog.h:
1189         * shell/Makefile.am:
1190         * sources/Makefile.am:
1191         * sources/rb-daap-source.c: (connection_auth_cb),
1192         (rb_daap_source_connection_cb), (rb_daap_source_activate):
1193         Add gnome-keyring support for DAAP passwords and use
1194         gnome-password-dialog instead of our own.  
1195         Patch mostly by James Livingston.  Fixes bug #330346.
1197 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1199         * shell/rb-shell-player.c:
1200         (rb_shell_player_set_playing_source_internal),
1201         (rb_shell_player_sync_with_selected_source):
1202         Remove call to rb_source_have_url, as we never did anything with the
1203         result.
1205         * sources/rb-browser-source.c: (rb_browser_source_class_init):
1206         * sources/rb-import-errors-source.c:
1207         (rb_import_errors_source_class_init):
1208         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1209         (impl_song_properties), (impl_want_uri), (impl_add_uri):
1210         * sources/rb-library-source.c: (rb_library_source_class_init),
1211         (impl_want_uri), (impl_add_uri):
1212         * sources/rb-missing-files-source.c:
1213         (rb_missing_files_source_class_init):
1214         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
1215         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1216         (impl_want_uri), (impl_add_uri):
1217         * sources/rb-source.c: (rb_source_class_init),
1218         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
1219         * sources/rb-source.h:
1220         * sources/rb-static-playlist-source.c:
1221         (rb_static_playlist_source_class_init), (search_action_changed),
1222         (impl_want_uri):
1223         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
1224         When adding a URI, want_uri gets called for each source; the one that
1225         wants it most gets the URI passed to its add_uri method.
1226         
1227         * shell/rb-shell.h:
1228         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
1229         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
1230         (handle_playlist_entry_cb), (rb_shell_load_uri):
1231         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
1232         Use want_uri and add_uri to simplify and make generic
1233         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
1235         If a source that returns TRUE from try_playlist wants all the URIs in
1236         the playlist, give it the playlist URI instead.  This retains the
1237         existing behaviour for adding iradio playlists.
1239         * bindings/python/rb.defs: Update for above changes.
1241         From bug #347097.
1243 2006-07-31  James Livingston  <doclivingston@gmail.com>
1245         * data/Makefile.am:
1246         * data/generate-keys.sh: fix the build I broke with the last commit.
1247         Oops.
1249 2006-07-31  James Livingston  <doclivingston@gmail.com>
1251         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
1252         in a long time. Fixes #349179.
1254 2006-07-30  James Livingston  <doclivingston@gmail.com>
1256         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
1257         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1258         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
1260 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1262         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1263         Don't tell the browser the query is still pending when doing a subset
1264         search.  Fixes #348617 again.
1266 2006-07-30  James Livingston  <doclivingston@gmail.com>
1268         * bindings/python/rb.override: remove an extraneous _wrap_ from the
1269         override definition. Fixes #348893.
1271 2006-07-30  James Livingston  <doclivingston@gmail.com>
1273         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
1274         rb_error_dialog, as it's above this in the stack.
1276         * lib/rb-util.c: (rb_gvalue_compare):
1277         * lib/rb-util.h: change the return type to int, as we're returning
1278         -1/0/1
1280         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
1281         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1282         (rb_query_creator_set_sorting): minor leak fixes
1284 2006-07-28  James Livingston  <doclivingston@gmail.com>
1286         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1287         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
1288         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
1289         (get_or_create_genre), (remove_entry_from_album),
1290         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1291         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
1292         (rhythmdb_tree_entry_lookup_by_location),
1293         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1294         (rhythmdb_hash_tree_foreach),
1295         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
1296         threadsafe. Fix a nasty problem if the _foreach callback function
1297         caused the addition/removal of entries.
1299 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1301         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
1302         Clear selection before changing our idea of the model.  Fixes crashes
1303         on model changes while playing.
1305 2006-07-27  James Livingston  <doclivingston@gmail.com>
1307         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
1308         a missing rb_refstring_unref.
1310         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1311         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
1312         oops. should hopefully fix the crash reported on #347425.
1314 2006-07-27  James Livingston  <doclivingston@gmail.com>
1316         * backends/gstreamer/rb-encoder-gst.c:
1317         (get_profile_from_mime_type): fix encoding error issue, from #310774.
1319         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
1320         thread-safety issue.
1322 2006-07-27  James Livingston  <doclivingston@gmail.com>
1324         * rhythmdb/rb-refstring.c: (rb_refstring_find):
1325         * rhythmdb/rb-refstring.h: add a new function which returns the
1326         RBRefString that matches a string, but never creates a new one.
1328         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
1329         (monitor_entry_file), (rhythmdb_check_changed_file),
1330         (rhythmdb_directory_change_cb):
1331         * rhythmdb/rhythmdb-private.h:
1332         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1333         (unparent_entries), (free_unknown_entries),
1334         (rhythmdb_tree_parser_start_element),
1335         (rhythmdb_tree_parser_end_element), (save_entry),
1336         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
1337         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1338         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
1339         (rhythmdb_tree_entry_type_registered):
1340         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
1341         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
1342         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
1343         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1344         (rhythmdb_process_metadata_load),
1345         (rhythmdb_process_file_created_or_modified),
1346         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
1347         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
1348         (action_thread_main), (rhythmdb_entry_set_internal),
1349         (rhythmdb_entry_move_to_trash_set_error),
1350         (rhythmdb_entry_move_to_trash),
1351         (rhythmdb_entry_lookup_by_location),
1352         (rhythmdb_entry_lookup_by_location_refstring),
1353         (default_sync_metadata), (rhythmdb_entry_get_string),
1354         (rhythmdb_entry_get_refstring):
1355         * rhythmdb/rhythmdb.h:
1356         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
1357         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1358         (rb_playlist_source_row_deleted),
1359         (rb_playlist_source_entry_added_cb),
1360         (rb_playlist_source_location_in_map),
1361         (rb_playlist_source_add_to_map): Make the LOCATION field of
1362         RhythmDBEntry be a RBRefString instead, which reduces some of the
1363         memory-fragmentation on startup and saves RBStaticPlaylistSource
1364         duplicating all the strings.
1366 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1368         * rhythmdb/rhythmdb-query-model.c:
1369         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
1370         * rhythmdb/rhythmdb-query-model.h:
1371         Add function to copy contents from one query model to another,
1372         filtered by the destination model's query.
1374         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1375         Use the above to create a new query model for subset searches, rather
1376         than filtering the existing model. Fixes #348617.
1378 2006-07-25  James Livingston  <doclivingston@gmail.com>
1380         * rhythmdb/rhythmdb-query-model.c:
1381         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
1382         lost from static playlists. Yet again. Fixes #323095.
1384         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
1385         case for the above, so that we should know if a change will break it
1386         again.
1388 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1390         * data/rhythmbox.schemas: Fix for last commit.
1392         * podcast/rb-podcast-manager.c:
1393         (rb_podcast_manager_download_entry),
1394         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
1395         (rb_podcast_manager_db_entry_deleted_cb):
1396         * rhythmdb/rhythmdb-property-model.c:
1397         (rhythmdb_property_model_set_query_model_internal),
1398         (rhythmdb_property_model_set_property),
1399         (rhythmdb_property_model_finalize),
1400         (rhythmdb_property_model_drag_data_get):
1401         * rhythmdb/rhythmdb-query-model.c:
1402         (rhythmdb_query_model_set_query_internal),
1403         (rhythmdb_query_model_set_property),
1404         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
1405         * rhythmdb/rhythmdb-query-model.h:
1406         * sources/rb-browser-source.c: (rb_browser_source_dispose),
1407         (rb_browser_source_do_query):
1408         * sources/rb-import-errors-source.c:
1409         (rb_import_errors_source_constructor):
1410         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1411         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
1412         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
1413         (impl_search), (impl_get_status),
1414         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
1415         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
1416         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
1417         * sources/rb-missing-files-source.c:
1418         (rb_missing_files_source_constructor),
1419         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
1420         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
1421         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1422         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
1423         (rb_playlist_source_save_playlist),
1424         (rb_playlist_source_new_from_xml),
1425         (rb_playlist_source_save_to_xml),
1426         (rb_playlist_source_setup_entry_view),
1427         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
1428         (rb_playlist_source_get_query_model),
1429         (rb_playlist_source_mark_dirty),
1430         (rb_playlist_source_location_in_map),
1431         (rb_playlist_source_add_to_map):
1432         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
1433         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
1434         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
1435         (impl_delete), (rb_podcast_source_state_prefs_sync),
1436         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
1437         (impl_get_config_widget), (rb_podcast_source_add_feed),
1438         (rb_podcast_source_cmd_download_post),
1439         (rb_podcast_source_cmd_cancel_download),
1440         (rb_podcast_source_cmd_delete_feed),
1441         (rb_podcast_source_cmd_update_feed),
1442         (rb_podcast_source_cmd_update_all),
1443         (rb_podcast_source_cb_interval_changed_cb),
1444         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
1445         (rb_podcast_source_entry_activated_cb):
1446         * sources/rb-source.c: (rb_source_finalize),
1447         (rb_source_set_query_model_internal), (rb_source_set_property),
1448         (default_get_status):
1449         * sources/rb-static-playlist-source.c:
1450         (rb_static_playlist_source_dispose),
1451         (rb_static_playlist_source_finalize),
1452         (rb_static_playlist_source_constructor),
1453         (rb_static_playlist_source_do_query):
1454         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
1455         (rb_entry_view_set_shell_player_internal),
1456         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
1457         (rb_entry_view_set_model), (rb_entry_view_append_column),
1458         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
1459         (rb_entry_view_set_state):
1460         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
1461         (rb_library_browser_finalize), (rb_library_browser_new),
1462         (update_browser_property_visibilty), (view_selection_reset_cb),
1463         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
1464         (restore_selection), (rebuild_child_model),
1465         (rb_library_browser_set_selection), (rb_library_browser_set_model):
1466         * widgets/rb-property-view.c:
1467         (rb_property_view_set_model_internal),
1468         (rb_property_view_set_selection_mode), (rb_property_view_reset),
1469         (rb_property_view_get_model), (rb_property_view_set_model),
1470         (rb_property_view_get_num_properties),
1471         (rb_property_view_set_selection),
1472         (rb_property_view_append_column_custom),
1473         (rb_property_view_set_search_func):
1474         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
1475         From #347446
1477 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1479         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
1480         Work around a small n-c-b API change.
1482 2006-07-25  James Livingston  <doclivingston@gmail.com>
1484         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
1486         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
1487         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
1488         aborting entry-emission on finalise
1490 2006-07-25  James Livingston  <doclivingston@gmail.com>
1492         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
1493         warning when entry is NULL.
1495 2006-07-25  James Livingston  <doclivingston@gmail.com>
1497         * help/sv/.cvsignore:
1498         * lib/.cvsignore:
1499         * plugins/generic-player/.cvsignore:
1500         * remote/.cvsignore:
1501         * remote/dbus/.cvsignore:
1502         * shell/.cvsignore:
1503         * tests/.cvsignore: more .cvsignore updates
1505 2006-07-24  James Livingston  <doclivingston@gmail.com>
1507         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
1508         (transparent_expose_event), (make_transparent_again),
1509         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
1510         apply a patch for EggTrayIcon so that it handled transparent panels
1511         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
1512         Fixes #348208.
1514 2006-07-24  James Livingston  <doclivingston@gmail.com>
1516         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
1517         queries rather than taking ownership when parsing a subquery. Fixed a
1518         crash exposed by the recent leak fixes.
1520         * doc/reference/tmpl/disclosure-widget.sgml:
1521         * doc/reference/tmpl/rb-debug.sgml:
1522         * doc/reference/tmpl/rb-metadata.sgml:
1523         * doc/reference/tmpl/rb-play-order.sgml:
1524         * doc/reference/tmpl/rb-playlist-manager.sgml:
1525         * doc/reference/tmpl/rb-playlist-source.sgml:
1526         * doc/reference/tmpl/rb-shell-player.sgml:
1527         * doc/reference/tmpl/rb-shell.sgml:
1528         * doc/reference/tmpl/rb-song-display-box.sgml:
1529         * doc/reference/tmpl/rhythmbox-unused.sgml:
1530         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
1532 2006-07-24  James Livingston  <doclivingston@gmail.com>
1534         * lib/.cvsignore:
1535         * plugins/artdisplay/.cvsignore:
1536         * plugins/artdisplay/artdisplay/.cvsignore:
1537         * plugins/lyrics/.cvsignore:
1538         * plugins/pythonconsole/.cvsignore:
1539         * plugins/rb/.cvsignore: add/update various .cvsignore files
1541 2006-07-24  James Livingston  <doclivingston@gmail.com>
1543         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1544         (rb_refstring_ref): don't emit critical warnings when the refstring
1545         is NULL, as that happens often for podcast metadata.
1547         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
1548         missing rhythmdb_entry_ref call
1550 2006-07-23  William Jon McCann  <mccann@jhu.edu>
1552         * bindings/python/rb.override:
1553         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
1554         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1555         (playlist_row_inserted_cb):
1556         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
1557         * plugins/rb-plugin-manager.c:
1558         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
1559         (rb_podcast_manager_copy_post),
1560         (rb_podcast_manager_db_entry_deleted_cb),
1561         (rb_podcast_manager_insert_feed):
1562         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1563         (rb_refstring_ref), (rb_refstring_get_sort_key):
1564         * rhythmdb/rhythmdb-private.h:
1565         * rhythmdb/rhythmdb-property-model.c:
1566         (rhythmdb_property_model_set_property),
1567         (rhythmdb_property_model_get_property),
1568         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
1569         (rhythmdb_property_model_row_inserted_cb),
1570         (rhythmdb_property_model_prop_changed_cb),
1571         (rhythmdb_property_model_compare),
1572         (rhythmdb_property_model_insert),
1573         (rhythmdb_property_model_iter_from_string),
1574         (rhythmdb_property_model_get_column_type),
1575         (rhythmdb_property_model_get_iter),
1576         (rhythmdb_property_model_get_value),
1577         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
1578         (rhythmdb_property_model_enable_drag):
1579         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
1580         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
1581         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
1582         (rhythmdb_query_model_chain),
1583         (rhythmdb_query_model_entry_added_cb),
1584         (rhythmdb_query_model_entry_changed_cb),
1585         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
1586         (rhythmdb_query_model_add_entry),
1587         (rhythmdb_query_model_insert_into_main_list),
1588         (rhythmdb_query_model_insert_into_limited_list),
1589         (rhythmdb_query_model_remove_from_main_list),
1590         (rhythmdb_query_model_remove_from_limited_list),
1591         (rhythmdb_query_model_update_limited_entries),
1592         (rhythmdb_query_model_emit_reorder),
1593         (rhythmdb_query_model_do_reorder),
1594         (rhythmdb_query_model_do_insert),
1595         (rhythmdb_query_model_move_entry),
1596         (rhythmdb_query_model_remove_entry),
1597         (rhythmdb_query_model_entry_to_iter),
1598         (rhythmdb_query_model_iter_to_entry),
1599         (rhythmdb_query_model_get_previous_from_entry),
1600         (rhythmdb_query_model_row_draggable),
1601         (rhythmdb_query_model_drag_data_delete),
1602         (rhythmdb_query_model_drag_data_get),
1603         (rhythmdb_query_model_drag_data_received),
1604         (rhythmdb_query_model_row_drop_possible),
1605         (rhythmdb_query_model_row_drop_position),
1606         (rhythmdb_query_model_add_results),
1607         (rhythmdb_query_model_query_complete),
1608         (rhythmdb_query_model_get_column_type),
1609         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
1610         (rhythmdb_query_model_iter_nth_child),
1611         (apply_updated_entry_sequence),
1612         (rhythmdb_query_model_child_index_to_base_index),
1613         (rhythmdb_query_model_get_entry_index),
1614         (rhythmdb_query_model_base_row_inserted),
1615         (rhythmdb_query_model_base_row_deleted),
1616         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
1617         (rhythmdb_query_model_location_sort_func),
1618         (rhythmdb_query_model_title_sort_func),
1619         (rhythmdb_query_model_album_sort_func),
1620         (rhythmdb_query_model_artist_sort_func),
1621         (rhythmdb_query_model_track_sort_func),
1622         (rhythmdb_query_model_double_ceiling_sort_func),
1623         (rhythmdb_query_model_ulong_sort_func),
1624         (rhythmdb_query_model_date_sort_func),
1625         (rhythmdb_query_model_string_sort_func),
1626         (rhythmdb_query_model_within_limit):
1627         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
1628         (rhythmdb_tree_parser_start_element),
1629         (rhythmdb_tree_parser_end_element),
1630         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
1631         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
1632         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
1633         (save_entry_uint64), (save_entry_double), (save_entry),
1634         (set_entry_album), (rhythmdb_tree_entry_new),
1635         (get_genres_hash_for_type), (get_or_create_genre),
1636         (get_or_create_artist), (get_or_create_album), (remove_child),
1637         (remove_entry_from_album), (rhythmdb_tree_entry_set),
1638         (rhythmdb_tree_entry_delete), (remove_one_song),
1639         (rhythmdb_tree_entry_delete_by_type),
1640         (rhythmdb_tree_evaluate_query), (search_match_properties),
1641         (evaluate_conjunctive_subquery), (do_conjunction),
1642         (conjunctive_query_songs), (clone_remove_ptr_array_index),
1643         (conjunctive_query_albums), (conjunctive_query_artists),
1644         (conjunctive_query_genre), (conjunctive_query),
1645         (split_query_by_disjunctions), (do_query_recurse),
1646         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
1647         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1648         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
1649         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
1650         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
1651         (extract_gtype_from_enum_entry),
1652         (extract_nice_name_from_enum_entry), (rhythmdb_init),
1653         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
1654         (rhythmdb_event_free), (rhythmdb_finalize),
1655         (rhythmdb_set_property), (rhythmdb_get_property),
1656         (rhythmdb_thread_create), (free_entry_changes),
1657         (emit_entry_changed), (sync_entry_changed),
1658         (process_added_entries_cb), (process_deleted_entries_cb),
1659         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
1660         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
1661         (rhythmdb_entry_insert), (rhythmdb_entry_new),
1662         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
1663         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
1664         (rhythmdb_entry_is_editable), (set_props_from_metadata),
1665         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1666         (rhythmdb_process_metadata_load),
1667         (rhythmdb_process_file_created_or_modified),
1668         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
1669         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
1670         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
1671         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
1672         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
1673         (record_entry_change), (rhythmdb_entry_set_internal),
1674         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
1675         (rhythmdb_entry_move_to_trash_cb),
1676         (rhythmdb_entry_move_to_trash_set_error),
1677         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
1678         (rhythmdb_nice_elt_name_from_propid),
1679         (rhythmdb_propid_from_nice_elt_name),
1680         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
1681         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
1682         (rhythmdb_compute_status_normal), (default_sync_metadata),
1683         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
1684         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
1685         (podcast_get_playback_uri), (podcast_data_destroy),
1686         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
1687         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
1688         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
1689         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
1690         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
1691         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
1692         * rhythmdb/rhythmdb.h:
1693         * shell/rb-play-order-linear-loop.c:
1694         (rb_linear_play_order_loop_get_next),
1695         (rb_linear_play_order_loop_get_previous):
1696         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
1697         (rb_linear_play_order_get_previous):
1698         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
1699         * shell/rb-play-order-random.c: (get_query_model_contents):
1700         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
1701         (get_query_model_contents):
1702         * shell/rb-play-order.c: (rb_play_order_constructor),
1703         (rb_play_order_finalize),
1704         (rb_play_order_set_playing_entry_internal),
1705         (rb_play_order_set_property), (rb_play_order_new),
1706         (rb_play_order_get_player), (rb_play_order_get_source),
1707         (rb_play_order_get_db), (rb_play_order_get_query_model),
1708         (rb_play_order_player_is_playing),
1709         (rb_play_order_set_playing_entry),
1710         (rb_play_order_get_playing_entry),
1711         (rb_play_order_playing_source_changed),
1712         (rb_play_order_query_model_changed),
1713         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1714         (default_has_next), (default_has_previous),
1715         (sync_playing_entry_cb), (default_playing_entry_removed),
1716         (rb_play_order_has_next), (rb_play_order_get_next),
1717         (rb_play_order_go_next), (rb_play_order_has_previous),
1718         (rb_play_order_get_previous), (rb_play_order_go_previous),
1719         (rb_play_order_model_not_empty),
1720         (rb_play_order_update_have_next_previous):
1721         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
1722         (rb_playlist_manager_save_playlists),
1723         (rb_playlist_manager_set_automatic_playlist),
1724         (rb_playlist_manager_cmd_edit_automatic_playlist),
1725         (_queue_track_cb), (rb_playlist_manager_get_playlists),
1726         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
1727         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
1728         * shell/rb-shell-player.c: (rb_shell_player_constructor),
1729         (volume_pre_unmount_cb), (reemit_playing_signal),
1730         (notify_playing_idle), (rb_shell_player_open_playlist_url),
1731         (rb_shell_player_handle_eos_unlocked),
1732         (rb_shell_player_handle_eos), (rb_shell_player_init),
1733         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
1734         (playlist_entry_cb), (rb_shell_player_open_entry),
1735         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
1736         (rb_shell_player_set_play_order),
1737         (rb_shell_player_set_playback_state),
1738         (rb_shell_player_sync_play_order),
1739         (rb_shell_player_play_order_update_cb),
1740         (rb_shell_player_jump_to_current), (swap_playing_source),
1741         (rb_shell_player_do_previous), (rb_shell_player_do_next),
1742         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
1743         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
1744         (rb_shell_player_entry_activated_cb),
1745         (rb_shell_player_property_row_activated_cb),
1746         (rb_shell_player_entry_changed_cb),
1747         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
1748         (rb_shell_player_pause),
1749         (rb_shell_player_get_playing_song_duration),
1750         (rb_shell_player_error), (error_cb), (tick_cb),
1751         (info_available_cb), (buffering_cb),
1752         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
1753         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
1754         (rb_shell_jump_to_current):
1755         * sources/rb-auto-playlist-source.c:
1756         (rb_auto_playlist_source_finalize), (impl_receive_drag),
1757         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
1758         (rb_auto_playlist_source_get_query):
1759         * sources/rb-auto-playlist-source.h:
1760         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1761         * sources/rb-import-errors-source.c:
1762         (rb_import_errors_source_constructor):
1763         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
1764         * sources/rb-library-source.c: (filepath_parse_pattern):
1765         * sources/rb-missing-files-source.c:
1766         (rb_missing_files_source_constructor):
1767         * sources/rb-play-queue-source.c:
1768         (rb_play_queue_source_clear_queue),
1769         (rb_play_queue_source_track_info_cell_data_func):
1770         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
1771         (rb_playlist_source_get_property), (playlist_iter_func),
1772         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
1773         (rb_playlist_source_track_cell_data_func):
1774         * sources/rb-podcast-source.c: (construct_query_from_selection),
1775         (rb_podcast_source_post_status_cell_data_func),
1776         (rb_podcast_source_post_feed_cell_data_func),
1777         (rb_podcast_source_feed_title_search_func),
1778         (rb_podcast_source_post_date_cell_data_func):
1779         * sources/rb-source.c: (default_get_status),
1780         (rb_source_get_status), (rb_source_browser_toggled),
1781         (rb_source_update_play_statistics), (rb_source_search),
1782         (rb_source_get_config_widget), (default_add_to_queue),
1783         (rb_source_add_to_queue), (rb_source_receive_drag),
1784         (rb_source_gather_hash_keys):
1785         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
1786         (rb_sourcelist_model_is_row_visible),
1787         (rb_sourcelist_model_row_is_separator),
1788         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
1789         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
1790         (rb_sourcelist_model_drag_data_get):
1791         * sources/rb-sourcelist.c: (rb_sourcelist_append),
1792         (match_source_to_iter), (rb_sourcelist_source_to_iter),
1793         (rb_sourcelist_visible_source_to_iter),
1794         (rb_sourcelist_edit_source_name), (set_source_playing),
1795         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
1796         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
1797         (drop_received_cb), (row_activated_cb), (emit_show_popup),
1798         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
1799         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
1800         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
1801         (rb_static_playlist_source_add_location_internal),
1802         (rb_static_playlist_source_row_inserted):
1803         * widgets/rb-entry-view.c: (type_ahead_search_func),
1804         (rb_entry_view_finalize), (rb_entry_view_set_model),
1805         (rb_entry_view_playing_cell_data_func),
1806         (rb_entry_view_rating_cell_data_func),
1807         (rb_entry_view_long_cell_data_func),
1808         (rb_entry_view_play_count_cell_data_func),
1809         (rb_entry_view_duration_cell_data_func),
1810         (rb_entry_view_year_cell_data_func),
1811         (rb_entry_view_quality_cell_data_func),
1812         (rb_entry_view_location_cell_data_func),
1813         (rb_entry_view_string_cell_data_func),
1814         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
1815         (rb_entry_view_get_sorting_order),
1816         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
1817         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
1818         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
1819         (rb_entry_view_playing_song_changed), (harvest_entries),
1820         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
1821         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
1822         (set_column_visibility):
1823         * widgets/rb-entry-view.h:
1824         * widgets/rb-header.c: (rb_header_new),
1825         (rb_header_set_playing_entry), (rb_header_set_title):
1826         * widgets/rb-library-browser.c: (rebuild_child_model),
1827         (rb_library_browser_set_model):
1828         * widgets/rb-property-view.c:
1829         (rb_property_view_set_model_internal), (rb_property_view_finalize),
1830         (rb_property_view_set_property), (rb_property_view_get_property),
1831         (rb_property_view_reset), (rb_property_view_get_model),
1832         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
1833         (rb_property_view_button_press_cb):
1834         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1835         (rb_query_creator_get_property), (rb_query_creator_load_query),
1836         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
1837         (rb_query_creator_get_query), (rb_query_creator_get_limit),
1838         (rb_query_creator_get_sort_order), (limit_toggled_cb),
1839         (lookup_row_by_widget), (remove_button_click_cb),
1840         (add_button_click_cb), (create_property_option_menu):
1841         * widgets/rb-song-info.c: (rb_song_info_constructor),
1842         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
1843         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
1844         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
1845         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
1847 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1849         * shell/rb-shell-player.c: (rb_shell_player_class_init),
1850         (rb_shell_player_get_property):
1851         Add a property providing access to the player backend object.
1853 2006-07-23  James Livingston  <doclivingston@gmail.com>
1855         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
1856         (get_history), (rb_random_filter_history),
1857         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
1858         remove the tentative history, since it appears to be a remanent from
1859         older play order code. The only thing it was doing was using up
1860         CPU-time and memory. From #345857
1862 2006-07-23  James Livingston  <doclivingston@gmail.com>
1864         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
1866         * shell/main.c: (main):
1867         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
1868         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
1869         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
1870         (rb_playlist_manager_load_playlists),
1871         (rb_playlist_manager_save_data):
1872         * shell/rb-playlist-manager.h:
1873         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
1874         (rb_shell_get_property), (rb_shell_sync_state),
1875         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
1876         (construct_sources), (idle_handle_load_complete):
1877         * shell/rb-shell.h: Add a command-line option for changing the
1878         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
1880 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1882         * daapsharing/rb-daap-share.c: (databases_cb):
1883         Make sure we set status codes on HTTP responses.
1885 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1887         * configure.ac:
1888         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1889         (chunked_message_finished), (send_chunked_file),
1890         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
1891         Use GMappedFile to send local files to DAAP clients where possible.  
1892         iTunes can't seek properly in files sent using chunked transfer 
1893         encoding.  Also remove the useless bitrate calculation code, as we
1894         never even used the result anyway.  From #330410.
1896 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1898         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
1900         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
1901         Enable multiple selection for 'import file'.  Fixes #347478.
1903 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
1905         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
1906         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
1907         deprecated dbus_connection_disconnect () with dbus_connection_close ().
1908         Fixes #348098.
1910 2006-07-20  James Livingston  <doclivingston@gmail.com>
1912         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
1913         aren't NULL before calling strstr. Fixes #347998.
1915 2006-07-19  James Livingston  <doclivingston@gmail.com>
1917         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
1919         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
1920         MB that only have years. Fixes #347906.
1922 2006-07-19  James Livingston  <doclivingston@gmail.com>
1924         * rhythmdb/rhythmdb-private.h:
1925         * rhythmdb/rhythmdb.c: (rhythmdb_init),
1926         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
1927         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
1928         (rhythmdb_finalize), (timeout_rhythmdb_commit),
1929         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
1930         (rhythmdb_execute_stat), (queue_stat_uri),
1931         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
1932         (rhythmdb_load), (rhythmdb_entry_register_type),
1933         (rhythmdb_entry_register_type_alias): Keep track of outstanding
1934         asynchronous vfs operations, and cancel them when shutting down the
1935         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
1937         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
1938         (test_rhythmdb_shutdown): wait until the db has been finalised before
1939         continuing on to the next test.
1941 2006-07-19  James Livingston  <doclivingston@gmail.com>
1943         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
1944         right thing in the #ifdef. From #347832.
1946 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1948         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1949         Fix compile warning.
1951 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1953         * rhythmdb/rhythmdb-query-model.c:
1954         (rhythmdb_query_model_set_property),
1955         (rhythmdb_query_model_reapply_query_cb):
1956         Ignore old query == new query case.
1957         Fixes auto playlists with time-relative queries.
1959         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
1960         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
1961         (rhythmdb_query_to_string):
1962         * rhythmdb/rhythmdb.h:
1963         Add debug helper for printing queries in case someone needs it again.
1965 2006-07-18  James Livingston  <doclivingston@gmail.com>
1967         patch by: Ståle Lyngaas  <staale@lyngaas.com>
1968         * sources/rb-audiocd-source.c: store the MB track ids in the database.
1969         Fixes #347832
1971         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
1972         write then into files.
1974 2006-07-17  William Jon McCann  <mccann@jhu.edu>
1976         * daapsharing/rb-daap-connection.c:
1977         (rb_daap_connection_set_property):
1978         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
1979         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
1980         (add_playlist_to_mlcl), (databases_cb):
1981         * daapsharing/rb-daap-sharing.c: (create_share):
1982         * iradio/rb-new-station-dialog.c:
1983         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
1984         * iradio/rb-station-properties-dialog.c:
1985         (rb_station_properties_dialog_finalize),
1986         (rb_station_properties_dialog_set_property),
1987         (rb_station_properties_dialog_get_current_entry):
1988         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
1989         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
1990         * plugins/generic-player/rb-generic-player-source.c:
1991         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
1992         (handle_playlist_entry_cb):
1993         * plugins/generic-player/rb-nokia770-source.c:
1994         (rb_nokia770_source_new), (hal_udi_is_nokia770):
1995         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
1996         (visit_playlist_dirs), (hal_udi_is_psp):
1997         * podcast/rb-podcast-manager.c:
1998         * podcast/rb-podcast-properties-dialog.c:
1999         (rb_podcast_properties_dialog_finalize),
2000         (rb_podcast_properties_dialog_set_entry_view),
2001         (rb_podcast_properties_dialog_set_property):
2002         * rhythmdb/rhythmdb-property-model.c:
2003         * rhythmdb/rhythmdb-query-model.c:
2004         (rhythmdb_query_model_set_property),
2005         (rhythmdb_query_model_reapply_query_cb):
2006         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
2007         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
2008         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2009         (rhythmdb_event_free), (rhythmdb_shutdown),
2010         (rhythmdb_thread_create), (action_thread_main),
2011         (rhythmdb_do_full_query_async_parsed),
2012         (rhythmdb_do_full_query_internal):
2013         * shell/main.c: (main):
2014         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
2015         * shell/rb-play-order.c: (rb_play_order_finalize),
2016         (rb_play_order_set_player),
2017         (rb_play_order_set_playing_entry_internal),
2018         (rb_play_order_set_property),
2019         (rb_play_order_playing_source_changed),
2020         (rb_play_order_query_model_changed):
2021         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
2022         (rb_playlist_manager_set_source),
2023         (rb_playlist_manager_set_shell_internal),
2024         (rb_playlist_manager_set_property):
2025         * shell/rb-removable-media-manager.c:
2026         (rb_removable_media_manager_set_property),
2027         (rb_removable_media_manager_set_uimanager),
2028         (rb_removable_media_manager_cmd_eject_medium),
2029         (rb_removable_media_manager_cmd_copy_tracks):
2030         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
2031         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
2032         (rb_shell_clipboard_set),
2033         (rb_shell_clipboard_cmd_add_to_playlist_new),
2034         (rb_shell_clipboard_playlist_add_cb),
2035         (rb_shell_clipboard_playlist_renamed_cb),
2036         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
2037         (rebuild_playlist_menu):
2038         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2039         (rb_shell_player_set_queue_source_internal),
2040         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
2041         (rb_shell_player_entry_activated_cb),
2042         (rb_shell_player_property_row_activated_cb),
2043         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
2044         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
2045         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2046         (rb_shell_finalize), (construct_widgets),
2047         (rb_shell_playing_from_queue_cb),
2048         (rb_shell_player_stream_song_changed_cb),
2049         (rb_shell_player_volume_changed_cb):
2050         * shell/rb-statusbar.c: (rb_statusbar_new):
2051         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
2052         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
2053         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2054         * sources/rb-auto-playlist-source.c:
2055         (rb_auto_playlist_source_class_init),
2056         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
2057         (rb_auto_playlist_source_constructor), (impl_receive_drag),
2058         (rb_auto_playlist_source_do_query),
2059         (rb_auto_playlist_source_set_query),
2060         (rb_auto_playlist_source_browser_changed_cb),
2061         (search_action_changed):
2062         * sources/rb-auto-playlist-source.h:
2063         * sources/rb-browser-source.c: (rb_browser_source_finalize),
2064         (search_action_changed), (rb_browser_source_constructor),
2065         (rb_browser_source_cmd_choose_artist), (impl_delete),
2066         (rb_browser_source_browser_changed_cb),
2067         (rb_browser_source_do_query):
2068         * sources/rb-daap-source.c: (rb_daap_source_dispose),
2069         (rb_daap_source_finalize), (rb_daap_source_class_init),
2070         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
2071         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2072         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2073         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
2074         (rb_daap_source_get_headers):
2075         * sources/rb-import-errors-source.c:
2076         (rb_import_errors_source_constructor),
2077         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
2078         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2079         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
2080         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
2081         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
2082         (impl_paste), (impl_receive_drag):
2083         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
2084         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
2085         (impl_song_properties):
2086         * sources/rb-library-source.c: (rb_library_source_constructor),
2087         (rb_library_source_new), (impl_paste),
2088         (rb_library_source_add_child_source):
2089         * sources/rb-missing-files-source.c: (impl_delete),
2090         (impl_get_status):
2091         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
2092         (rb_play_queue_source_class_init),
2093         (rb_play_queue_source_constructor):
2094         * sources/rb-playlist-source.c: (rb_playlist_source_init),
2095         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
2096         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
2097         (rb_playlist_source_new_from_xml),
2098         (rb_playlist_source_save_to_xml):
2099         * sources/rb-podcast-source.c: (rb_podcast_source_init),
2100         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
2101         (search_action_changed), (rb_podcast_source_constructor),
2102         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2103         (construct_query_from_selection),
2104         (rb_podcast_source_cmd_download_post),
2105         (rb_podcast_source_cmd_cancel_download),
2106         (rb_podcast_source_cmd_delete_feed),
2107         (rb_podcast_source_start_download_cb),
2108         (rb_podcast_source_finish_download_cb),
2109         (rb_podcast_source_feed_updates_avaliable_cb),
2110         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
2111         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2112         (impl_get_status):
2113         * sources/rb-removable-media-source.c: (impl_delete_thyself):
2114         * sources/rb-source.c: (rb_source_get_property),
2115         (default_add_to_queue), (default_move_to_trash),
2116         (_rb_source_show_popup), (rb_source_gather_selected_properties),
2117         (_rb_source_register_action_group):
2118         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2119         (rb_sourcelist_model_is_row_visible),
2120         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
2121         (rb_sourcelist_model_row_draggable),
2122         (rb_sourcelist_model_drag_data_get):
2123         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
2124         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
2125         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
2126         (visibility_notify_cb):
2127         * sources/rb-static-playlist-source.c:
2128         (rb_static_playlist_source_class_init),
2129         (rb_static_playlist_source_init),
2130         (rb_static_playlist_source_finalize),
2131         (rb_static_playlist_source_constructor), (impl_delete),
2132         (rb_static_playlist_source_browser_changed_cb),
2133         (rb_static_playlist_source_add_location_internal),
2134         (search_action_changed):
2135         * sources/rb-static-playlist-source.h:
2136         * widgets/rb-druid.c:
2137         * widgets/rb-entry-view.c:
2138         (rb_entry_view_set_shell_player_internal),
2139         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
2140         (rb_entry_view_get_property), (rb_entry_view_new),
2141         (rb_entry_view_button_press_cb):
2142         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
2143         (rb_library_browser_set_property),
2144         (rb_library_browser_get_property):
2145         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
2146         (get_entry_for_property), (get_property_index_from_proptype):
2147         * widgets/rb-song-info.c: (rb_song_info_constructor),
2148         (rb_song_info_finalize), (rb_song_info_set_source_internal),
2149         (rb_song_info_set_property), (rb_song_info_get_property):
2151         More leak and reference counting fixes.  From bug #347446.
2153 2006-07-17  James Livingston  <doclivingston@gmail.com>
2155         * sources/rb-auto-playlist-source.c:
2156         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
2157         rather than setting the base model, as that lets us not import all the
2158         entries from the base model. This fixes some issues whether the search
2159         box wasn't filting automatic playlists.
2161 2006-07-17  James Livingston  <doclivingston@gmail.com>
2163         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
2164         error, which caused blacklist creation to fail.
2166 2006-07-17  James Livingston  <doclivingston@gmail.com>
2168         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
2169         running with -n, because we don't start it then. Fixes a crash on
2170         exit.
2172 2006-07-17  James Livingston  <doclivingston@gmail.com>
2174         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2176         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
2177         Save not Open for the button. Fixes #345816
2179 2006-07-17  James Livingston  <doclivingston@gmail.com>
2181         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2183         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
2184         when track transfer is disabled. Fixes #347705
2186 2006-07-17  James Livingston  <doclivingston@gmail.com>
2188         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2190         * sources/rb-library-source.c: (impl_get_config_widget): fix build
2191         with track transfer disabled. Fixes #347705
2193 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2195         * rhythmdb/rhythmdb-query-model.c:
2196         (rhythmdb_query_model_set_property):
2197         * shell/main.c: (main):
2198         * shell/rb-shell-clipboard.c: (unset_source_internal),
2199         (rb_shell_clipboard_finalize),
2200         (rb_shell_clipboard_set_source_internal),
2201         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
2202         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2203         (rb_shell_player_set_db_internal),
2204         (rb_shell_player_set_queue_source_internal),
2205         (rb_shell_player_finalize), (rb_shell_player_set_property):
2206         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
2207         * sources/rb-auto-playlist-source.c:
2208         (rb_auto_playlist_source_constructor),
2209         (rb_auto_playlist_source_new_from_xml):
2210         * sources/rb-daap-source.c: (create_pixbufs):
2211         * sources/rb-ipod-source.c:
2212         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
2213         * sources/rb-library-source.c:
2214         (rb_library_source_add_child_source):
2215         * sources/rb-play-queue-source.c:
2216         (rb_play_queue_sync_playing_state),
2217         (rb_play_queue_source_track_info_cell_data_func):
2218         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
2219         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2220         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2221         (impl_can_add_to_queue), (impl_add_to_queue):
2222         * sources/rb-source.c: (rb_source_set_property):
2223         * sources/rb-sourcelist.c: (rb_sourcelist_append):
2224         * sources/rb-static-playlist-source.c:
2225         (rb_static_playlist_source_constructor),
2226         (rb_static_playlist_source_load_from_xml):
2227         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
2228         * widgets/rb-entry-view.c: (rb_entry_view_init),
2229         (rb_entry_view_finalize), (rb_entry_view_append_column),
2230         (rb_entry_view_constructor):
2231         * widgets/rb-song-info.c: (rb_song_info_set_property):
2232         Fix leaks.  From bug #347446.
2234 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2236         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
2237         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
2238         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
2239         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
2240         (add_decoding_pipeline), (profile_bin_find_encoder),
2241         (get_profile_from_mime_type), (extract_track), (transcode_track),
2242         (rb_encoder_gst_encode):
2243         * backends/gstreamer/rb-encoder-gst.h:
2244         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
2245         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
2246         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
2247         (rb_player_gst_construct):
2248         * backends/gstreamer/rb-player-gst.h:
2249         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
2250         * backends/rb-encoder.h:
2251         * backends/rb-player.c: (_rb_player_emit_tick):
2252         * backends/rb-player.h:
2253         * daapsharing/rb-daap-connection.c: (build_message),
2254         (actual_http_response_handler), (http_response_handler),
2255         (http_get), (entry_set_string_prop), (emit_progress_idle),
2256         (handle_server_info), (handle_database_info),
2257         (handle_song_listing), (handle_playlists),
2258         (handle_playlist_entries), (rb_daap_connection_new),
2259         (connected_cb), (rb_daap_connection_do_something),
2260         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
2261         (rb_daap_connection_get_property):
2262         * daapsharing/rb-daap-connection.h:
2263         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
2264         (rb_daap_collision_dialog_new_run):
2265         * daapsharing/rb-daap-dialog.h:
2266         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
2267         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
2268         (DigestToString), (rb_daap_hash_generate):
2269         * daapsharing/rb-daap-hash.h:
2270         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
2271         (resolve_cb), (browse_cb):
2272         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
2273         (resolve_cb), (rb_daap_mdns_browser_resolve),
2274         (rb_daap_mdns_browser_start), (resolver_free):
2275         * daapsharing/rb-daap-mdns-browser.h:
2276         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
2277         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
2278         (publish_cb):
2279         * daapsharing/rb-daap-mdns-publisher.h:
2280         * daapsharing/rb-daap-share.c: (name_collision_cb),
2281         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
2282         (message_set_from_rb_daap_structure), (content_codes_cb),
2283         (session_id_validate), (logout_cb), (update_cb),
2284         (add_entry_to_mlcl), (add_playlist_to_mlcl),
2285         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
2286         (rb_daap_share_server_start), (rb_daap_share_server_stop),
2287         (rb_daap_share_publish_start):
2288         * daapsharing/rb-daap-share.h:
2289         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
2290         (share_password_changed_cb), (rb_daap_sharing_shutdown):
2291         * daapsharing/rb-daap-sharing.h:
2292         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
2293         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
2294         (rb_daap_src_open):
2295         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
2296         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
2297         (rb_daap_structure_parse_container_buffer),
2298         (rb_daap_structure_parse), (gnode_find_node),
2299         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
2300         (print_rb_daap_item):
2301         * daapsharing/rb-daap-structure.h:
2302         * iradio/rb-new-station-dialog.c:
2303         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
2304         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
2305         (rb_new_station_dialog_text_changed):
2306         * iradio/rb-station-properties-dialog.c:
2307         (rb_station_properties_dialog_init),
2308         (rb_station_properties_dialog_new),
2309         (rb_station_properties_dialog_response_cb),
2310         (rb_station_properties_dialog_get_current_entry),
2311         (rb_station_properties_dialog_rated_cb),
2312         (rb_station_properties_dialog_update_rating),
2313         (rb_station_properties_dialog_update_playback_error),
2314         (rb_station_properties_dialog_sync_entries):
2315         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
2316         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
2317         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
2318         (rb_metadata_can_save), (rb_metadata_save):
2319         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
2320         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
2321         (_handle_message), (_new_connection), (main):
2322         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
2323         (rb_metadata_dbus_read_from_message):
2324         * metadata/rb-metadata-dbus.h:
2325         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
2326         (rb_add_id3_tagger), (rb_metadata_init),
2327         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
2328         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
2329         (rb_metadata_gst_new_decoded_pad_cb),
2330         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
2331         * metadata/sj-error.c: (sj_error_quark):
2332         * metadata/sj-error.h:
2333         * metadata/sj-metadata-musicbrainz.c:
2334         (sj_metadata_musicbrainz_instance_init),
2335         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
2336         (get_rdf), (lookup_cd):
2337         * metadata/sj-metadata.c: (sj_metadata_get_type):
2338         * metadata/sj-structures.c:
2339         * metadata/sj-structures.h:
2340         * metadata/test-metadata.c: (load_metadata_cb), (main):
2341         * podcast/rb-feed-podcast-properties-dialog.c:
2342         (rb_feed_podcast_properties_dialog_init),
2343         (rb_feed_podcast_properties_dialog_update_title):
2344         * podcast/rb-feed-podcast-properties-dialog.h:
2345         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
2346         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
2347         (rb_new_podcast_dialog_text_changed):
2348         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
2349         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
2350         (rb_podcast_manager_set_property),
2351         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
2352         (rb_podcast_manager_download_entry),
2353         (rb_podcast_manager_update_feeds),
2354         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
2355         (rb_podcast_manager_copy_post),
2356         (rb_podcast_manager_thread_parse_feed),
2357         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
2358         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
2359         (download_info_free), (download_info_new), (start_job),
2360         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
2361         (download_progress_cb), (download_progress_update_cb),
2362         (rb_podcast_manager_remove_feed),
2363         (rb_podcast_manager_db_entry_deleted_cb),
2364         (rb_podcast_manager_cancel_download),
2365         (rb_podcast_manager_update_synctime),
2366         (rb_podcast_manager_set_remove_files),
2367         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
2368         (rb_podcast_manager_abort_subscribe),
2369         (rb_podcast_manager_get_podcast_dir):
2370         * podcast/rb-podcast-manager.h:
2371         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
2372         (rb_validate_channel_propert), (rb_validate_item_propert),
2373         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
2374         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
2375         (rb_podcast_parse_date), (rb_podcast_parse_time),
2376         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
2377         * podcast/rb-podcast-parse.h:
2378         * podcast/rb-podcast-properties-dialog.c:
2379         (rb_podcast_properties_dialog_init),
2380         (rb_podcast_properties_dialog_get_current_entry),
2381         (rb_podcast_properties_dialog_update_title),
2382         (rb_podcast_properties_dialog_update_duration),
2383         (rb_podcast_properties_dialog_update_date):
2384         * podcast/rb-podcast-properties-dialog.h:
2385         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
2386         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
2387         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
2388         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
2389         (g_sequence_search), (g_sequence_set_aggregate_data),
2390         (g_sequence_node_update_fields), (g_sequence_node_rotate),
2391         (find_min), (g_sequence_node_find_by_pos),
2392         (g_sequence_node_find_closest), (g_sequence_node_free),
2393         (g_sequence_node_split), (g_sequence_node_insert_before),
2394         (g_sequence_node_get_length), (g_sequence_node_remove),
2395         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
2396         (g_sequence_calc_tree_height):
2397         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
2398         (rb_refstring_get):
2399         * rhythmdb/rb-refstring.h:
2400         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
2401         (rhythmdb_gda_init), (dump_model), (execute_query),
2402         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
2403         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
2404         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
2405         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
2406         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
2407         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
2408         * rhythmdb/rhythmdb-gda.h:
2409         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
2410         (rhythmdb_finalize_monitoring), (monitor_entry_file),
2411         (monitor_library_directory), (rhythmdb_check_changed_file),
2412         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
2413         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
2414         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
2415         * rhythmdb/rhythmdb-private.h:
2416         * rhythmdb/rhythmdb-property-model.c:
2417         (rhythmdb_property_model_set_property),
2418         (rhythmdb_property_model_row_inserted_cb),
2419         (rhythmdb_property_model_prop_changed_cb),
2420         (rhythmdb_property_model_compare),
2421         (rhythmdb_property_model_get_value),
2422         (rhythmdb_property_model_iter_nth_child),
2423         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
2424         (rhythmdb_property_model_drag_data_get),
2425         (rhythmdb_property_model_enable_drag),
2426         (rhythmdb_property_model_column_get_type):
2427         * rhythmdb/rhythmdb-property-model.h:
2428         * rhythmdb/rhythmdb-query-model.c:
2429         (rhythmdb_query_model_class_init),
2430         (rhythmdb_query_model_set_property),
2431         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
2432         (rhythmdb_query_model_has_pending_changes),
2433         (rhythmdb_query_model_entry_changed_cb),
2434         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2435         (rhythmdb_query_model_add_entry),
2436         (rhythmdb_query_model_remove_from_main_list),
2437         (rhythmdb_query_model_remove_entry),
2438         (rhythmdb_query_model_drag_data_received),
2439         (rhythmdb_query_model_row_drop_possible),
2440         (rhythmdb_query_model_compute_status_normal),
2441         (rhythmdb_query_model_set_sort_order),
2442         (rhythmdb_query_model_get_entry_index),
2443         (rhythmdb_query_model_base_row_inserted),
2444         (rhythmdb_query_model_base_row_deleted),
2445         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2446         (rhythmdb_query_model_date_sort_func),
2447         (rhythmdb_query_model_within_limit):
2448         * rhythmdb/rhythmdb-query-model.h:
2449         * rhythmdb/rhythmdb-query-results.c:
2450         (rhythmdb_query_results_query_complete):
2451         * rhythmdb/rhythmdb-query-results.h:
2452         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
2453         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
2454         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
2455         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
2456         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
2457         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
2458         (rhythmdb_tree_parser_start_element),
2459         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
2460         (save_entry), (save_entry_type), (save_unknown_entry_type),
2461         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
2462         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
2463         (get_or_create_genre), (remove_entry_from_album),
2464         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2465         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
2466         (search_match_properties), (evaluate_conjunctive_subquery),
2467         (clone_remove_ptr_array_index), (conjunctive_query_albums),
2468         (conjunctive_query_artists), (conjunctive_query_genre),
2469         (conjunctive_query), (split_query_by_disjunctions),
2470         (do_query_recurse), (rhythmdb_tree_entry_foreach),
2471         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2472         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
2473         (rhythmdb_hash_tree_foreach),
2474         (rhythmdb_tree_entry_type_registered):
2475         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
2476         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
2477         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2478         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2479         (rhythmdb_shutdown), (rhythmdb_finalize),
2480         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
2481         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2482         (rhythmdb_entry_example_new),
2483         (set_metadata_string_default_unknown), (is_ghost_entry),
2484         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2485         (rhythmdb_process_metadata_load),
2486         (rhythmdb_process_queued_entry_set_event),
2487         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
2488         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
2489         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
2490         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
2491         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
2492         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2493         (rhythmdb_entry_delete_by_type),
2494         (rhythmdb_propid_from_nice_elt_name),
2495         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
2496         (rhythmdb_compute_status_normal),
2497         (rhythmdb_entry_register_type_alias),
2498         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
2499         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
2500         (rhythmdb_entry_import_error_get_type),
2501         (rhythmdb_entry_podcast_post_get_type),
2502         (rhythmdb_entry_podcast_feed_get_type),
2503         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2504         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
2505         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
2506         * rhythmdb/rhythmdb.h:
2507         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
2508         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
2509         (rb_history_limit_size):
2510         * shell/rb-history.h:
2511         * shell/rb-play-order-linear-loop.c:
2512         (rb_linear_play_order_loop_get_next):
2513         * shell/rb-play-order-linear-loop.h:
2514         * shell/rb-play-order-linear.c:
2515         * shell/rb-play-order-linear.h:
2516         * shell/rb-play-order-queue.c:
2517         (rb_queue_play_order_playing_entry_removed):
2518         * shell/rb-play-order-queue.h:
2519         * shell/rb-play-order-random-by-age-and-rating.c:
2520         * shell/rb-play-order-random-by-age-and-rating.h:
2521         * shell/rb-play-order-random-by-age.c:
2522         (rb_random_by_age_get_entry_weight):
2523         * shell/rb-play-order-random-by-age.h:
2524         * shell/rb-play-order-random-by-rating.c:
2525         * shell/rb-play-order-random-by-rating.h:
2526         * shell/rb-play-order-random-equal-weights.c:
2527         * shell/rb-play-order-random-equal-weights.h:
2528         * shell/rb-play-order-random.c: (rb_random_filter_history),
2529         (rb_random_get_total_weight), (rb_random_play_order_get_next),
2530         (rb_random_db_changed), (rb_random_playing_entry_changed),
2531         (rb_random_db_entry_deleted):
2532         * shell/rb-play-order-shuffle.c: (remove_from_history),
2533         (add_randomly_to_history), (get_query_model_contents),
2534         (rb_shuffle_playing_entry_changed):
2535         * shell/rb-play-order-shuffle.h:
2536         * shell/rb-play-order.c: (rb_play_order_class_init),
2537         (rb_play_order_set_property),
2538         (rb_play_order_playing_source_changed),
2539         (rb_play_order_query_model_changed_cb),
2540         (rb_play_order_query_model_changed),
2541         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
2542         * shell/rb-play-order.h:
2543         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2544         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
2545         (rb_playlist_manager_set_property),
2546         (rb_playlist_manager_parse_file),
2547         (rb_playlist_manager_load_playlists),
2548         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
2549         (rb_playlist_manager_save_playlists),
2550         (rb_playlist_manager_new_playlist),
2551         (rb_playlist_manager_new_playlist_from_selection_data),
2552         (rb_playlist_manager_cmd_new_automatic_playlist),
2553         (rb_playlist_manager_cmd_edit_automatic_playlist),
2554         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
2555         (save_playlist_response_cb), (export_set_extension_cb),
2556         (filter_get_export_filter_label), (setup_format_menu),
2557         (rb_playlist_manager_cmd_save_playlist),
2558         (rb_playlist_manager_get_playlists),
2559         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
2560         (rb_playlist_manager_delete_playlist),
2561         (rb_playlist_manager_export_playlist):
2562         * shell/rb-playlist-manager.h:
2563         * shell/rb-removable-media-manager.c:
2564         (rb_removable_media_manager_class_init),
2565         (rb_removable_media_manager_dispose),
2566         (rb_removable_media_manager_finalize),
2567         (rb_removable_media_manager_set_property),
2568         (split_drive_from_cdda_uri),
2569         (rb_removable_media_manager_playing_uri_changed_cb),
2570         (rb_removable_media_manager_load_media),
2571         (rb_removable_media_manager_volume_mounted_cb),
2572         (remove_volume_by_source),
2573         (rb_removable_media_manager_source_deleted_cb),
2574         (rb_removable_media_manager_volume_unmounted_cb),
2575         (rb_removable_media_manager_mount_volume),
2576         (rb_removable_media_manager_set_uimanager),
2577         (rb_removable_media_manager_scan), (do_transfer),
2578         (rb_removable_media_manager_cmd_copy_tracks):
2579         * shell/rb-removable-media-manager.h:
2580         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
2581         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
2582         (rb_shell_clipboard_sync),
2583         (rb_shell_clipboard_idle_poll_deletions),
2584         (rb_shell_clipboard_cmd_add_to_playlist_new),
2585         (rb_shell_clipboard_playlist_add_cb),
2586         (rb_shell_clipboard_playlist_deleted_cb),
2587         (rb_shell_clipboard_playlist_renamed_cb),
2588         (rb_shell_clipboard_playlist_visible_cb),
2589         (rb_shell_clipboard_playlist_added_cb):
2590         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2591         (rb_shell_player_constructor), (volume_pre_unmount_cb),
2592         (rb_shell_player_init), (rb_shell_player_set_property),
2593         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
2594         (rb_shell_player_open_location),
2595         (rb_shell_player_set_playing_entry),
2596         (rb_shell_player_play_order_update_cb),
2597         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
2598         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
2599         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
2600         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
2601         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2602         (gconf_song_position_slider_visibility_changed),
2603         (rb_shell_player_entry_activated_cb),
2604         (rb_shell_player_property_row_activated_cb),
2605         (rb_shell_player_entry_changed_cb),
2606         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2607         (actually_set_playing_source),
2608         (rb_shell_player_set_playing_source_internal),
2609         (rb_shell_player_get_playing_song_duration), (eos_cb),
2610         (rb_shell_player_error), (error_cb), (info_available_cb),
2611         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
2612         (rb_shell_player_error_get_type):
2613         * shell/rb-shell-player.h:
2614         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
2615         (rb_shell_preferences_append_page),
2616         (share_check_button_toggled_cb),
2617         (password_check_button_toggled_cb), (add_daap_preferences),
2618         (rb_shell_preferences_column_check_changed_cb),
2619         (rb_shell_preferences_sync_column_button),
2620         (rb_shell_preferences_sync),
2621         (rb_shell_preferences_browser_views_activated_cb):
2622         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
2623         (rb_shell_set_property), (rb_shell_get_property),
2624         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
2625         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
2626         (rb_shell_get_visibility), (rb_shell_set_visibility),
2627         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
2628         (rb_shell_register_entry_type_for_source),
2629         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
2630         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
2631         (rb_shell_player_stream_song_changed_cb),
2632         (rb_shell_set_window_title),
2633         (rb_shell_view_smalldisplay_changed_cb),
2634         (rb_shell_view_queue_as_sidebar_changed_cb),
2635         (rb_shell_cmd_plugins), (add_to_library_response_cb),
2636         (rb_shell_cmd_add_folder_to_library),
2637         (rb_shell_cmd_add_file_to_library),
2638         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
2639         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
2640         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
2641         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
2642         (handle_playlist_entry_cb), (rb_shell_load_uri),
2643         (rb_shell_add_to_queue), (rb_shell_present),
2644         (rb_shell_get_song_properties), (rb_shell_set_song_property),
2645         (rb_shell_volume_widget_changed_cb),
2646         (rb_shell_player_volume_changed_cb),
2647         (rb_shell_ui_location_get_type):
2648         * shell/rb-shell.h:
2649         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
2650         (rb_source_header_init), (rb_source_header_set_source_internal),
2651         (rb_source_state_sync), (rb_source_header_clear_search),
2652         (rb_source_header_view_browser_changed_cb):
2653         * shell/rb-source-header.h:
2654         * shell/rb-statusbar.c: (rb_statusbar_construct),
2655         (rb_statusbar_init), (rb_statusbar_finalize),
2656         (rb_statusbar_set_property), (rb_statusbar_set_progress),
2657         (rb_statusbar_source_status_changed_cb):
2658         * shell/rb-statusbar.h:
2659         * shell/rb-tray-icon.c: (rb_tray_icon_init),
2660         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
2661         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
2662         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
2663         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
2664         (rb_audiocd_create_track_entry):
2665         * sources/rb-auto-playlist-source.c:
2666         (rb_auto_playlist_source_class_init),
2667         (rb_auto_playlist_source_constructor),
2668         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
2669         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
2670         (rb_auto_playlist_source_query_complete_cb),
2671         (rb_auto_playlist_source_do_query),
2672         (rb_auto_playlist_source_set_query),
2673         (rb_auto_playlist_source_browser_changed_cb),
2674         (search_action_to_prop):
2675         * sources/rb-auto-playlist-source.h:
2676         * sources/rb-browser-source.c: (rb_browser_source_init),
2677         (rb_browser_source_dispose), (search_action_to_prop),
2678         (rb_browser_source_constructor),
2679         (rb_browser_source_cmd_choose_genre),
2680         (rb_browser_source_cmd_choose_artist),
2681         (rb_browser_source_cmd_choose_album), (impl_search),
2682         (rb_browser_source_browser_changed_cb),
2683         (rb_browser_source_do_query):
2684         * sources/rb-browser-source.h:
2685         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2686         (rb_daap_source_init), (rb_daap_source_dispose),
2687         (rb_daap_source_set_property), (start_browsing),
2688         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2689         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2690         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
2691         (rb_daap_source_get_headers), (rb_daap_source_get_status):
2692         * sources/rb-daap-source.h:
2693         * sources/rb-import-errors-source.h:
2694         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2695         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
2696         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
2697         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
2698         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
2699         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
2700         (ipod_mkdir_with_parents), (build_ipod_dir_name),
2701         (generate_ipod_filename), (ipod_path_from_unix_path),
2702         (impl_delete_thyself):
2703         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2704         (rb_iradio_source_init), (rb_iradio_source_constructor),
2705         (rb_iradio_source_new), (guess_uri_scheme),
2706         (rb_iradio_source_add_station),
2707         (rb_iradio_source_async_update_play_statistics),
2708         (genre_selection_reset_cb), (rb_iradio_source_do_query),
2709         (stations_view_drag_data_received_cb),
2710         (rb_iradio_source_cmd_new_station):
2711         * sources/rb-iradio-source.h:
2712         * sources/rb-library-source.c: (rb_library_source_dispose),
2713         (rb_library_source_constructor),
2714         (rb_library_source_location_button_clicked_cb),
2715         (impl_get_config_widget), (rb_library_source_library_location_cb),
2716         (sanitize_path), (filepath_parse_pattern),
2717         (layout_example_label_update),
2718         (rb_library_source_layout_filename_changed), (build_filename),
2719         (impl_can_paste), (impl_paste),
2720         (rb_library_source_add_child_source),
2721         (rb_library_source_sync_child_sources):
2722         * sources/rb-library-source.h:
2723         * sources/rb-missing-files-source.h:
2724         * sources/rb-play-queue-source.c:
2725         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
2726         * sources/rb-play-queue-source.h:
2727         * sources/rb-playlist-source-recorder.c:
2728         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
2729         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
2730         (rb_playlist_source_recorder_init),
2731         (rb_playlist_source_recorder_new):
2732         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2733         (rb_playlist_source_save_playlist),
2734         (rb_playlist_source_entry_added_cb),
2735         (rb_playlist_source_set_query_model),
2736         (rb_playlist_source_add_to_map):
2737         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2738         (rb_podcast_source_init), (rb_podcast_source_dispose),
2739         (rb_podcast_source_finalize), (search_action_to_prop),
2740         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
2741         (rb_podcast_source_get_property), (rb_podcast_source_new),
2742         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2743         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
2744         (rb_podcast_source_show_browser), (construct_query_from_selection),
2745         (rb_podcast_source_do_query), (impl_get_config_widget),
2746         (rb_podcast_source_btn_file_change_cb),
2747         (posts_view_drag_data_received_cb),
2748         (rb_podcast_source_cmd_download_post),
2749         (rb_podcast_source_cmd_cancel_download),
2750         (rb_podcast_source_cmd_delete_feed),
2751         (rb_podcast_source_cmd_properties_feed),
2752         (rb_podcast_source_cmd_update_feed),
2753         (rb_podcast_source_post_status_cell_data_func),
2754         (rb_podcast_source_post_feed_cell_data_func),
2755         (rb_podcast_source_post_date_cell_data_func),
2756         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
2757         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
2758         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2759         (impl_get_status):
2760         * sources/rb-podcast-source.h:
2761         * sources/rb-removable-media-source.c:
2762         (rb_removable_media_source_constructor):
2763         * sources/rb-removable-media-source.h:
2764         * sources/rb-source.h:
2765         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
2766         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
2767         (rb_sourcelist_model_row_is_separator),
2768         (rb_sourcelist_model_drag_data_received),
2769         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
2770         (rb_sourcelist_model_row_drop_position),
2771         (rb_sourcelist_model_get_drag_target),
2772         (rb_sourcelist_model_row_draggable),
2773         (rb_sourcelist_model_drag_data_get),
2774         (rb_sourcelist_model_row_inserted_cb),
2775         (rb_sourcelist_model_get_group_path):
2776         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2777         (match_source_to_iter), (rb_sourcelist_source_to_iter),
2778         (rb_sourcelist_visible_source_to_iter),
2779         (rb_sourcelist_edit_source_name),
2780         (rb_sourcelist_selection_changed_cb), (button_press_cb),
2781         (key_release_cb), (name_notify_cb), (icon_notify_cb),
2782         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2783         * sources/rb-static-playlist-source.c:
2784         (rb_static_playlist_source_class_init),
2785         (rb_static_playlist_source_constructor),
2786         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
2787         (impl_search), (rb_static_playlist_source_do_query),
2788         (rb_static_playlist_source_browser_changed_cb),
2789         (impl_receive_drag), (impl_save_contents_to_xml),
2790         (rb_static_playlist_source_add_location_swapped),
2791         (search_action_to_prop):
2792         * sources/rb-static-playlist-source.h:
2793         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
2794         * widgets/eggtrayicon.c: (egg_tray_icon_init),
2795         (egg_tray_icon_get_orientation_property),
2796         (egg_tray_icon_send_manager_message),
2797         (egg_tray_icon_update_manager_window),
2798         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
2799         (egg_tray_icon_send_message), (egg_tray_icon_notify):
2800         * widgets/eggtrayicon.h:
2801         * widgets/rb-cell-renderer-pixbuf.c:
2802         (rb_cell_renderer_pixbuf_get_property),
2803         (rb_cell_renderer_pixbuf_set_property),
2804         (rb_cell_renderer_pixbuf_get_size),
2805         (rb_cell_renderer_pixbuf_render),
2806         (rb_cell_renderer_pixbuf_activate):
2807         * widgets/rb-cell-renderer-rating.c:
2808         (rb_cell_renderer_rating_class_init),
2809         (rb_cell_renderer_rating_get_property),
2810         (rb_cell_renderer_rating_set_property),
2811         (rb_cell_renderer_rating_get_size),
2812         (rb_cell_renderer_rating_render),
2813         (rb_cell_renderer_rating_activate):
2814         * widgets/rb-dialog.c:
2815         * widgets/rb-dialog.h:
2816         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
2817         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
2818         (rb_druid_page3_finish_cb):
2819         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
2820         (rb_entry_view_init), (rb_entry_view_set_property),
2821         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
2822         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
2823         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
2824         (rb_entry_view_set_sorting_order),
2825         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
2826         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2827         (rb_entry_view_playing_song_changed),
2828         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
2829         (rb_entry_view_scroll_to_entry), (set_column_visibility),
2830         (rb_entry_view_set_fixed_column_width),
2831         (rb_entry_view_get_time_date_column_sample),
2832         (rb_entry_view_state_get_type):
2833         * widgets/rb-entry-view.h:
2834         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
2835         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
2836         (changed_idle_callback), (rb_header_elapsed_changed_cb):
2837         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
2838         (update_browser_property_visibilty),
2839         (rb_library_browser_construct_query), (restore_selection),
2840         (rebuild_child_model), (rb_library_browser_set_selection),
2841         (rb_library_browser_set_model):
2842         * widgets/rb-library-browser.h:
2843         * widgets/rb-property-view.c: (rb_property_view_class_init),
2844         (rb_property_view_set_property), (rb_property_view_reset),
2845         (rb_property_view_get_model), (rb_property_view_constructor),
2846         (rb_property_view_set_selection),
2847         (rb_property_view_selection_changed_cb),
2848         (rb_property_view_button_press_cb),
2849         (rb_property_view_set_search_func):
2850         * widgets/rb-query-creator-private.h:
2851         * widgets/rb-query-creator-properties.c:
2852         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
2853         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
2854         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
2855         (relativeTimeCriteriaCreateWidget),
2856         (relativeTimeCriteriaSetWidgetData):
2857         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2858         (rb_query_creator_dispose), (rb_query_creator_load_query),
2859         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
2860         (get_property_index_from_proptype), (select_criteria_from_value),
2861         (create_property_option_menu), (create_criteria_option_menu),
2862         (sort_option_menu_changed), (setup_sort_option_menu):
2863         * widgets/rb-query-creator.h:
2864         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
2865         (rb_rating_render_stars):
2866         * widgets/rb-rating-helper.h:
2867         * widgets/rb-rating.c: (rb_rating_expose):
2868         * widgets/rb-rating.h:
2869         * widgets/rb-search-entry.c: (rb_search_entry_clear),
2870         (rb_search_entry_timeout_cb):
2871         * widgets/rb-search-entry.h:
2872         * widgets/rb-song-info.c: (rb_song_info_construct_single),
2873         (rb_song_info_constructor), (rb_song_info_new),
2874         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
2875         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
2876         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2877         (rb_song_info_query_model_changed_cb),
2878         (rb_song_info_sync_entries_multiple),
2879         (rb_song_info_sync_entry_single):
2880         Strip all trailing whitespace.  Fixes #344293.
2882 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
2884         * doc/reference/Makefile.am: Fix GTK Doc Build
2886 2006-07-13  James Livingston  <doclivingston@gmail.com>
2888         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
2890         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
2891         instead of the LOCATION, and don't try to get the directory listing
2892         for http URI schemes
2894         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
2895         invalid utf8 in the error message, since apparently it can happen.
2897 2006-07-12  William Jon McCann  <mccann@jhu.edu>
2899         * sources/rb-import-errors-source.c:
2900         (rb_import_errors_source_class_init),
2901         (rb_import_errors_source_init),
2902         (rb_import_errors_source_constructor),
2903         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
2904         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
2905         * sources/rb-missing-files-source.c:
2906         (rb_missing_files_source_class_init),
2907         (rb_missing_files_source_init),
2908         (rb_missing_files_source_constructor),
2909         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
2910         (rb_missing_files_source_songs_sort_order_changed_cb),
2911         (impl_get_status):
2912         * sources/rb-source.c: (rb_source_class_init),
2913         (rb_source_finalize), (update_visibility_idle),
2914         (queue_update_visibility), (rb_source_set_hidden_when_empty),
2915         (rb_source_set_property), (rb_source_get_property),
2916         (default_get_status), (rb_source_update_play_statistics),
2917         (default_add_to_queue), (_rb_source_show_popup),
2918         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
2919         (rb_source_gather_selected_properties),
2920         (_rb_source_register_action_group):
2921         * sources/rb-source.h:
2922         * sources/rb-sourcelist.c: (visibility_notify_cb):
2923         Don't use a fake model for import-errors and missing-files
2924         sources.  Add a new source property "hidden-when-empty".
2925         Update source visibility in an idle.  Clean up some whitespace.
2926         From bug #346800
2928 2006-07-12  James Livingston  <doclivingston@gmail.com>
2930         * bindings/python/rb.defs:
2931         * bindings/python/rb.override: bind rb_error_dialog
2933         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
2934         the current working directory for uninstalled plugins, and add the
2935         class name to the method name.
2937 2006-07-12  James Livingston  <doclivingston@gmail.com>
2939         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
2940         the sources EOF type if it's NULL. Fixes #346284.
2942 2006-07-12  James Livingston  <doclivingston@gmail.com>
2944         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
2945         I accidently committed. Nothing to see here, move along...
2947 2006-07-11  James Livingston  <doclivingston@gmail.com>
2949         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2950         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
2951         Unknown.
2953 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2955         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
2957 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2959         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
2960         Don't try to set mtime if we've deleted the entry.
2962 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2964         * bindings/python/rhythmdb.defs:
2965         * rhythmdb/rhythmdb.c:
2966         * rhythmdb/rhythmdb.h:
2967         * rhythmdb/rhythmdb-private.h:
2968         * rhythmdb/rhythmdb-query.c:
2969         Move data structures holding registered entry types inside the
2970         RhythmDB object, and add a vfunc called when new types are registered.
2971         Add a flag to RhythmDBEntryType specifying whether entries of the type
2972         should be saved to the on-disk database.
2974         * sources/rb-audiocd-source.c:
2975         * sources/rb-daap-source.c:
2976         * sources/rb-ipod-source.c:
2977         * plugins/generic-player/rb-generic-player-source.c:
2978         * plugins/generic-player/rb-nokia770-source.c:
2979         * plugins/generic-player/rb-psp-source.c:
2980         Adjust to the above changes.
2982         * rhythmdb/rhythmdb-tree.c:
2983         If the type for an entry hasn't been registered yet, store the entry's
2984         properties as-is, and convert them to a real entry when the type is
2985         registered.  If the type doesn't get registered, save the entry back
2986         to the database unmodified.  From #330226.
2988 2006-07-10  James Livingston  <doclivingston@gmail.com>
2990         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
2991         os.path.unlink to os.unlink, so removing stuff works.
2993 2006-07-10  James Livingston  <doclivingston@gmail.com>
2995         patch by: Ed Catmur  <ed@catmur.co.uk>
2996               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
2998         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2999         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3000         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
3001         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
3002         internals of the cover database and Amazon lookup engine, and add
3003         support for loading art from the local file system. Fixes #345688.
3005         * plugins/rb/Coroutine.py:
3006         * plugins/rb/Makefile.am:
3007         * plugins/rb/__init__.py: Add the Coroutine class to the common python
3008         plugin classes.
3010 2006-07-10  James Livingston  <doclivingston@gmail.com>
3012         * tests/Makefile.am: don't run the benchmark when doing "make check"
3014         * po/POTFILES.in: more build fixes, from Matti Lindell
3015         <feenixx@hotmail.com>. Fixes #347049.
3018 2006-07-10  James Livingston  <doclivingston@gmail.com>
3020         * plugins/cd-recorder/Makefile.am: build fixes
3022         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
3023         attempt to change properties if we couldn't create an entry.
3025         * shell/rb-source-header.c: (rb_source_header_init),
3026         (rb_source_header_view_browser_changed_cb),
3027         (rb_source_header_sync_control_state):
3028         * shell/rb-tray-icon.c:
3029         * widgets/Makefile.am:
3030         * widgets/disclosure-widget.c:
3031         * widgets/disclosure-widget.h: remove the remanents of the disclosure
3032         widget, as it hasn't been used for a while.
3034 2006-07-09  William Jon McCann  <mccann@jhu.edu>
3036         * Makefile.am:
3037         * configure.ac:
3038         * data/ui/rhythmbox-ui.xml:
3039         * plugins/Makefile.am:
3040         * plugins/cd-recorder/.cvsignore:
3041         * plugins/cd-recorder/Makefile.am:
3042         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
3043         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
3044         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
3045         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
3046         (source_burn), (cmd_burn_source), (playlist_entries_changed),
3047         (playlist_row_inserted_cb), (update_source),
3048         (shell_selected_source_notify_cb), (impl_activate),
3049         (impl_deactivate):
3050         * shell/Makefile.am:
3051         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
3052         (rb_playlist_manager_cmd_save_playlist):
3053         * shell/rb-shell.c: (rb_shell_select_source):
3054         * sources/Makefile.am:
3055         * sources/rb-playlist-source-recorder.c:
3056         (rb_playlist_source_recorder_new):
3057         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3058         (rb_playlist_source_add_to_map):
3059         * sources/rb-playlist-source.h:
3060         Move cd burning into a plugin.  Fixes #344300.
3062 2006-07-10  James Livingston  <doclivingston@gmail.com>
3064         * lib/eel-gconf-extensions.c:
3065         * shell/rb-shell.c: remove some ununsed gnomeui includes
3067         * widgets/Makefile.am:
3068         * widgets/rb-song-display-box.c:
3069         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
3070         since it isn't acutally used anywhere. Fixes #346926
3072 2006-07-09  James Livingston  <doclivingston@gmail.com>
3074         * bindings/python/rb.defs:
3075         * bindings/python/rb.override:
3076         * lib/rb-debug.c: (rb_debug_real):
3077         * lib/rb-debug.h:
3078         * plugins/rb/__init__.py: don't print out an extra newline when
3079         diverting python print statements to RB's debug log.
3081 2006-07-09  James Livingston  <doclivingston@gmail.com>
3083         * rhythmdb/rhythmdb-property-model.c:
3084         (rhythmdb_property_model_drag_data_get):
3085         * sources/rb-sourcelist-model.c:
3086         (rb_sourcelist_model_row_draggable),
3087         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
3088         from the row reference is still valid. Fixes #346709.
3090 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3092         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
3094         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
3095         If all selected entries have the same rating, use that as the initial
3096         rating for the multiple song info dialog.  Fixes #345970.
3098 2006-07-09  James Livingston  <doclivingston@gmail.com>
3100         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
3101         to prevent #343345:
3102                 - don't ever scale to 1x1, just hide the image in that case
3103                 - don't fade when the window is minimised
3104                 - use the last-good allocation width, not the current one - as
3105                   it sometimes get weird values.
3107 2006-07-08  William Jon McCann  <mccann@jhu.edu>
3109         * data/ui/rhythmbox-ui.xml:
3110         * shell/rb-shell.c:
3111         Remove Import audio CD from menu.  Fixes #339732
3113 2006-07-08  James Livingston  <doclivingston@gmail.com>
3115         * metadata/test-metadata.c: (print_metadata_string),
3116         (load_metadata_cb): print out all the metadata we have read, not just
3117         a few.
3119         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
3120         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
3122 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3124         * plugins/lyrics/lyrics.py:
3125         Change the lyrics cache location to match Quod Libet's,
3126         and fix the '&' -> 'and' substitution to require spaces.
3128 2006-07-08  James Livingston  <doclivingston@gmail.com>
3130         * bindings/python/rb.defs:
3131         * bindings/python/rb.override: bind rb_debug_real to rb._debug
3133         * configure.ac:
3134         * plugins/Makefile.am:
3135         * plugins/rb-python-module.c: (rb_python_module_init_python):
3136         * plugins/rb/Makefile.am: add a place to put common python classes.
3137         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
3138         rb module/
3140         * plugins/lyrics/Makefile.am:
3141         * plugins/lyrics/Loader.py:
3142         * plugins/artdisplay/artdisplay/Makefile.am:
3143         * plugins/artdisplay/artdisplay/Loader.py:
3144         * plugins/rb/Loader.py: move the loader class to rb.Loader
3146         * plugins/rb/__init__.py: redirect stdout from python (e.g.
3147         "print ...") to rb_debug. error output (e.g. exceptions) are still
3148         printed on stderr.
3150         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3151         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3152         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
3153         instead of Loader.
3155         Fixes #346895.
3157 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3159         * shell/rb-shell-player.xml:
3160         * shell/rb-shell-player.h:
3161         Correct the details of the playing-song-property-changed signal.
3163 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3165         * lib/rb-marshal.list:
3166         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3167         (rb_shell_player_entry_changed_cb):
3168         * shell/rb-shell-player.h:
3169         * shell/rb-shell-player.xml:
3170         Emit a dbus signal when a property is changed on the playing entry.
3171         Fixes #332461.
3173 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3175         * rhythmdb/rhythmdb-private.h:
3176         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3177         Fix build break with gcc 4.1 by changing RBRefString pointers into
3178         gpointers.
3180 2006-07-07  James Livingston  <doclivingston@gmail.com>
3182         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
3183         remove an extraneous !, which caused it not to monitor folders in the
3184         library with no tracks in them. Fixes #346759.
3186 2006-07-07  James Livingston  <doclivingston@gmail.com>
3188         * rhythmdb/rhythmdb-private.h:
3189         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
3190         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
3191         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
3192         (rhythmdb_entry_get_string):
3193         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
3194         flags for the affected properties. _sync_mirrored will get run
3195         automatically when a dirty property is accessed, which improves
3196         performance a bit (especially during startup) as we don't need to sync
3197         every time they change. From #325215.
3199         * tests/bench-rhythmdb-load.c
3200         * tests/Makefile.am: add a RhythmDB loading benchmark.
3202 2006-07-06  James Livingston  <doclivingston@gmail.com>
3204         * bindings/python/rb.defs:
3205         * bindings/python/rb.override: some more fixes, so that
3206         python classes derived from RBSource work correctly.
3208 2006-07-06  James Livingston  <doclivingston@gmail.com>
3210         * configure.ac: bump pygtk requirements to 2.8, since we're already
3211         using some features of it, and weird things will happen if people are
3212         actually trying to use pygtk 2.6.
3214         * bindings/python/rb.override:
3215         * bindings/python/rhythmdb.defs:
3216         * bindings/python/rhythmdb.override: allow python to set
3217         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
3219         * sources/rb-browser-source.c: remove some left over member variables
3221 2006-07-06  James Livingston  <doclivingston@gmail.com>
3223         * rhythmdb/rhythmdb.c:
3224         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
3225         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
3226         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
3227         former is pointless (as rhythmdb already knows which it should use)
3228         and the latter doesn't seem useful at all, and possibly bad. From
3229         #330226.
3231         * bindings/python/rhythmdb.defs:
3232         * bindings/python/rhythmdb.override:
3233         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
3234         (handle_song_listing):
3235         * podcast/rb-podcast-manager.c:
3236         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
3237         (rb_podcast_manager_insert_feed):
3238         * sources/rb-audiocd-source.c: (entry_set_string_prop),
3239         (rb_audiocd_create_track_entry):
3240         * sources/rb-ipod-source.c: (entry_set_string_prop),
3241         (add_ipod_song_to_db):
3242         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
3243         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
3245 2006-07-05  James Livingston  <doclivingston@gmail.com>
3247         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
3248         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
3249         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
3250         totem-plparser gives us, or the file name if it doesn't give us
3251         anything. Set the default file name when saving too. Fixes #345261
3253 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3255         patch by: Ed Catmur  <ed@catmur.co.uk>
3257         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
3258         Skip all hidden directories, not just trash, and skip unreadable
3259         files.  Fixes #346322.
3261 2006-07-04  James Livingston  <doclivingston@gmail.com>
3263         * plugins/rb-module.h:
3264         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
3265         (rb_module_new):
3266         * plugins/rb-plugin.h:
3267         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
3268         (rb_plugin_finalise), (rb_plugin_set_property),
3269         (rb_plugin_get_property), (rb_plugin_activate),
3270         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
3271         (rb_plugin_find_file):
3272         * plugins/rb-plugins-engine.c: (load_plugin_module):
3273         * plugins/rb-python-module.c: (rb_python_module_new_object),
3274         (rb_python_module_new):
3275         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
3276         rb_plugin_find_file method for locating plugin-specific data. Fixes
3277         346473.
3279         * bindings/python/rb.defs:
3280         * plugins/Makefile.am:
3281         * plugins/generic-player/rb-generic-player-plugin.c:
3282         (create_source_cb):
3283         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
3285 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3287         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
3288         (rb_metadata_can_save), (rb_metadata_save):
3289         Protect the dbus connection with a mutex.
3291 2006-07-03  James Livingston  <doclivingston@gmail.com>
3293         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
3294         case of the parser/tagger not being able to be created.
3296 2006-07-03  James Livingston  <doclivingston@gmail.com>
3298         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3300         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
3301         window resizable, as it used to be. Fixes #345940.
3303 2006-07-01  James Livingston  <doclivingston@gmail.com>
3305         Patch from Ståle Lyngaas  <staale@lyngaas.com>
3307         * rhythmdb/rhythmdb.h:
3308         * rhythmdb/rhythmdb-private.h:
3309         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3310         (rhythmdb_tree_parser_end_element), (save_entry):
3311         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
3312         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
3313         (set_props_from_metadata), (rhythmdb_entry_set_internal),
3314         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
3315         MusicBrainz track IDs in the database, and bump the on-disk version
3316         number to trigger a metadata reload.
3318         * backends/gstreamer/rb-player-gst.c: (process_tag):
3319         * metadata/rb-metadata-common.c:
3320         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
3321         (rb_metadata_gst_field_to_gst_tag):
3322         * metadata/rb-metadata.h: grab MB track IDs and use them.
3324         * plugins/audioscrobbler/rb-audioscrobbler.c:
3325         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
3326         (rb_audioscrobbler_timeout_cb),
3327         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
3328         the other metadata. Fixes #343491.
3330 2006-06-30  James Livingston  <doclivingston@gmail.com>
3332         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
3333         method.
3335 2006-06-30  James Livingston  <doclivingston@gmail.com>
3337         * bindings/python/rb.defs:
3338         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3339         (rb_browser_source_songs_show_popup_cb),
3340         (default_show_entry_popup):
3341         * sources/rb-browser-source.h:
3342         * sources/rb-library-source.c: (rb_library_source_class_init),
3343         (rb_library_source_constructor), (impl_show_popup): allow
3344         RBBrowserSource-derived sources to override the entry context menu
3345         properly - by making it a virtual function, rather than relying on
3346         signal handler order (which doesn't really work).
3348 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3350         * rhythmdb/rhythmdb-query-model.c:
3351         (rhythmdb_query_model_reapply_query_cb):
3352         Use the original query, not the preprocessed query, when redoing
3353         the query to pick up entries that previously didn't match.
3354         Preprocessing the query twice is bad.  Fixes #346186.
3356 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3358         * plugins/audioscrobbler/rb-audioscrobbler.c:
3359         (rb_audioscrobbler_song_changed_cb):
3360         Just check if the elapsed time has been reset, rather
3361         than checking if it's a different track.  Fixes #344827.
3363 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3365         * backends/gstreamer/rb-player-gst.c:
3366         Set cdda source read-speed to 1.  Fixes gaps in playback while the
3367         drive spins up, #344576.
3369 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3371         * plugins/audioscrobbler/rb-audioscrobbler.c:
3372         (rb_audioscrobbler_perform):
3373         Use HTTP/1.1.  Fixes #345895.
3375 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3377         * lib/rb-preferences.h:
3378         * lib/rb-proxy-config.c: (rb_proxy_config_init),
3379         (check_auto_proxy_config), (get_proxy_config):
3380         Don't try to use a HTTP proxy if no proxy host is specified.
3381         Alert the user to the fact that we don't support automatic proxy
3382         configuration as infrequently as possible.  From #345712.
3384 2006-06-25  James Livingston  <doclivingston@gmail.com>
3386         * rhythmdb/rhythmdb-property-model.c:
3387         (rhythmdb_property_model_set_property): connect to the
3388         "post-entry-delete" signal, rather than "entry-deleted". This ensures
3389         things get removed correctly, fixes #338183.
3391 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3393         * rhythmdb/rhythmdb-query-model.c:
3394         (rhythmdb_query_model_drag_data_received):
3395         Fix build break.
3397 2006-06-25  James Livingston  <doclivingston@gmail.com>
3399         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3401         * widgets/rb-search-entry.c: (rb_search_entry_init),
3402         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
3403         search box have a pale yellow background when it's in use, except for
3404         when the user has an "accessability" theme. Code based heavily on
3405         Epiphany's. Fixes #344416.
3407 2006-06-25  James Livingston  <doclivingston@gmail.com>
3409         * plugins/lyrics/lyrics.py:
3410         * plugins/pythonconsole/pythonconsole.py:
3411         * plugins/sample-python/sample-python.py: don't import gettext stuff
3412         as _, as the C code does this for us. Fixes i18n for python plugins,
3413         #343081
3415 2006-06-25  James Livingston  <doclivingston@gmail.com>
3417         * rhythmdb/rhythmdb-query-model.c:
3418         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
3419         a model use a reorder rather then deleting and re-adding the entry.
3420         This means it does do weird things like stop playback of a track that
3421         is dragged, fixing #337657.
3423 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3425         * metadata/rb-metadata-dbus-service.c:
3426         Add missing #include <glib/gi18n.h> from previous commit.
3428 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3430         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3432         * metadata/rb-metadata-dbus-service.c: (main):
3433         Initialize gettext in the metadata helper.
3434         * metadata/rb-metadata-gst.c:
3435         Make some strings translatable.  Fixes #345286.
3437 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3439         * configure.ac:
3440         * lib/Makefile.am:
3441         * lib/rb-stock-icons.c: (rb_stock_icons_init):
3442         Inline the custom icons so they can always be loaded, but are still
3443         themable.  Fixes #345796.
3445 2006-06-23  James Livingston  <doclivingston@gmail.com>
3447         * sources/rb-auto-playlist-source.c:
3448         (rb_auto_playlist_source_do_query): stop the search box being applied
3449         for limits in auto playlists. Fixes #345307.
3451 2006-06-23  James Livingston  <doclivingston@gmail.com>
3453         * shell/rb-shell-clipboard.c:
3454         (rb_shell_clipboard_set_source_internal),
3455         (rb_shell_clipboard_sync), (add_playlist_to_menu),
3456         (rebuild_playlist_menu): don't use the add-to-playlist menu for
3457         non-library tracks, as we don't supprot it yet. From #345248.
3459 2006-06-23  James Livingston  <doclivingston@gmail.com>
3461         patch by: Brian Cameron  <brian.cameron@sun.com>
3463         * plugins/generic-player/rb-generic-player-plugin.c:
3464         * plugins/generic-player/rb-generic-player-source.c:
3465         * plugins/generic-player/rb-nokia770-source.c:
3466         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
3467         Fixes 345673.
3469 2006-06-22  James Livingston  <doclivingston@gmail.com>
3471         * backends/rb-player.c: (rb_player_interface_init):
3472         * lib/rb-marshal.list:
3473         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3474         * rhythmdb/rhythmdb-query-model.c:
3475         (rhythmdb_query_model_class_init):
3476         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
3477         * shell/rb-shell-player.c: (rb_shell_player_class_init):
3478         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
3479         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
3480         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3481         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
3482         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
3483         possible not.
3485 2006-06-20  James Livingston  <doclivingston@gmail.com>
3487         patch by Alex Lancaster  <alexl@users.sourceforge.net>
3489         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
3490         metadata to clients. Fixes #345276.
3492 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3494         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
3495         (rb_add_id3_tagger):
3496         Fix plugin/element version detection for id3v2mux.
3498 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3500         * sources/rb-source.c: (rb_source_finalize),
3501         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
3502         (_autohide_update_visibility),
3503         (_rb_autohide_source_post_entry_deleted_cb),
3504         (_rb_autohide_source_row_inserted_cb),
3505         (_rb_source_hide_when_empty):
3506         Use post-entry-delete signal to update status and autohide sources.
3508 2006-06-20  James Livingston  <doclivingston@gmail.com>
3510         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
3511         "selection changed" idle callback, if present.
3513 2006-06-19  James Livingston  <doclivingston@gmail.com>
3515         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3517         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
3518         don't try to translate the empty string. Fixes #345285.
3520 2006-06-19  James Livingston  <doclivingston@gmail.com>
3522         * bindings/python/rhythmdb.override: more python binding fixes
3524 2006-06-19  James Livingston  <doclivingston@gmail.com>
3526         * lib/rb-util.c: (rb_copy_function):
3527         * lib/rb-util.h: add a function that returns the same pointer it was
3528         passed.
3530         * rhythmdb/rhythmdb.h:
3531         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
3532         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
3533         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
3534         and RhythmDBEntryType into boxed types. This allows them to be used
3535         from python. Note that entry-types aren't actually reference counted
3536         (yet).
3538         * bindings/python/rb.defs:
3539         * bindings/python/rhythmdb.defs:
3540         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
3541         return types of some bindings.
3543         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
3544         (process_added_entries_cb), (rhythmdb_entry_finalize),
3545         (rhythmdb_entry_delete):
3546         * daapsharing/rb-daap-connection.c:
3547         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
3548         (rb_daap_connection_get_property):
3549         * plugins/generic-player/rb-generic-player-source.c:
3550         (rb_generic_player_source_load_songs), (load_playlist_file):
3551         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3552         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
3553         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
3554         (idle_process_update), (rhythmdb_query_model_add_entry),
3555         (rhythmdb_query_model_insert_into_main_list),
3556         (rhythmdb_query_model_insert_into_limited_list),
3557         (rhythmdb_query_model_remove_from_main_list),
3558         (rhythmdb_query_model_remove_from_limited_list),
3559         (rhythmdb_query_model_drag_data_received),
3560         (rhythmdb_query_model_add_results),
3561         (rhythmdb_query_model_get_column_type),
3562         (rhythmdb_query_model_get_value):
3563         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3564         (rhythmdb_tree_entry_delete), (remove_one_song):
3565         * shell/rb-play-order-linear-loop.c:
3566         (rb_linear_play_order_loop_get_next),
3567         (rb_linear_play_order_loop_get_previous):
3568         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
3569         (rb_linear_play_order_get_previous):
3570         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
3571         (rb_queue_play_order_get_previous):
3572         * shell/rb-play-order-random.c: (rb_random_play_order_init),
3573         (rb_random_filter_history), (rb_random_play_order_get_next),
3574         (rb_random_play_order_go_next), (rb_random_db_changed),
3575         (rb_random_playing_entry_changed):
3576         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
3577         (remove_from_history), (add_randomly_to_history),
3578         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
3579         * shell/rb-play-order.c: (rb_play_order_class_init),
3580         (rb_play_order_set_property), (rb_play_order_get_property),
3581         (rb_play_order_update_have_next_previous):
3582         * shell/rb-play-order.h:
3583         * shell/rb-shell-clipboard.c:
3584         (rb_shell_clipboard_process_deletions),
3585         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
3586         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
3587         * sources/rb-auto-playlist-source.c:
3588         (rb_auto_playlist_source_constructor):
3589         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3590         (rb_browser_source_set_property), (rb_browser_source_get_property),
3591         (rb_browser_source_do_query):
3592         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
3593         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
3594         * sources/rb-ipod-source.c: (add_rb_playlist),
3595         (add_ipod_song_to_db), (impl_paste):
3596         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3597         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
3598         * sources/rb-library-source.c: (layout_example_label_update):
3599         * sources/rb-missing-files-source.c:
3600         (rb_missing_files_source_class_init),
3601         (rb_missing_files_source_set_property),
3602         (rb_missing_files_source_get_property),
3603         (rb_missing_files_source_new):
3604         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3605         (rb_playlist_source_set_property),
3606         (rb_playlist_source_get_property):
3607         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3608         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
3609         (construct_query_from_selection):
3610         * sources/rb-removable-media-source.c: (impl_delete_thyself):
3611         * sources/rb-static-playlist-source.c:
3612         (rb_static_playlist_source_constructor),
3613         (rb_static_playlist_source_add_location_internal):
3614         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3615         * widgets/rb-header.c: (rb_header_class_init),
3616         (rb_header_set_property), (rb_header_get_property):
3617         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
3618         (rb_library_browser_set_property),
3619         (rb_library_browser_get_property):
3620         * widgets/rb-song-info.c: (rb_song_info_class_init),
3621         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
3622         change, do s/pointer/boxed/ in many places and free entry-types
3623         properly.
3625 2006-06-18  James Livingston  <doclivingston@gmail.com>
3627         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
3628         unushed GThreadPool non-exclusive threads every now and then.
3630         * rhythmdb/rhythmdb-private.h:
3631         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
3632         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
3633         threads. Fixes #341593
3635 2006-06-19  James Livingston  <doclivingston@gmail.com>
3637         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3638         the "Track number" checkbox actually work for playlists. From #329986.
3640 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3642         * plugins/generic-player/rb-generic-player-source.c:
3643         Get playlist and audio folder information from HAL.  Fixes #333845.
3645 2006-06-18  James Livingston  <doclivingston@gmail.com>
3647         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
3649         * widgets/rb-entry-view.h:
3650         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3651         (rb_entry_view_append_column_custom),
3652         (rb_entry_view_insert_column_custom): add support for inserting custom
3653         columns at arbitrary locations, rather than just appending to the end.
3655         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3656         the playlists "track number" column go at the start, and add a normal
3657         track number column. Fixes #329986.
3659 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
3661         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
3662         a mnemonic conflict.  Add ellipses to the edit button.
3663         * sources/rb-library-source.c:
3664         (rb_library_source_edit_profile_clicked_cb),
3665         (impl_get_config_widget):  Hide dialog separator.  Assign a 
3666         mnemonic widget to the labels. Fixes #344114.
3668 2006-06-18  James Livingston  <doclivingston@gmail.com>
3670         * configure.ac: bump version
3671         * NEWS: add NEWS for 0.9.5
3673 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3675         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
3676         (rb_uri_handle_recursively):
3677         Don't attempt to recurse into directories we can't open.  
3678         Fixes #341485.
3680 2006-06-18  James Livingston  <doclivingston@gmail.com>
3682         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
3684         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
3685         #344610.
3687 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3689         * bindings/python/rb.defs:
3690         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
3691         * shell/rb-shell-player.h:
3692         * shell/rb-shell.c: (rb_shell_play_entry):
3693         Add source parameter to rb_shell_player_play_entry, using the selected
3694         source if not specified.
3696         * shell/rb-play-order.c: (rb_play_order_class_init),
3697         (rb_play_order_finalize), (rb_play_order_query_model_changed),
3698         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
3699         (default_playing_entry_removed):
3700         * shell/rb-play-order.h:
3701         Move entry removal handling back to the row-deleted signal, as we need
3702         the entry to be present in the model.  When changing to the next entry
3703         after the playing entry is deleted, set the new entry as the playing
3704         entry and then sync it to the player in an idle handler, so we don't
3705         end up playing it if it was removed too.
3706         * shell/rb-play-order-queue.c:
3707         (rb_queue_play_order_playing_entry_changed),
3708         (rb_queue_play_order_playing_entry_removed):
3709         Use the playing-entry-removed handler from the play order class,
3710         setting a flag so we don't try to remove the already-removed entry
3711         from the model.
3713         This makes removal of the playing entry from playlists etc. work more
3714         or less correctly for all play orders.  Fixes #344627.
3716 2006-06-17  James Livingston  <doclivingston@gmail.com>
3718         patch by: Elijah Newren  <newren@gmail.com>
3720         * tests/test-rhythmdb.c: fix the build with older versions of check
3721         (again). Fixes #343718.
3723 2006-06-17  James Livingston  <doclivingston@gmail.com>
3725         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
3726         name for capsfilter's "caps" property. Fixes #344968.
3728 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3730         * shell/rb-shell-player.c: (rb_shell_player_playpause):
3731         Don't leak the selected entry list when finding an entry to play.
3733 2006-06-17  James Livingston  <doclivingston@gmail.com>
3735         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
3736         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
3737         as a O(1) one works fine, and it will get called often when the user
3738         deleted multiple tracks. Part of #344922.
3740 2006-06-17  James Livingston  <doclivingston@gmail.com>
3742         * shell/rb-shell-player.c: (rb_shell_player_stop): make
3743         rb_shell_player_stop and rb_shell_player_playpause not mutually
3744         recursive. Fixed #336912.
3746 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3748         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
3749         Treat nested elements inside properties as unknown.  Fixes parsing of
3750         podcast feeds with unescaped HTML in description tags, bug #344532.
3752 2006-06-15  William Jon McCann  <mccann@jhu.edu>
3754         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
3755         when quitting.  Fixes #344875.
3757 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3759         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
3760         Move the playing-entry-removed handling to after the normal entry
3761         delete handling, since we're called after the entry has been removed
3762         from the query model now.  Fixes crashes described in #344627.
3764 2006-06-13  William Jon McCann  <mccann@jhu.edu>
3766         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
3767         (rb_rating_get_rating_from_widget):
3768         * widgets/rb-rating.c: (rb_rating_class_init),
3769         (rb_rating_finalize), (rb_rating_get_property),
3770         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
3771         (rb_rating_button_press_cb):
3772         Don't crash when ratings icons can't be found.  Fixes #344533.
3774 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3776         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
3778 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3780         * Makefile.am:
3781         * configure.ac:
3782         * remote/Makefile.am:
3783         * remote/dbus/Makefile.am:
3784         * remote/dbus/rb-client.c:
3785         * shell/Makefile.am:
3786         New dbus client program providing --play/--next etc. arguments.
3787         Fixes #340863, #155763.
3789 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3791         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
3792         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
3794 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
3796         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
3798         * rhythmdb/rhythmdb-query-model.c:
3799         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
3800         to Library incorrectly
3802 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3804         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
3805         Return input string untouched if gnome_vfs_uri_new returns NULL.
3806         * sources/rb-static-playlist-source.c: (impl_receive_drag),
3807         (rb_static_playlist_source_add_list_uri):
3808         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
3809         URIs don't break it.  Fixes #339033.
3811 2006-06-08  James Livingston  <doclivingston@gmail.com>
3813         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
3814         for sources on the edge (i.e. the queue). Fixes #328409.
3816         * sources/rb-ipod-source.c: fix typo
3818 2006-06-08  James Livingston  <doclivingston@gmail.com>
3820         * configure.ac:
3821         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
3822         --enable-ipod-writing to enable the ipod syncing code.
3824 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3826         * sources/rb-library-source.c: (layout_example_label_update):
3827         add missing comma so we don't generate broken markup.
3829 2006-06-08  James Livingston  <doclivingston@gmail.com>
3831         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
3832         tag-merging with id3v2mux as well as id3mux. From #342330.
3834 2006-06-07  James Livingston  <doclivingston@gmail.com>
3836         * tests/test-rhythmdb.c: #define fail_if for old version of check
3837         which don't have it. Hopefully fixes #343718.
3839 2006-06-07  James Livingston  <doclivingston@gmail.com>
3841         * shell/rb-playlist-manager.c:
3842         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
3843         g_value_array_free with NULL. Fixes #341053.
3845 2006-06-07  James Livingston  <doclivingston@gmail.com>
3847         * shell/rb-playlist-manager.c:
3848         (rb_playlist_manager_playlist_entries_changed),
3849         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
3850         instead of "row-removed", which fixes updating "burn playlist"
3851         sensitivity. Fixes #331119.
3853 2006-06-07  James Livingston  <doclivingston@gmail.com>
3855         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
3856         rather than restarting if the source uses _RETRY and there is an
3857         actual error (like an undecodable stream) rather than it just dropping
3858         out and causing EOS.
3860 2006-06-07  James Livingston  <doclivingston@gmail.com>
3862         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
3863         free the pixbufs if they couldn't be loaded. Fixed #343852.
3865 2006-06-07  James Livingston  <doclivingston@gmail.com>
3867         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
3868         the close button on the dialog work. Fixes #335346.
3870 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3872         * sources/rb-sourcelist-model.c: (path_is_droppable),
3873         (path_is_reorderable):
3874         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
3875         (row_activated_cb), (emit_show_popup), (key_release_cb),
3876         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3877         Ignore group marker rows in the source list.  Fixes #344089, a couple
3878         of other crashers, and some weird UI glitches too.
3880 2006-06-07  James Livingston  <doclivingston@gmail.com>
3882         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
3883         the seeking query fails. This is needed because many gst elements
3884         don't implement the seeking query yet. Should fix 329977.
3886 2006-06-06  James Livingston  <doclivingston@gmail.com>
3888         * configure.ac: bump version for a prerelease, turn on track transfer
3889         by default.
3891         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
3892         ipod transfer stuff, since it has big issues and we'll hopefully land
3893         real support (bug 310774) after 0.9.5
3895 2006-06-06  James Livingston  <doclivingston@gmail.com>
3897         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
3898         id3v2mux once we've detected it.
3900 2006-06-06  James Livingston  <doclivingston@gmail.com>
3902         * lib/Makefile.am:
3903         * tests/test-rhythmdb.c: undo accidental commit which caused
3904         rb-thread.c to be built (which it isn't normally)
3906 2006-06-06  James Livingston  <doclivingston@gmail.com>
3908         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
3909         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
3910         fail_{if/unless} calls, as some versions of check need them (they are
3911         optional in others). Should fix bug 343718.
3913 2006-06-06  James Livingston  <doclivingston@gmail.com>
3915         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
3916         343836.
3917         
3918         * lib/Makefile.am:
3919         * lib/rb-thread.c: (process_actions):
3920         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
3921         tests that don't pass.
3923 2006-06-05  James Livingston  <doclivingston@gmail.com>
3925         * data/glade/Makefile.am:
3926         * data/glade/load-failure.glade:
3927         * data/rhythmbox.schemas: remove the remainder of the old load-failure
3928         dialog.
3930 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3932         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
3933         checked in.
3935 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3937         * bindings/python/rb.defs:
3938         * sources/rb-source.h:
3939         * sources/rb-source.c: (rb_source_class_init),
3940         (rb_source_set_property), (rb_source_get_property),
3941         (rb_sourcelist_group_get_type):
3942         Add 'sourcelist-group' property on the RBSource class, describing how
3943         sources should be grouped in the source list.
3945         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
3946         (rb_sourcelist_model_new), (real_row_is_separator),
3947         (rb_sourcelist_model_is_row_visible),
3948         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
3949         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
3950         (rb_sourcelist_model_row_draggable),
3951         (rb_sourcelist_model_row_inserted_cb),
3952         (rb_sourcelist_model_row_deleted_cb),
3953         (rb_sourcelist_model_get_group_path):
3954         * sources/rb-sourcelist-model.h:
3955         * sources/rb-sourcelist.c: (rb_sourcelist_init),
3956         (rb_sourcelist_append):
3957         Add group marker rows for each sourcelist group, and use these to
3958         insert sources in the right place.  Sort transient sources (DAAP
3959         shares) by name.  Show the group marker rows as separators when the
3960         next visible row is a source.  Make persistant sources (playlists) and
3961         removable sources reorderable using drag and drop, restricting them
3962         within the source groups.
3963         
3964         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
3965         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
3966         * sources/rb-daap-source.c: (rb_daap_source_new):
3967         * sources/rb-ipod-source.c: (rb_ipod_source_new):
3968         * sources/rb-static-playlist-source.c:
3969         (rb_static_playlist_source_new):
3970         * plugins/generic-player/rb-generic-player-source.c:
3971         (rb_generic_player_source_new):
3972         * plugins/generic-player/rb-nokia770-source.c:
3973         (rb_nokia770_source_new):
3974         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
3975         Add source list group information to existing source classes.
3977         Fixes #318754 and #336492.
3979 2006-06-04  James Livingston  <doclivingston@gmail.com>
3981         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
3982         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
3983         win32 build fixes.
3985 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3987         * rhythmdb/rhythmdb-query-model.c:
3988         (rhythmdb_query_model_class_init),
3989         (rhythmdb_query_model_remove_from_main_list):
3990         * rhythmdb/rhythmdb-query-model.h:
3991         Add a new 'post-entry-delete' signal, emitted when the entry has been
3992         removed from the model's data structures.
3994         * shell/rb-play-order.c: (rb_play_order_finalize),
3995         (rb_play_order_query_model_changed),
3996         (rb_play_order_post_entry_delete_cb):
3997         Use the new signal to update the play order, so the queue play order
3998         doesn't try to scroll to entries that don't exist in a way that causes
3999         the tree view to crash.  Fixes #340216.
4001 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4003         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
4004         Fix rb_debug call I missed previously.
4006 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4008         * metadata/rb-metadata-gst.c:
4009         Don't use NULL as the error message for ignored files, as it crashes
4010         with some C libraries.  Fixes #343713.
4012 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4014         * widgets/rb-dialog.c: (rb_error_dialog):
4015         * widgets/rb-dialog.h:
4016         Mark rb_error_dialog as taking printf-like arguments, and use a format
4017         string for the primary message rather than passing in the message
4018         directly.
4020         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
4021         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
4022         (info_available_cb):
4023         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
4024         * shell/rb-removable-media-manager.c:
4025         (rb_removable_media_manager_eject_medium_cb):
4026         Make sure all calls to rb_error_dialog use string constants for the
4027         format string rather than passing the error message directly.  Remove
4028         an extra %s from the message used when playback fails.  Fixes #343562.
4030         * lib/rb-debug.h:
4031         * sources/rb-audiocd-source.c:
4032         * plugins/audioscrobbler/rb-audioscrobbler.c:
4033         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
4034         Mark rb_debug as taking printf-like arguments and fix a few resulting
4035         warnings.
4037 2006-06-02  James Livingston  <doclivingston@gmail.com>
4039         * configure.ac:
4040         + macros/check.m4: add support for using check for unit tests, the .m4
4041         files is so autogen can run without check being installed
4043         * tests/Makefile.am:
4044         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
4045         some of the old tests, and add some new ones. Currently
4046         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
4047         yet (the query doesn't return any entries).
4049         - tests/deserialization-test1.xml:
4050         - tests/deserialization-test2.xml:
4051         - tests/deserialization-test3.xml:
4052         - tests/test-rhythmdb-indexing.c:
4053         - tests/test-rhythmdb-simple.c:
4054         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
4055         have been ported
4057         - tests/test-cd.c:
4058         - tests/test-cmdline.c: remove obsolete tests
4060 2006-06-02  James Livingston  <doclivingston@gmail.com>
4062         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4063         (rb_add_id3_tagger), (rb_metadata_init): add support for using
4064         id3v2mux, and check whether we are using a version of id3mux that has
4065         the correct merge-mode behaviour.
4067         * plugins/sample-python/Makefile.am: fix distcheck.
4069         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
4070         the changed-files source was added before trying to remove it.
4072         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
4073         *old* bug which would crash if a query with top-level disjunctions
4074         tried to check later disjunctive parts. Hooray for unit-testing.
4076 2006-06-02  William Jon McCann  <mccann@jhu.edu>
4078         * player/rb-recorder-gst.c (rb_recorder_set_device):
4079         Check for a null drive.
4081 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4083         * lib/Makefile.am:
4084         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4085         Register the app icon as a builtin if the icon theme can't find it.
4087 2006-05-31  James Livingston  <doclivingston@gmail.com>
4089         * player/rb-recorder-gst.c: add missing include.
4091 2006-05-30  William Jon McCann  <mccann@jhu.edu>
4093         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
4094         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
4095         (tick_timeout_cb), (rb_recorder_sync_pipeline),
4096         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
4097         (rb_recorder_set_device), (rb_recorder_get_default_device):
4098         * shell/main.c: (main):
4099         * shell/rb-removable-media-manager.c:
4100         (rb_removable_media_manager_finalize),
4101         (get_nautilus_burn_drive_for_path),
4102         (rb_removable_media_manager_playing_uri_changed_cb),
4103         (rb_removable_media_manager_load_media),
4104         (nautilus_burn_drive_get_device),
4105         (rb_removable_media_manager_scan):
4106         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
4108         Update for libnautilus-burn 2.15.3 API changes.
4109         Fixes #342604
4111 2006-05-30  James Livingston  <doclivingston@gmail.com>
4113         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
4114         "return" to that it asks for the password again if it was wrong.
4116 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4118         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
4119         typefind element.
4121 2006-05-30  James Livingston  <doclivingston@gmail.com>
4123         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
4124         (download_progress_cb): don't do wonky things if the transfer
4125         "suceeds" without transferring any data.
4127 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4129         * sources/rb-library-source.c: (layout_example_label_update),
4130         (build_filename):  Fix crash when no audio profile is selected.
4131         Fixes #341447.
4133 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4135         * shell/rb-shell.c: (rb_shell_clear_queue):
4136         * shell/rb-shell.h:
4137         * shell/rb-shell.xml:
4138         * sources/rb-play-queue-source.c:
4139         (rb_play_queue_source_clear_queue),
4140         (rb_play_queue_source_cmd_clear):
4141         * sources/rb-play-queue-source.h:
4142         Add clearQueue dbus method.
4144 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4146         * shell/main.c: (main):  Implement --quit option.
4148 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4150         * rhythmdb/rhythmdb-private.h:
4151         * rhythmdb/rhythmdb-tree.h:
4152         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
4153         (rhythmdb_entry_insert), (rhythmdb_entry_set),
4154         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
4155         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
4156         (rhythmdb_entry_get_boolean):
4157         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
4158         bitmask, giving the db backend anything past the first 16 bits for 
4159         its own private use.
4161         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4162         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
4163         Add a 'loading' flag to indicate that an entry is being loaded from
4164         disk, and use that to ignore entry_set operations on such entries
4165         rather than the 'inserted' flag, which doesn't quite mean the same
4166         thing.  Fixes #342694.
4168 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4170         * shell/rb-shell.xml: Remove visibility property, since it causes
4171         crashes (dbus bug 7057) and doesn't do much else.
4173 2006-05-28  James Livingston  <doclivingston@gmail.com>
4175         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
4177         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4178         * po/POTFILES.in: fix some more i18n issues.
4180 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4182         * bindings/python/rb.defs:
4183         * shell/rb-shell-player.c: (rb_shell_player_playpause),
4184         (filter_mmkeys):
4185         * shell/rb-shell-player.h:
4186         Deprecate the useless 'ignore_stop' parameter to
4187         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
4188         API.  From bug #334829.
4190 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4192         * plugins/generic-player/rb-generic-player-source.c:
4193         (visit_playlist_dirs), (default_transform_playlist_uri):
4194         When playlist parsing fails, unref the playlist, not the parent
4195         source.  Fix memory leak in playlist uri transform.
4196         * plugins/generic-player/rb-nokia770-source.c:
4197         (impl_transform_playlist_uri):
4198         Fix memory leak in playlist uri transform.
4200 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
4202         * doc/reference/Makefile.am: fix grk-doc build
4204 2006-05-27  James Livingston  <doclivingston@gmail.com>
4206         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4208         * plugins/lyrics/lyrics.py:
4209         * po/POTFILES.in: Make strings in plugins translatable. From bug
4210         343081.
4212 2006-05-27  James Livingston  <doclivingston@gmail.com>
4214         * backends/Makefile.am:
4215         * backends/gstreamer/Makefile.am:
4216         * lib/Makefile.am:
4217         * plugins/audioscrobbler/Makefile.am:
4218         * plugins/generic-player/Makefile.am:
4219         * po/POTFILES.in:
4220         * rhythmdb/rhythmdb-monitor.c:
4221         * rhythmdb/rhythmdb.c:
4222         * sources/Makefile.am:
4223         * widgets/Makefile.am: fix compilation after some CVS surgery was
4224         done.
4226 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4228         * bindings/python/rhythmdb.defs:
4229         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
4230         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
4231         (rhythmdb_query_deserialize):
4232         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
4233         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
4234         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
4235         (rhythmdb_entry_register_type_alias),
4236         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
4237         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
4238         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
4239         (rhythmdb_entry_podcast_feed_get_type),
4240         (rhythmdb_entry_import_error_get_type),
4241         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
4242         * rhythmdb/rhythmdb.h:
4243         Allocate a specified amount of extra memory for each db entry, to be
4244         used to store fields specific to the entry type.  Optionally associate
4245         a name with each entry type, to be used when saving entries and
4246         auto playlists to disk.  Allow entry types to have multiple names
4247         to handle older playlist files that used '0' to represent 'song'.
4248         Use private data to store podcast fields.
4250         * rhythmdb/rhythmdb-private.h:
4251         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4252         (rhythmdb_tree_parser_end_element), (save_entry),
4253         (rhythmdb_tree_entry_set):
4254         Simplify property handling by using existing code to convert
4255         properties from strings to GValues and to set properties on entries.
4256         Other assorted changes due to the above.
4258         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4259         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
4260         * sources/rb-generic-player-source.c:
4261         (rb_generic_player_source_new):
4262         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4263         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
4264         * sources/rb-psp-source.c: (rb_psp_source_new):
4265         Update for changes to rhythmdb_entry_register_type.  None of these
4266         entry types need names or use private data.
4268         Fixes #337429.
4270 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4272         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
4273         Fix creation of ignored-file db entries - need to check for
4274         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
4276 2006-05-25  James Livingston  <doclivingston@gmail.com>
4278         * AUTHORS:
4279         * MAINTAINERS: update my email address
4281 2006-05-25  James Livingston  <doclivingston@gmail.com>
4283         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
4284         "(... mix)" when searching for lyrics. Cache the lyrics under
4285         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
4287 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4289         * sources/rb-import-errors-source.c:
4290         (rb_import_errors_source_class_init):
4291         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
4292         * sources/rb-browser-source.c: (rb_browser_source_class_init):
4293         * sources/rb-source.c: (rb_source_class_init),
4294         (default_move_to_trash):
4295         Implement the basic move-to-trash operation once in rb-source.c, 
4296         rather than in each source type that supports it.
4298         * plugins/ipod/rb-ipod-plugin.c:
4299         * shell/rb-removable-media-manager.c:
4300         * shell/rb-shell.c: (rb_shell_constructor):
4301         Only scan removable media once after loading plugins.  Add a flag
4302         plugins can use to check if the initial scan has been done.
4304         * data/rhythmbox.schemas:
4305         Enable ipod and generic-player plugins by default.
4306         
4307         * configure.ac:
4308         * data/ui/Makefile.am:
4309         * data/ui/generic-player-ui.xml:
4310         * data/ui/rhythmbox-ui.xml:
4311         * plugins/Makefile.am:
4312         * plugins/generic-player/Makefile.am:
4313         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
4314         * plugins/generic-player/rb-generic-player-plugin.c:
4315         * sources/Makefile.am:
4316         * sources/rb-generic-player-source.c:
4317         * sources/rb-generic-player-source.h:
4318         * sources/rb-nokia770-source.c:
4319         * sources/rb-nokia770-source.h:
4320         * sources/rb-psp-source.c: (visit_playlist_dirs):
4321         * sources/rb-psp-source.h:
4322         Pluginise generic player (and nokia770 and PSP) support and add
4323         move-to-trash for players not mounted read-only.
4324         Fixes #342868.
4326 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4328         * daapsharing/rb-daap-connection.c (handle_song_listing):
4329         Lower bound check for batch commit.  Fixes #342848
4331         * sources/rb-daap-source.c (rb_daap_source_get_status):
4332         Always set output variables if provided.
4334 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4336         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
4337         (rhythmdb_tree_entry_delete), (remove_one_song):
4338         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
4339         Fix two db entry reference counting problems.
4340         The initial reference on the entry is held by the db backend, but it
4341         was never being dropped.  The reference count was incremented when
4342         adding an entry to the deleted_entries map and to the
4343         deleted_entries_to_emit list, but only decremented for one of those.
4345 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4347         * daapsharing/rb-daap-connection.c (http_response_handler) 
4348         (rb_daap_connection_dispose):
4349         Call soup_session_abort to make sure there are no outstanding
4350         requests when we dispose of the connection.  Ignore cancelled
4351         messages in the callback.
4353 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4355         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
4356         (rb_daap_source_disconnect): Set a flag when disconnecting
4357         the source.  Check this flag in connection callback
4358         to see if we should release the connection.
4360 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4362         * daapsharing/Makefile.am:
4363         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
4364         (rb_daap_connection_class_init), (connection_connected),
4365         (connection_disconnected), (connection_operation_done),
4366         (build_message), (connection_set_error_message),
4367         (actual_http_response_handler), (http_get),
4368         (entry_set_string_prop), (emit_progress_idle),
4369         (handle_server_info), (handle_login), (handle_update),
4370         (handle_database_info), (handle_song_listing), (handle_playlists),
4371         (handle_playlist_entries), (handle_logout),
4372         (rb_daap_connection_new), (rb_daap_connection_is_connected),
4373         (connection_response_data_free), (connected_cb),
4374         (rb_daap_connection_connect), (disconnected_cb),
4375         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
4376         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
4377         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
4378         (rb_daap_connection_get_property):
4379         * daapsharing/rb-daap-connection.h:
4380         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
4381         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
4382         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
4383         (rb_daap_hash_generate):
4384         * daapsharing/rb-daap-hash.h:
4385         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4386         (rb_daap_get_icon), (remove_source), (stop_browsing),
4387         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
4388         (connection_connecting_cb), (connection_disconnected_cb),
4389         (release_connection), (rb_daap_source_connection_cb),
4390         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
4391         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
4393         Adds a better async API for connect and disconnect.  Doesn't share
4394         callback data for every async call.  Adds a connect signal.  Uses
4395         an operation-done signal to trigger the callbacks.  Displays an
4396         error when connections fail.  A few refcounting fixes to fix
4397         crashes.  Uses a weak pointer to set the connection to NULL so we
4398         don't clobber references.  Wait for each disconnect when shutting
4399         down sources.  Split out DAAP hash stuff into its own file.  Fix
4400         typo in header.
4402         Fixes #342643
4403         
4404 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4406         * sources/rb-auto-playlist-source.c:
4407         (rb_auto_playlist_source_new_from_xml):
4408         Initialize the gvalue used to hold the size limit correctly.
4409         Fixes #342744.
4411 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4413         * shell/rb-shell.c: (rb_shell_window_delete_cb),
4414         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
4415         * shell/rb-shell.h:
4416         * shell/rb-shell.xml:
4417         Convert rb_shell_quit into a dbus method, and add visibility dbus
4418         property.
4420 2006-05-22  James Livingston  <doclivingston@gmail.com>
4422         * rhythmdb/rhythmdb.h:
4423         * rhythmdb/rhythmdb.c: (sync_entry_changed),
4424         (rhythmdb_entry_is_editable), (action_thread_main),
4425         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
4426         vfuncs for can_sync_metadata, and sync_metadata. The default is always
4427         false, and syncing into the file.
4429         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
4430         (rhythmdb_entry_iradio_get_type),
4431         (rhythmdb_entry_import_error_get_type):
4432         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
4433         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
4434         change the DB.
4436 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4438         * rhythmdb/Makefile.am:
4439         * rhythmdb/rhythmdb-monitor.c:
4440         * rhythmdb/rhythmdb-private.h:
4441         * rhythmdb/rhythmdb-query.c:
4442         * rhythmdb/rhythmdb.c:
4443         Split up rhythmdb.c a bit.
4445 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4447         * data/glade/audioscrobbler-prefs.glade:
4448         Add a link to the last.fm server status page.
4450 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4452         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
4453         Capitalization fix.
4454         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
4455         (impl_create_configure_dialog):  UI layout fixes, remove
4456         dialog separator, and capitalization fix for window title.
4457         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
4458         and remove dialog separator.
4459         * data/glade/plugins.glade:  UI layout fixes.
4460         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
4461         and capitalization fix.  Fixes #342438.
4463 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4465         * data/glade/podcast-properties.glade:  Fix layout of the download 
4466         location.  Fixes #342431.
4468 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4470         * data/ui/rhythmbox-ui.xml:
4471         We only need one copy of the 'add to queue' action in the edit menu.
4473 2006-05-20  James Livingston  <doclivingston@gmail.com>
4475         * data/ui/rhythmbox-ui.xml:
4476         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
4477         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
4478         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
4479         (rb_shell_clipboard_sync),
4480         (rb_shell_clipboard_cmd_add_to_playlist_new),
4481         (rb_shell_clipboard_cmd_queue_song_info),
4482         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
4483         (rb_shell_clipboard_playlist_deleted_cb),
4484         (rb_shell_clipboard_playlist_renamed_cb),
4485         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
4486         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
4487         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
4488         dynamically generated with all the static playlists. Fixes bug 323364.
4490         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
4491         right child, so it doesn't go weird when art appears and disappears.
4493 2006-05-20  James Livingston  <doclivingston@gmail.com>
4495         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
4497         * rhythmdb/rhythmdb-query-model.c:
4498         (rhythmdb_query_model_set_property),
4499         (rhythmdb_query_model_finalize),
4500         (rhythmdb_query_model_reapply_query_cb):
4501         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
4502         (rhythmdb_query_append_prop_multiple),
4503         (rhythmdb_query_is_time_relative):
4504         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
4505         time-based criteria, fixes bug 341131.
4507 2006-05-20  James Livingston  <doclivingston@gmail.com>
4509         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
4510         we have already changed playing entries. Interpolate the art size so
4511         it doesn't jump when the old and new images have different aspect
4512         ratios.
4514 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4516         * rhythmdb/rhythmdb-private.h:
4517         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4518         (save_entry):
4519         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
4520         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
4521         (rhythmdb_entry_get_ulong):
4522         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
4523         and elsewhere, use them on the stack rather than allocating on 
4524         the heap.  From bug #342333.
4526 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4528         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
4529         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
4530         (add_track), (eos_cb), (error_signal_idle),
4531         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
4532         (rb_recorder_construct), (recorder_track_free),
4533         (rb_recorder_finalize):
4534         * sources/rb-playlist-source-recorder.c:
4535         Support libnautilus-burn size -> capacity API change.  Add
4536         some braces to blocks.
4538 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4540         * metadata/sj-metadata-musicbrainz.c:
4541         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
4542         Sync with sound-juicer in CVS.  Fixes #342177
4543         * sources/rb-audiocd-source.c: Don't declare variables
4544         in the middle of a block (c99ism).  Fix order of #includes.
4545         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
4546         one variable per line.  Update copyright date.
4548 2006-05-19  James Livingston  <doclivingston@gmail.com>
4550         patch by: Hendrik Richter  <hendi@gnome-de.org>
4552         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
4553         "translator_credits" to a hyphen, so it doesn't cause problems for
4554         tools that check access keys. Fixes bug 341832.
4556 2006-05-19  James Livingston  <doclivingston@gmail.com>
4558         * po/POTFILES.in: remove references to files that don't exist any more
4559         (fixes make distcheck).
4561 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
4563         * plugins/lyrics/lyrics.py:  Fix layout close button in 
4564         Song Lyrics dialog. Fixes bug 342322.
4566 2006-05-19  James Livingston  <doclivingston@gmail.com>
4568         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
4570         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
4571         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
4572         version checks not break when libnotify goes to 1.0.0. Fixes bug
4573         342244.
4575 2006-05-18  James Livingston  <doclivingston@gmail.com>
4577         * shell/rb-shell-clipboard.c:
4578         * shell/rb-shell.c:
4579         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
4581 2006-05-17  William Jon McCann  <mccann@jhu.edu>
4583         * sources/rb-playlist-source-recorder.c (get_song_description):
4584         Reverse artist and title in song description.  This
4585         is useful because at least the title will be visible
4586         when there is limited space.
4588 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4590         * daapsharing/rb-daap-connection.c: (connection_get_password):
4591         Take gdk lock before emitting authenticate signal.
4592         * sources/rb-daap-source.c: (connection_connecting_cb):
4593         Get rid of the unnecessary idle handler (it's already called from one)
4594         Fixes #342047 once more.
4596 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4598         * shell/rb-shell.c: (rb_shell_class_init):
4599         * shell/rb-shell.h:
4600         * widgets/rb-song-info.c: (rb_song_info_class_init),
4601         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
4602         (rb_song_info_constructor), (rb_song_info_get_property),
4603         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
4604         (rb_song_info_forward_clicked_cb):
4605         * widgets/rb-song-info.h:
4606         * data/glade/song-info-multiple.glade:
4607         * lib/rb-marshal.list:
4608         * bindings/python/Makefile.am:
4609         * bindings/python/rb.defs:
4610         * bindings/python/rb.override:
4611         Allow plugins to add pages to the notebooks used in song info windows,
4612         and to track the current song displayed in single-entry windows.
4613         
4614         * configure.ac:
4615         * plugins/Makefile.am:
4616         * plugins/lyrics/Loader.py:
4617         * plugins/lyrics/Makefile.am:
4618         * plugins/lyrics/lyrics.py:
4619         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
4620         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
4621         as a separate window (for the playing song) or as a page in the song
4622         info window.  A few TODO items left, but this fixes #319320.
4624 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4626         Patch by:  Roozbeh Pournader
4628         * configure.ac:
4629         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
4630         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
4632 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4633         
4634         * sources/rb-daap-source.c: (update_connection_status):
4635         Correct return value.  Fixes #342047 again.
4637 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4639         * sources/rb-daap-source.c: (update_connection_status),
4640         (connection_connecting_cb):
4641         Update status in an idle handler so we don't rely on the gdk lock
4642         being recursive (because it isn't any more).  Fixes #342047.
4644 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4646         * lib/rb-util.c: (rb_make_duration_string),
4647         (rb_make_elapsed_time_string):
4648         * lib/rb-util.h:
4649         Add a function for formatting an elapsed time string.
4651         * shell/rb-shell-player.c: (rb_shell_player_init),
4652         (rb_shell_player_sync_with_source),
4653         (rb_shell_player_get_playing_time_string), (tick_cb):
4654         Store elapsed time in the private data structure, and use the above
4655         function.
4656         
4657         * widgets/rb-header.c:
4658         * widgets/rb-header.h:
4659         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
4660         object, so everything has the same idea of the elapsed time.
4661         Fixes #339693.
4663 2006-05-16  James Livingston  <doclivingston@gmail.com>
4665         * bindings/python/rhythmdb.defs:
4666         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
4667         some parametre defaults, so you don't have to pass None, False for the
4668         sorting order.
4670 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4672         * bindings/python/rhythmdb.defs:
4673         * rhythmdb/rhythmdb-query-model.c:
4674         (rhythmdb_query_model_compute_status_normal):
4675         * rhythmdb/rhythmdb-query-model.h:
4676         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
4677         * rhythmdb/rhythmdb.h:
4678         Change the various compute_status methods to accept a singular/plural
4679         pair to use in the status string.
4680         
4681         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4682         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
4683         * sources/rb-source.c: (default_get_status):
4684         Call entries 'songs' by default, and 'episodes' in the podcast source.
4685         Fixes #340227.
4687 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4689         patch by:  Paul Drain
4691         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
4692         Fixes #341817.
4694 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4696         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
4697         Generate reorder maps correctly.
4698         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
4699         Scroll to the first entry from the old selection.
4700         Fixes #322992.
4702 2006-05-15  William Jon McCann  <mccann@jhu.edu>
4704         * data/ui/rhythmbox-ui.xml:
4705         * lib/rb-preferences.h:
4706         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4707         (rb_shell_playlist_created_cb),
4708         (rb_shell_view_sidepane_changed_cb),
4709         (rb_shell_sync_sidepane_visibility),
4710         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
4711         (sidepane_visibility_changed_cb):
4712         * sources/rb-podcast-source.c:
4713         Convert sourcelist visibility to side-pane visbility.
4714         Fixes #339733
4716 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4718         * widgets/rb-header.c:
4719         * widgets/rb-header.h: Stop RBHeader from referring to itself as
4720         'player', and make it use the private data structure allocated for it.
4722 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4724         * configure.ac: enable metadata helper with dbus < 0.35.
4726 2006-05-15  James Livingston  <doclivingston@gmail.com>
4728         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4730         * data/glade/song-info.glade:
4731         * widgets/rb-song-info.c: (rb_song_info_construct_single),
4732         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
4733         (rb_song_info_update_filesize): Add the file size into the song info
4734         window. Fixes bug 340861.
4736 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4738         * bindings/python/rhythmdb.defs:
4739         * rhythmdb/rhythmdb-query-model.c:
4740         (rhythmdb_query_model_set_property),
4741         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
4742         * rhythmdb/rhythmdb-query-model.h:
4743         Add a new method to chain query models without importing entries from
4744         the parent into the child.  This is useful when the subset of entries
4745         in the child can be more easily determined by running a query than by
4746         filtering entries from the parent.
4748         * bindings/python/rb.defs:
4749         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4750         (rb_library_browser_set_property),
4751         (rb_library_browser_get_property), (rb_library_browser_new),
4752         (rebuild_child_model):
4753         * widgets/rb-library-browser.h:
4754         * sources/rb-auto-playlist-source.c:
4755         (rb_auto_playlist_source_constructor):
4756         * sources/rb-static-playlist-source.c:
4757         (rb_static_playlist_source_constructor):
4758         * sources/rb-browser-source.c: (rb_browser_source_constructor):
4759         Use more efficient queries for constructing the browser query model
4760         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
4761         backend to optimise the query) and run new queries rather than
4762         filtering entries from the parent.  Fixes #341402.
4764         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
4766 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4768         * configure.ac:
4769         * shell/Makefile.am:
4770         * shell/main.c: (main), (load_uri_args), (send_present_message),
4771         (unregister_dbus_handler), (handle_dbus_message),
4772         (register_dbus_handler):
4773         Add minimal support for dbus 0.31 - 0.35.
4775         * doc/reference/Makefile.am:
4776         * doc/reference/rhythmbox.types:
4777         * data/Makefile.am:
4778         * data/GNOME_Rhythmbox.server.in:
4779         * data/rhythmbox.pc.in:
4780         * remote/*:
4781         * remote/bonobo/*:
4782         Remove remaining bonobo and generic remote interface files.
4784 2006-05-14  James Livingston  <doclivingston@gmail.com>
4786         * shell/rb-shell.c: (construct_widgets):
4787         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
4788         resize the browser and queue-sidebar section of their panes, unless
4789         the other section is below the minimum size. Fixes bug 331927.
4791 2006-05-13  James Livingston  <doclivingston@gmail.com>
4793         * rhythmdb/rhythmdb-query-model.c:
4794         (rhythmdb_query_model_class_init),
4795         (rhythmdb_query_model_set_property),
4796         (rhythmdb_query_model_get_property),
4797         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
4798         (rhythmdb_query_model_insert_into_main_list),
4799         (rhythmdb_query_model_insert_into_limited_list),
4800         (rhythmdb_query_model_do_reorder),
4801         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
4802         (rhythmdb_query_model_location_sort_func),
4803         (rhythmdb_query_model_title_sort_func),
4804         (rhythmdb_query_model_album_sort_func),
4805         (rhythmdb_query_model_artist_sort_func),
4806         (rhythmdb_query_model_genre_sort_func),
4807         (rhythmdb_query_model_track_sort_func),
4808         (rhythmdb_query_model_double_ceiling_sort_func),
4809         (rhythmdb_query_model_ulong_sort_func),
4810         (rhythmdb_query_model_date_sort_func),
4811         (rhythmdb_query_model_string_sort_func):
4812         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
4813         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
4814         "data destroy" property. Fixed bug 341543.
4816         * bindings/python/rhythmdb.defs:
4817         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
4818         rhythmdb_query_model_set_sorting_order
4820         * rhythmdb/rhythmdb-property-model.c:
4821         (rhythmdb_property_model_drag_data_get):
4822         * sources/rb-import-errors-source.c:
4823         (rb_import_errors_source_constructor):
4824         * sources/rb-missing-files-source.c:
4825         (rb_missing_files_source_constructor):
4826         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
4827         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
4828         * widgets/rb-entry-view.h: adapt to the above change.
4830 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4832         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4833         (rhythmdb_tree_load):
4834         Commit loaded entries in batches, rather than individually.  
4835         More startup time reduction.
4837 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
4839         * doc/reference/Makefile.am: fix gtk-doc compilation
4841 2006-05-12  William Jon McCann  <mccann@jhu.edu>
4843         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4844         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4845         * plugins/artdisplay/artdisplay/Loader.py:
4846         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
4847         Only call the first artist the best match when album==Unknown.
4848         Don't perform each query twice if album doesn't include "Vol N".
4849         Fix searching for compilations.  Fix blacklisting.
4850         Part of bug #307848
4852 2006-05-12  William Jon McCann  <mccann@jhu.edu>
4854         * Makefile.am:
4855         * bindings/python/Makefile.am:
4856         * bindings/python/rb.defs:
4857         * bindings/python/rb.override:
4858         * configure.ac:
4859         * doc/reference/Makefile.am:
4860         * plugins/Makefile.am:
4861         * plugins/audioscrobbler/Makefile.am:
4862         * plugins/ipod/Makefile.am:
4863         * plugins/lirc/Makefile.am:
4864         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
4865         (impl_activate), (impl_deactivate):
4866         * plugins/sample/Makefile.am:
4867         * remote/Makefile.am:
4868         * shell/Makefile.am:
4869         * shell/main.c: (main), (main_shell_weak_ref_cb):
4870         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
4871         (rb_shell_get_property), (rb_shell_window_state_cb),
4872         (idle_hide_mainwindow), (rb_shell_set_visibility),
4873         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
4874         (rb_shell_set_song_property):
4875         * shell/rb-shell.h:
4876         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
4877         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
4878         (rb_tray_icon_get_property), (rb_tray_icon_new),
4879         (rb_tray_icon_button_press_event_cb),
4880         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
4881         (rb_tray_icon_show_window_changed_cb):
4882         * shell/rb-tray-icon.h:
4884         Remove bonobo, require DBUS.
4885         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
4886         Fixes #339720
4888 2006-05-13  James Livingston  <doclivingston@gmail.com>
4890         * bindings/python/rb.override: fix some pointer-type warnings
4892 2006-05-12  James Livingston  <doclivingston@gmail.com>
4894         * lib/rb-util.c: (rb_value_free):
4895         * lib/rb-util.h: Add function to unset and free a GValue* that was
4896         allocated in the heap.
4898         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
4899         the metadata hastable values
4900         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
4901         leak the metadata hashtable structure
4902         * metadata/rb-metadata-dbus.c:
4903         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
4904         using g_strdup and then _take_string
4906         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
4907         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
4908         stat something.
4910         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
4911         leak the encoded string
4913         * widgets/rb-property-view.c:
4914         (rb_property_view_selection_changed_cb): set some variables to have
4915         inital values, because some code paths may not set them before we use
4916         them.
4918         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
4919         don't have python warning into a debug message".
4921 2006-05-10  William Jon McCann  <mccann@jhu.edu>
4923         * data/rhythmbox.schemas: Use zero instead of null for
4924         default burn speed.  Fixes #341283.
4926 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4928         * bindings/python/rb.defs:
4929         * widgets/rb-library-browser.c:
4930         (rb_library_browser_get_property_view):
4931         * widgets/rb-library-browser.h:
4932         Add a method to get the property view for a given property.
4934         * sources/rb-browser-source.c:
4935         (rb_browser_source_cmd_choose_genre),
4936         (rb_browser_source_cmd_choose_artist),
4937         (rb_browser_source_cmd_choose_album):
4938         Change the browser selection by changing the property view selection. 
4939         Makes the selection change visible, fixing #331740.
4941 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4943         * bindings/python/rb.defs:
4944         * bindings/python/rb.override:
4945         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
4946         * shell/rb-statusbar.c: (*),
4947         * sources/rb-import-errors-source.c: (impl_get_status):
4948         * sources/rb-iradio-source.c: (impl_get_status):
4949         * sources/rb-missing-files-source.c: (impl_get_status):
4950         * sources/rb-source.c: (default_get_status),
4951         (rb_source_get_status):
4952         * sources/rb-source.h:
4953         Allow sources to provide a progress value for the status bar.
4954         Simplify status bar processing (much less polling).
4955         Consider rhythmdb busy while it's still loading the database.
4957         * daapsharing/rb-daap-connection.c: (*)
4958         * daapsharing/rb-daap-connection.h:
4959         * lib/rb-marshal.list:
4960         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4961         (rb_daap_source_init), (connection_connecting_cb),
4962         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
4963         (rb_daap_source_get_status):
4964         Provide status information for DAAP connections, and move processing
4965         of large responses into a separate thread.
4966         Fixes bugs #322020 and #338978.
4968 2006-05-09  James Livingston  <doclivingston@gmail.com>
4970         Split the artdisplay plugin into several files.
4971         Fix loader and amazon-search re-use issues.
4972         Add some better search heuristics.
4974         * configure.ac:
4975         * plugins/artdisplay/Makefile.am:
4976         * plugins/artdisplay/artdisplay.py:
4977         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4978         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4979         * plugins/artdisplay/artdisplay/Loader.py:
4980         * plugins/artdisplay/artdisplay/Makefile.am:
4981         * plugins/artdisplay/artdisplay/__init__.py:
4983 2006-05-09  James Livingston  <doclivingston@gmail.com>
4985         * sources/rb-browser-source.h: remove the _has_first_added_column
4986         stuff since it isn't actually used anywhere. Sources that want it
4987         should just add it themselves, as the library already does
4989         * bindings/python/rb.defs:
4990         * sources/rb-daap-source.c: (rb_daap_source_class_init):
4991         * sources/rb-library-source.c: (rb_library_source_class_init):
4992         * sources/rb-removable-media-source.c:
4993         (rb_removable_media_source_class_init): Remove the remanants of the
4994         above.
4996 2006-05-09  James Livingston  <doclivingston@gmail.com>
4998         * bindings/python/rb.defs:
4999         * sources/rb-browser-source.h: remove a function that was declared in
5000         the header, but not defined anywhere.
5002 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5004         * plugins/artdisplay/.cvsignore:
5005         * plugins/ipod/.cvsignore: Added.
5007 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5009         * sources/rb-auto-playlist-source.c:
5010         (rb_auto_playlist_source_new_from_xml):
5011         Fix reading of older playlist files where all three limits were
5012         specified so we take the first nonzero limit.  From #341053.
5014 2006-05-09  James Livingston  <doclivingston@gmail.com>
5016         * bindings/python/Makefile.am:
5017         * bindings/python/rb.defs:
5018         * bindings/python/rb.override: bind RBBrowserSource,
5019         RBRemovableMediaSource and RBRemovableMediamanager.
5021 2006-05-09  James Livingston  <doclivingston@gmail.com>
5023         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5025         * data/glade/plugins.glade: make the plugin dialog look a bit better.
5026         Fixes bug 339221.
5028 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5030         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5031         Don't explode when trying to edit a query with no limit set.
5033 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5035         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5036         Clear the should_queue flag when switching to a non-submittable entry,
5037         so we don't submit songs that played for three seconds before
5038         switching to a podcast episode.
5040         * rhythmdb/rhythmdb-query-model.c
5041         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
5042         in the drag data list.
5044 2006-05-08  James Livingston  <doclivingston@gmail.com>
5046         * lib/rb-util.c: (rb_value_array_append_data):
5047         * lib/rb-util.h: add function which is basically a combination of
5048         G_VALUE_COLLECT and g_value_array_append.
5050         * rhythmdb/rhythmdb-query-model.h:
5051         * rhythmdb/rhythmdb-query-model.c:
5052         (rhythmdb_query_model_class_init),
5053         (rhythmdb_query_model_set_property),
5054         (rhythmdb_query_model_get_property),
5055         (rhythmdb_query_model_finalize),
5056         (rhythmdb_query_model_update_limited_entries),
5057         (rhythmdb_query_model_set_sort_order),
5058         (rhythmdb_query_model_within_limit),
5059         (rhythmdb_query_model_limit_type_get_type): Make query model limits
5060         saner. Rather than having <count=N, time=N, size=N> we now have a
5061         <type, value> pair. This will also make it much easier to add new
5062         limit types in the future.
5064         * shell/rb-playlist-manager.c:
5065         (rb_playlist_manager_set_automatic_playlist),
5066         (rb_playlist_manager_cmd_edit_automatic_playlist):
5067         * sources/rb-auto-playlist-source.c:
5068         (rb_auto_playlist_source_finalize),
5069         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
5070         (_save_write_ulong), (_save_write_uint64),
5071         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
5072         (rb_auto_playlist_source_set_query),
5073         (rb_auto_playlist_source_get_query):
5074         * sources/rb-auto-playlist-source.h:
5075         * sources/rb-library-source.c:
5076         (rb_library_source_add_child_source):
5077         * sources/rb-psp-source.c: (visit_playlist_dirs):
5078         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
5079         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
5080         * widgets/rb-query-creator.h: Adapt to the above change.
5082 2006-05-08  James Livingston  <doclivingston@gmail.com>
5084         * shell/rb-playlist-manager.c:
5085         (rb_playlist_manager_cmd_edit_automatic_playlist):
5086         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
5087         (rb_auto_playlist_source_set_query),
5088         (rb_auto_playlist_source_get_query): copy the query in the _get method
5089         and free it in things calling that. Fixes a crasher.
5091 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5093         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5094         Make entries on newly mounted volumes visible immediately, hiding them
5095         later if they turn out to be missing.  Fixes #340068.
5097 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5099         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
5100         Ignore zip files and ignore errors for files we've decided to ignore.
5102 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5104         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
5105         Add missing }, should fix #340844.
5107 2006-05-06  James Livingston  <doclivingston@gmail.com>
5109         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
5110         typo.
5112 2006-05-06  James Livingston  <doclivingston@gmail.com>
5114         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
5115         that we work with libnotify >= 0.4
5117 2006-05-06  James Livingston  <doclivingston@gmail.com>
5119         patch by: Joe Barnett  <thejoe@gmail.com>
5121         * configure.ac: check if we're using a version of libgpod that
5122         supports the Motorola ROKR
5124         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
5125         for the db path, if we using the newer version.
5127         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
5129 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5131         * rhythmdb/rhythmdb-query-model.c:
5132         (rhythmdb_query_model_drag_data_get):
5133         Use playback URI, not location, for drag data.  Fixes #322597.
5135 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
5137         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
5139 2006-05-03  James Livingston  <doclivingston@gmail.com>
5141         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
5142         (rb_add_id3_tagger), (rb_metadata_save):
5143         Set the tags on the tagging element when it is
5144         created, not during pipeline creation - which is required for
5145         dynamically created elements.
5147         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
5148         support for using the "vorbistag" element to re-tag ogg vorbis files.
5149         Fixes bug 339878.
5151 2006-05-03  James Livingston  <doclivingston@gmail.com>
5153         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
5155         * plugins/artdisplay/artdisplay.py:
5156         - Fix small bug callback of data loader getting overwritten on fast
5157         connections.
5158         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
5159         Jonathan Matthew)
5160         - Fix Rhythmbox UI blocking while loading/searching cover art
5161         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
5162         - Initial approach to allow additional "art search engines"
5163         - Further modularization in a couple of places
5164         - Minor fixes for empty entries (iradio, album, artist etc.)
5166 2006-05-03  James Livingston  <doclivingston@gmail.com>
5168         * shell/rb-playlist-manager.c:
5169         (rb_playlist_manager_playlist_entries_changed),
5170         (rb_playlist_manager_set_source): don't show the edit/delete/rename
5171         options for non-local sources, rather than showing disabled ones.
5173         * sources/rb-library-source.c: (add_child_sources_idle),
5174         (rb_library_source_constructor), (rb_library_source_new),
5175         (rb_library_source_library_location_changed),
5176         (rb_library_source_add_child_source),
5177         (rb_library_source_sync_child_sources): Create "child library" sources
5178         when the user has multiple library locations set. Fixes bug 100552.
5180 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5182         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
5183         * plugins/sample/sample.rb-plugin.desktop.in:
5184         Finish changing 'Author' to 'Authors'
5185         
5186         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
5187         (rhythmdb_entry_import_error_get_type):
5188         Implement get_playback_uri for import errors (returns NULL)
5190         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
5191         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
5192         entry, rather than doing entry type checks.
5194 2006-05-02  James Livingston  <doclivingston@gmail.com>
5196         patch from Alessandro Decina  <alessandro@nnva.org>
5198         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
5199         the signal emission in the case of fatal-on-init errors. From bug
5200         322268.
5202 2006-05-02  James Livingston  <doclivingston@gmail.com>
5204         * rhythmdb/rhythmdb.h:
5205         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
5206         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
5207         (rhythmdb_entry_podcast_post_get_type),
5208         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
5209         virtual function to entry-types for getting the playback URI. From bug
5210         330226.
5212         * backends/gstreamer/rb-encoder-gst.c:
5213         (create_pipeline_and_source), (extract_track):
5214         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
5215         to get the URI.
5217 2006-05-02  James Livingston  <doclivingston@gmail.com>
5219         patch by: Brian Cameron  <brian.cameron@sun.com>
5221         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
5222         340337.
5224 2006-05-01  William Jon McCann  <mccann@jhu.edu>
5226         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
5227         instead of clear.  Use regex matching to strip "disc N"
5228         from album.  Match titles in ProductName.  Perform
5229         fallback queries including various artist compilations.
5230         Include "us" locale.  Improve queries when artist or album
5231         is unknown.  Use medium size image if large is unavailable.
5233         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
5234         William Jon McCann  <mccann@jhu.edu>
5235         
5236 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5238         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
5239         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
5240         (conjunctive_query): Sanity check.
5241         (evaluate_conjunctive_subquery): 
5242         Don't return TRUE immediately when a relative-time query criterion
5243         matches.  Fixes #339972.
5245 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5247         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5248         Don't crash if primary or secondary are NULL.
5250 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5252         * doc/reference/Makefile.am: fix gtk-doc build yet again
5254 2006-04-28  James Livingston  <doclivingston@gmail.com>
5256         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
5257         python console. Fixes bug 339934.
5259 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5261         * rhythmdb/rhythmdb-property-model.c:
5262         (rhythmdb_property_model_drag_data_get):
5263         When creating uri list drag data, create a new query model based on
5264         the query model the property model is attached to.  Makes the
5265         resulting query use the right entry type and include the upstream
5266         query criteria.  Fixes half of #327540.
5268 2006-04-27  James Livingston  <doclivingston@gmail.com>
5270         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
5271         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
5272         build fixes.
5274 2006-04-27  James Livingston  <doclivingston@gmail.com>
5276         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
5278 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5280         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
5281         (rb_playlist_manager_save_data),
5282         (rb_playlist_manager_save_playlists):
5283         * shell/rb-playlist-manager.h:
5284         * shell/rb-shell.c: (rb_shell_sync_state),
5285         (idle_save_playlist_manager):
5286         Remove a bit more threading insanity from the playlist manager.
5288 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5290         * shell/rb-playlist-manager.c: 
5291         * shell/rb-playlist-manager.h:
5292         Remove dead code, add gtk-doc, remove threading insanity (mostly).
5293         
5294         * shell/rb-shell.c: (rb_shell_sync_state),
5295         (idle_save_playlist_manager), (construct_sources),
5296         (rb_shell_select_source), (rb_shell_sync_party_mode):
5297         Adjustments for above changes.
5299 2006-04-26  William Jon McCann  <mccann@jhu.edu>
5301         * sources/rb-browser-source.c (impl_browser_toggled):
5302         Reset browser when hidden.  Fixes #339617.
5304 2006-04-26  James Livingston  <doclivingston@gmail.com>
5306         * backends/Makefile.am:
5307         * backends/gstreamer/Makefile.am: work again with separated
5308         built-roots
5310 2006-04-26  James Livingston  <doclivingston@gmail.com>
5312         * shell/rb-removable-media-manager.c:
5313         (rb_removable_media_manager_set_uimanager): fix compilation with
5314         -Werror and --enable-track-transfer.
5316 2006-04-26  James Livingston  <doclivingston@gmail.com>
5318         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
5319         implementing class. In theory allows alternate player implementations
5320         to be selected at run-time rather than compile-time. Fixes bug 338667.
5322         * Makefile.am:
5323         * backends/Makefile.am:
5324         * backends/gstreamer/Makefile.am:
5325         * backends/gstreamer/rb-player-gst.h:
5326         * backends/rb-player.c: (rb_player_interface_init),
5327         (rb_player_get_type), (rb_player_open), (rb_player_opened),
5328         (rb_player_close), (rb_player_play), (rb_player_pause),
5329         (rb_player_playing), (rb_player_set_volume),
5330         (rb_player_get_volume), (rb_player_set_replaygain),
5331         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
5332         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
5333         (_rb_player_emit_buffering), (_rb_player_emit_error),
5334         (_rb_player_emit_tick), (rb_player_error_quark):
5335         * player/Makefile.am:
5336         * player/rb-player-gst.c: (rb_player_gst_class_init),
5337         (rb_player_init), (tick_timeout), (rb_player_gst_init),
5338         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
5339         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
5340         (process_tag), (found_tag_cb), (buffering_cb),
5341         (rb_player_gst_bus_cb), (rb_player_gst_construct),
5342         (rb_player_gst_new):
5343         * player/rb-player.h:
5344         * shell/Makefile.am:
5345         * sources/rb-audiocd-source.c:
5346         * widgets/Makefile.am:
5347         * widgets/rb-header.c: (rb_header_class_init):
5349 2006-04-26  James Livingston  <doclivingston@gmail.com>
5351         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
5352         don't try to download an episode if it couldn't be parsed. Fixes bug
5353         339712.
5355         * shell/rb-removable-media-manager.c:
5356         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
5357         Library" option when track transfer is disabled. Fixes bug 339728.
5359 2006-04-26  James Livingston  <doclivingston@gmail.com>
5361         * data/ui/Makefile.am:
5362         * data/ui/daap-ui.xml:
5363         * data/ui/rhythmbox-ui.xml:
5364         * sources/rb-daap-source.c: (rb_daap_sources_init),
5365         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
5366         way that the ipod ui is. Fixes bug 339743.
5368 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5370         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
5371         (process_added_entries_cb), (process_deleted_entries_cb),
5372         (rhythmdb_commit_internal): 
5373         Combine the idle functions to emit entry-added and entry-deleted,
5374         and combine as many invocations of same as possible.  Another
5375         significant reduction in startup time.
5376         
5377         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
5378         Delay the next call to rhythmdb_process_events if the queue is
5379         empty or if we can't process any of the events in the queue because
5380         the database is read only.
5382         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
5384 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5386         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
5388         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
5389         Don't special case errors quite so much.
5391 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5393         * data/rhythmbox.schemas: Remove default speed.
5395         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
5396         Add n-c-b 2.15 support.  Make the default speed to slowest since
5397         that is all that works reliably.
5399 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5401         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
5402         Fix compiler error from last commit.
5404 2006-04-25  James Livingston  <doclivingston@gmail.com>
5406         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
5407         transcoding-related issues. From bug 322268.
5409         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
5410         don't emit the signal, since the object is being finalised, which os a
5411         Bad Thing To Do.
5413         (profile_bin_find_encoder), (get_profile_from_mime_type),
5414         (transcode_track): find the encoding element by iterating looking for
5415         element in the class Codec/Encoder/Audio rather than the one named
5416         "enc".
5418 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5420         * shell/rb-shell-player.xml:
5421         * shell/rb-shell.xml:
5422         Add signal argument information.  
5423         Patch by Tim Moloney  <t.moloney@verizon.net>
5425         * shell/rb-shell.c: (rb_shell_window_state_cb):
5426         Use the right value for the visibility_changed signal.  Most of the
5427         time, anyway.
5429 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5431         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5432         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5433         (impl_create_configure_dialog):
5434         * data/glade/audioscrobbler-prefs.glade:
5435         * shell/rb-audioscrobbler.c (*):
5436         * lib/rb-preferences.h:
5437         * data/rhythmbox.schemas:
5438         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
5439         Add status information (# tracks submitted, # queued, last submit
5440         time, result of last submission) to the plugin config window.
5441         Remove 'enabled' setting, since it's easier to just disable the
5442         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
5443         nonexistant (so far) 'last.fm streaming' plugin.
5444         
5445         * help/C/rhythmbox.xml: Update documentation for last.fm profile
5446         plugin
5448         Fixes some of #325848.  We still don't provide a way to view the
5449         submission queue.
5451 2006-04-25  James Livingston  <doclivingston@gmail.com>
5453         patch by: Anders Petersson  <demitar@worldforge.org>
5455         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
5456         the YY-MM-DD format.
5458 2006-04-23  James Livingston  <doclivingston@gmail.com>
5460         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
5461         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
5462         * bindings/python/override_common.h:
5463         * bindings/python/rb.override: python binding fixes
5465 2006-04-23  James Livingston  <doclivingston@gmail.com>
5467         * shell/rb-statusbar.c: (rb_statusbar_finalize),
5468         (rb_statusbar_sync_with_source),
5469         (rb_statusbar_source_status_changed_cb): do the sync in an idle
5470         callback, rather than immediately every time. Takes ~5% off my warm-cache
5471         startup time.
5473         * bindings/python/rhythmdb.defs: fix the types using for
5474         RhythmDBEntryTypes.
5476 2006-04-22  James Livingston  <doclivingston@gmail.com>
5478         * data/ui/rhythmbox-ui.xml:
5479         * shell/rb-shell.c:
5480         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5481         (remove_source), (rb_daap_sources_init),
5482         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
5483         (rb_daap_source_disconnect):
5484         * sources/rb-source.c: (rb_source_class_init),
5485         (rb_source_deactivate):
5486         * sources/rb-source.h: move the "disconnect" functionality from into
5487         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
5489 2006-04-22  James Livingston  <doclivingston@gmail.com>
5491         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
5492         actually get the translated strings for browser headers (they were
5493         already marked as translatable). Fixes bug 339380.
5495 2006-04-22  James Livingston  <doclivingston@gmail.com>
5497         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
5498         submission timeout when the object is finalised.
5500         * bindings/python/Makefile.am:
5501         * bindings/python/rb.defs:
5502         * bindings/python/rb.override:
5503         * bindings/python/rhythmdb.defs: fix some python binding stuff.
5505         * widgets/rb-library-browser.c:
5506         (rb_library_browser_construct_query), (rebuild_output_model),
5507         (rebuild_child_model):
5508         * widgets/rb-library-browser.h: change from GPtrArray to
5509         RhythmDBQuery (which in C is the same thing).
5511 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5513         * shell/rb-shell.c: (rb_shell_get_song_properties):
5514         Don't try to include entry-type (or anything else not easily
5515         marshallable) in the song properties hash table.
5517         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
5519         * sources/rb-playlist-source.c: (rb_playlist_source_init),
5520         (rb_playlist_source_constructor): Fix entry-type initialization as
5521         with previous commit.
5523 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5525         * sources/rb-iradio-source.c: (rb_iradio_source_init),
5526         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
5527         * sources/rb-podcast-source.c: (rb_podcast_source_init),
5528         (rb_podcast_source_constructor):
5529         Set default values for entry-type after base class construction,
5530         rather than in _init, because gobject will set the entry-type property
5531         to NULL after _init if no value is provided.  Fixes #339206.
5533 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
5535         patch by: Gunnar Steinn Magnusson
5537         * COPYING:
5538         * backends/gstreamer/rb-encoder-gst.c:
5539         * backends/gstreamer/rb-encoder-gst.h:
5540         * backends/rb-encoder.c:
5541         * backends/rb-encoder.h:
5542         * bindings/python/override_common.c:
5543         * bindings/python/override_common.h:
5544         * daapsharing/rb-daap-connection.c:
5545         * daapsharing/rb-daap-connection.h:
5546         * daapsharing/rb-daap-dialog.c:
5547         * daapsharing/rb-daap-dialog.h:
5548         * daapsharing/rb-daap-mdns-browser-avahi.c:
5549         * daapsharing/rb-daap-mdns-browser-howl.c:
5550         * daapsharing/rb-daap-mdns-browser.h:
5551         * daapsharing/rb-daap-mdns-publisher-avahi.c:
5552         * daapsharing/rb-daap-mdns-publisher-howl.c:
5553         * daapsharing/rb-daap-mdns-publisher.h:
5554         * daapsharing/rb-daap-share.c:
5555         * daapsharing/rb-daap-share.h:
5556         * daapsharing/rb-daap-sharing.c:
5557         * daapsharing/rb-daap-sharing.h:
5558         * daapsharing/rb-daap-src.c:
5559         * daapsharing/rb-daap-src.h:
5560         * daapsharing/rb-daap-structure.c:
5561         * daapsharing/rb-daap-structure.h:
5562         * help/C/fdl-appendix.xml:
5563         * help/es/es.po:
5564         * help/ja/fdl-appendix.xml:
5565         * iradio/rb-new-station-dialog.c:
5566         * iradio/rb-new-station-dialog.h:
5567         * iradio/rb-station-properties-dialog.c:
5568         * iradio/rb-station-properties-dialog.h:
5569         * lib/mkdtemp.c:
5570         * lib/mkdtemp.h:
5571         * lib/rb-cut-and-paste-code.c:
5572         * lib/rb-cut-and-paste-code.h:
5573         * lib/rb-debug.c:
5574         * lib/rb-debug.h:
5575         * lib/rb-file-helpers.c:
5576         * lib/rb-file-helpers.h:
5577         * lib/rb-glade-helpers.c:
5578         * lib/rb-glade-helpers.h:
5579         * lib/rb-preferences.h:
5580         * lib/rb-proxy-config.c:
5581         * lib/rb-stock-icons.c:
5582         * lib/rb-stock-icons.h:
5583         * lib/rb-thread.c:
5584         * lib/rb-thread.h:
5585         * lib/rb-tree-dnd.c:
5586         * lib/rb-tree-dnd.h:
5587         * lib/rb-util.c:
5588         * lib/rb-util.h:
5589         * metadata/rb-metadata-common.c:
5590         * metadata/rb-metadata-dbus-client.c:
5591         * metadata/rb-metadata-dbus-service.c:
5592         * metadata/rb-metadata-dbus.c:
5593         * metadata/rb-metadata-dbus.h:
5594         * metadata/rb-metadata-gst.c:
5595         * metadata/rb-metadata.h:
5596         * metadata/sj-error.c:
5597         * metadata/sj-error.h:
5598         * metadata/sj-metadata-musicbrainz.c:
5599         * metadata/sj-metadata-musicbrainz.h:
5600         * metadata/sj-metadata.c:
5601         * metadata/sj-metadata.h:
5602         * metadata/sj-structures.c:
5603         * metadata/sj-structures.h:
5604         * metadata/test-metadata.c:
5605         * player/rb-player-gst.c:
5606         * player/rb-player.h:
5607         * player/rb-recorder-gst.c:
5608         * player/rb-recorder.h:
5609         * plugins/artdisplay/artdisplay.py:
5610         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5611         * plugins/ipod/rb-ipod-plugin.c:
5612         * plugins/lirc/rb-lirc-plugin.c:
5613         * plugins/pythonconsole/pythonconsole.py:
5614         * plugins/rb-module.c:
5615         * plugins/rb-module.h:
5616         * plugins/rb-plugin-manager.c:
5617         * plugins/rb-plugin-manager.h:
5618         * plugins/rb-plugin.c:
5619         * plugins/rb-plugin.h:
5620         * plugins/rb-plugins-engine.c:
5621         * plugins/rb-plugins-engine.h:
5622         * plugins/rb-python-module.c:
5623         * plugins/rb-python-module.h:
5624         * plugins/rb-python-plugin.c:
5625         * plugins/rb-python-plugin.h:
5626         * plugins/sample/rb-sample-plugin.c:
5627         * po/de.po:
5628         * po/el.po:
5629         * po/en_CA.po:
5630         * po/eu.po:
5631         * po/fi.po:
5632         * po/fr.po:
5633         * po/it.po:
5634         * po/ja.po:
5635         * po/mk.po:
5636         * po/pt_BR.po:
5637         * po/ru.po:
5638         * podcast/rb-feed-podcast-properties-dialog.c:
5639         * podcast/rb-feed-podcast-properties-dialog.h:
5640         * podcast/rb-new-podcast-dialog.c:
5641         * podcast/rb-new-podcast-dialog.h:
5642         * podcast/rb-podcast-manager.c:
5643         * podcast/rb-podcast-manager.h:
5644         * podcast/rb-podcast-parse.c:
5645         * podcast/rb-podcast-parse.h:
5646         * podcast/rb-podcast-properties-dialog.c:
5647         * podcast/rb-podcast-properties-dialog.h:
5648         * remote/bonobo/libmain.c:
5649         * remote/bonobo/rb-nautilus-context-menu.c:
5650         * remote/bonobo/rb-nautilus-context-menu.h:
5651         * remote/bonobo/rb-remote-bonobo.c:
5652         * remote/bonobo/rb-remote-bonobo.h:
5653         * remote/rb-remote-client-proxy.c:
5654         * remote/rb-remote-client-proxy.h:
5655         * remote/rb-remote-common.c:
5656         * remote/rb-remote-common.h:
5657         * remote/rb-remote-proxy.c:
5658         * remote/rb-remote-proxy.h:
5659         * rhythmdb/gsequence.c:
5660         * rhythmdb/gsequence.h:
5661         * rhythmdb/rb-refstring.c:
5662         * rhythmdb/rb-refstring.h:
5663         * rhythmdb/rhythmdb-gda.c:
5664         * rhythmdb/rhythmdb-gda.h:
5665         * rhythmdb/rhythmdb-private.h:
5666         * rhythmdb/rhythmdb-property-model.c:
5667         * rhythmdb/rhythmdb-property-model.h:
5668         * rhythmdb/rhythmdb-query-model.c:
5669         * rhythmdb/rhythmdb-query-model.h:
5670         * rhythmdb/rhythmdb-query-results.c:
5671         * rhythmdb/rhythmdb-query-results.h:
5672         * rhythmdb/rhythmdb-tree.c:
5673         * rhythmdb/rhythmdb-tree.h:
5674         * rhythmdb/rhythmdb.c:
5675         * rhythmdb/rhythmdb.h:
5676         * shell/main.c:
5677         * shell/rb-audioscrobbler.c:
5678         * shell/rb-audioscrobbler.h:
5679         * shell/rb-history.c:
5680         * shell/rb-history.h:
5681         * shell/rb-play-order-linear-loop.c:
5682         * shell/rb-play-order-linear-loop.h:
5683         * shell/rb-play-order-linear.c:
5684         * shell/rb-play-order-linear.h:
5685         * shell/rb-play-order-queue.c:
5686         * shell/rb-play-order-queue.h:
5687         * shell/rb-play-order-random-by-age-and-rating.c:
5688         * shell/rb-play-order-random-by-age-and-rating.h:
5689         * shell/rb-play-order-random-by-age.c:
5690         * shell/rb-play-order-random-by-age.h:
5691         * shell/rb-play-order-random-by-rating.c:
5692         * shell/rb-play-order-random-by-rating.h:
5693         * shell/rb-play-order-random-equal-weights.c:
5694         * shell/rb-play-order-random-equal-weights.h:
5695         * shell/rb-play-order-random.c:
5696         * shell/rb-play-order-random.h:
5697         * shell/rb-play-order-shuffle.c:
5698         * shell/rb-play-order-shuffle.h:
5699         * shell/rb-play-order.c:
5700         * shell/rb-play-order.h:
5701         * shell/rb-playlist-manager.c:
5702         * shell/rb-playlist-manager.h:
5703         * shell/rb-removable-media-manager.c:
5704         * shell/rb-removable-media-manager.h:
5705         * shell/rb-shell-clipboard.c:
5706         * shell/rb-shell-clipboard.h:
5707         * shell/rb-shell-player.c:
5708         * shell/rb-shell-player.h:
5709         * shell/rb-shell-preferences.c:
5710         * shell/rb-shell-preferences.h:
5711         * shell/rb-shell.c:
5712         * shell/rb-shell.h:
5713         * shell/rb-source-header.c:
5714         * shell/rb-source-header.h:
5715         * shell/rb-statusbar.c:
5716         * shell/rb-statusbar.h:
5717         * shell/rb-tray-icon.c:
5718         * shell/rb-tray-icon.h:
5719         * sources/rb-audiocd-source.c:
5720         * sources/rb-audiocd-source.h:
5721         * sources/rb-auto-playlist-source.c:
5722         * sources/rb-auto-playlist-source.h:
5723         * sources/rb-browser-source.c:
5724         * sources/rb-browser-source.h:
5725         * sources/rb-daap-source.c:
5726         * sources/rb-daap-source.h:
5727         * sources/rb-generic-player-source.c:
5728         * sources/rb-generic-player-source.h:
5729         * sources/rb-import-errors-source.c:
5730         * sources/rb-import-errors-source.h:
5731         * sources/rb-ipod-source.c:
5732         * sources/rb-ipod-source.h:
5733         * sources/rb-iradio-source.c:
5734         * sources/rb-iradio-source.h:
5735         * sources/rb-library-source.c:
5736         * sources/rb-library-source.h:
5737         * sources/rb-missing-files-source.c:
5738         * sources/rb-missing-files-source.h:
5739         * sources/rb-nokia770-source.c:
5740         * sources/rb-nokia770-source.h:
5741         * sources/rb-play-queue-source.c:
5742         * sources/rb-play-queue-source.h:
5743         * sources/rb-playlist-source-recorder.c:
5744         * sources/rb-playlist-source-recorder.h:
5745         * sources/rb-playlist-source.c:
5746         * sources/rb-playlist-source.h:
5747         * sources/rb-playlist-xml.h:
5748         * sources/rb-podcast-source.c:
5749         * sources/rb-podcast-source.h:
5750         * sources/rb-psp-source.c:
5751         * sources/rb-psp-source.h:
5752         * sources/rb-removable-media-source.c:
5753         * sources/rb-removable-media-source.h:
5754         * sources/rb-source.c:
5755         * sources/rb-source.h:
5756         * sources/rb-sourcelist-model.c:
5757         * sources/rb-sourcelist-model.h:
5758         * sources/rb-sourcelist.c:
5759         * sources/rb-sourcelist.h:
5760         * sources/rb-static-playlist-source.c:
5761         * sources/rb-static-playlist-source.h:
5762         * tests/test-cd.c:
5763         * tests/test-cmdline.c:
5764         * tests/test-rhythmdb-indexing.c:
5765         * tests/test-rhythmdb-query.c:
5766         * tests/test-rhythmdb-simple.c:
5767         * tests/test-rhythmdb-tree-deserialization.c:
5768         * tests/test-rhythmdb-tree-serialization.c:
5769         * tests/test-rhythmdb-view.c:
5770         * widgets/bacon-volume.c:
5771         * widgets/bacon-volume.h:
5772         * widgets/disclosure-widget.c:
5773         * widgets/disclosure-widget.h:
5774         * widgets/eel-gconf-extensions.c:
5775         * widgets/eel-gconf-extensions.h:
5776         * widgets/eggtrayicon.c:
5777         * widgets/eggtrayicon.h:
5778         * widgets/libsexy/sexy-icon-entry.c:
5779         * widgets/libsexy/sexy-icon-entry.h:
5780         * widgets/rb-cell-renderer-pixbuf.c:
5781         * widgets/rb-cell-renderer-pixbuf.h:
5782         * widgets/rb-cell-renderer-rating.c:
5783         * widgets/rb-cell-renderer-rating.h:
5784         * widgets/rb-dialog.c:
5785         * widgets/rb-dialog.h:
5786         * widgets/rb-druid.c:
5787         * widgets/rb-druid.h:
5788         * widgets/rb-entry-view.c:
5789         * widgets/rb-entry-view.h:
5790         * widgets/rb-header.c:
5791         * widgets/rb-header.h:
5792         * widgets/rb-library-browser.c:
5793         * widgets/rb-library-browser.h:
5794         * widgets/rb-property-view.c:
5795         * widgets/rb-property-view.h:
5796         * widgets/rb-query-creator-private.h:
5797         * widgets/rb-query-creator-properties.c:
5798         * widgets/rb-query-creator.c:
5799         * widgets/rb-query-creator.h:
5800         * widgets/rb-rating-helper.c:
5801         * widgets/rb-rating-helper.h:
5802         * widgets/rb-rating.c:
5803         * widgets/rb-rating.h:
5804         * widgets/rb-search-entry.c:
5805         * widgets/rb-search-entry.h:
5806         * widgets/rb-song-display-box.c:
5807         * widgets/rb-song-display-box.h:
5808         * widgets/rb-song-info.c:
5809         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
5811 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
5813         patch by: Gareth Murphy, James Livingston
5815         * bindings/python/rb.defs:
5816         * configure.ac:
5817         * plugins/Makefile.am:
5818         * plugins/artdisplay/Makefile.am:
5819         * plugins/artdisplay/artdisplay.py:
5820         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
5821         * plugins/rb-python-module.c: (rb_python_module_init_python):
5822         * shell/rb-shell.c: (construct_widgets),
5823         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
5824         (rb_shell_add_widget), (rb_shell_remove_widget),
5825         (rb_shell_ui_location_get_type):
5826         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
5828 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5830         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5831         Fix build failure caused by the combination of the previous two
5832         commits.
5834 2006-04-20  James Livingston  <doclivingston@gmail.com>
5836         patch by: Christophe Fergeau  <teuf@gnome.org> to make
5837         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
5838         table to the entry types, which will allow us to get rid of some of
5839         the "if entry type == WHATEVER" code everywhere. From bug 
5841         * bindings/python/rb.defs:
5842         * bindings/python/rb.override:
5843         * bindings/python/rhythmdb.defs:
5844         * bindings/python/rhythmdb.override:
5845         * daapsharing/rb-daap-connection.c:
5846         (rb_daap_connection_class_init), (rb_daap_connection_init),
5847         (rb_daap_connection_set_property),
5848         (rb_daap_connection_get_property):
5849         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
5850         * podcast/rb-podcast-manager.c:
5851         (rb_podcast_manager_entry_downloaded),
5852         (rb_podcast_manager_subscribe_feed),
5853         (rb_podcast_manager_db_entry_added_cb),
5854         (rb_podcast_manager_db_entry_deleted_cb),
5855         (rb_podcast_manager_insert_feed):
5856         * rhythmdb/rhythmdb-private.h:
5857         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5858         (conjunctive_query):
5859         * rhythmdb/rhythmdb.c: (sync_entry_changed),
5860         (process_added_entries_cb), (rhythmdb_entry_allocate),
5861         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
5862         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
5863         (rhythmdb_process_metadata_load),
5864         (rhythmdb_process_file_created_or_modified), (action_thread_main),
5865         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
5866         (write_encoded_gvalue), (read_encoded_property),
5867         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
5868         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
5869         (rhythmdb_entry_iradio_get_type),
5870         (rhythmdb_entry_podcast_post_get_type),
5871         (rhythmdb_entry_podcast_feed_get_type),
5872         (rhythmdb_entry_import_error_get_type),
5873         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
5874         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
5875         (rhythmdb_entry_type_get_type):
5876         * rhythmdb/rhythmdb.h:
5877         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5878         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
5879         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
5880         (rb_shell_player_entry_activated_cb), (info_available_cb):
5881         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
5882         (rb_shell_register_entry_type_for_source),
5883         (rb_shell_playing_from_queue_cb),
5884         (rb_shell_playing_entry_changed_cb),
5885         (rb_shell_player_stream_song_changed_cb),
5886         (rb_shell_jump_to_entry_with_source),
5887         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
5888         (handle_playlist_entry_cb), (rb_shell_load_uri):
5889         * shell/rb-shell.h:
5890         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
5891         * sources/rb-browser-source.c: (rb_browser_source_class_init),
5892         (rb_browser_source_init), (rb_browser_source_set_property),
5893         (rb_browser_source_get_property):
5894         * sources/rb-ipod-source.c: (impl_paste):
5895         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
5896         (rb_iradio_source_init), (rb_iradio_source_set_property),
5897         (rb_iradio_source_get_property):
5898         * sources/rb-library-source.c: (impl_paste):
5899         * sources/rb-missing-files-source.c:
5900         (rb_missing_files_source_class_init),
5901         (rb_missing_files_source_init),
5902         (rb_missing_files_source_set_property),
5903         (rb_missing_files_source_get_property):
5904         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
5905         (rb_playlist_source_init), (rb_playlist_source_set_property),
5906         (rb_playlist_source_get_property):
5907         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5908         (rb_podcast_source_init), (rb_podcast_source_set_property),
5909         (rb_podcast_source_get_property):
5910         * sources/rb-static-playlist-source.c:
5911         (rb_static_playlist_source_add_location_internal):
5913 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5915         * rhythmdb/rhythmdb.c: (rhythmdb_init),
5916         (rhythmdb_add_import_error_entry),
5917         (entry_volume_mounted_or_unmounted),
5918         (rhythmdb_volume_unmounted_cb):
5919         When a volume is unmounted, delete import errors for files stored on
5920         it.  When a volume is mounted, stat all tracks stored on it, rather
5921         than assuming they're present.  Fixes #339023.
5923 2006-04-20  James Livingston  <doclivingston@gmail.com>
5925         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
5926         browser visibility for non-gconf-using sources (like playlists). Part
5927         of bug 118862.
5929         * shell/rb-source-header.c: (sourcestate_free),
5930         (rb_source_header_init), (rb_source_header_finalize),
5931         (rb_source_header_source_weak_destroy_cb): switch from storing the
5932         search string to storing a "source state" structure
5934         (rb_source_header_set_source_internal),  (rb_source_state_sync),
5935         (rb_source_header_search_cb), (rb_source_header_clear_search),
5936         (rb_source_header_disclosure_toggled_cb): as well as storing the
5937         string, stop the visibility of the source's browser.
5939 2006-04-20  James Livingston  <doclivingston@gmail.com>
5941         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
5942         library entries back into the library. Fixes bug 339065.
5944 2006-04-20  James Livingston  <doclivingston@gmail.com>
5946         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
5947         only exists in glib 2.10.
5949 2006-04-20  James Livingston  <doclivingston@gmail.com>
5951         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
5952         Solaris. From bug 335318.
5954         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
5955         * shell/rb-audioscrobbler.c:
5956         * sources/rb-psp-source.c:
5958 2006-04-20  James Livingston  <doclivingston@gmail.com>
5960         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
5961         issues for some people.
5963         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
5964         accidental s/suffix/prefix/
5966         * sources/rb-auto-playlist-source.c:
5967         (rb_auto_playlist_source_set_query): fix the invered logic preventing
5968         you from sorting playlists which aren't limited by time.
5970 2006-04-19  James Livingston  <doclivingston@gmail.com>
5972         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
5973         duration or bitrate back to the file, since they are properties of the
5974         audio data, not tags we can set.
5976 2006-04-19  James Livingston  <doclivingston@gmail.com>
5978         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
5979         of libtool, to fix builds which are using a different version. Fixes
5980         bug 338996.
5982         * shell/Makefile.am:
5984 2006-04-19  James Livingston  <doclivingston@gmail.com>
5986         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
5987         to sync data to a file which is uneditable.
5989 2006-04-19  James Livingston  <doclivingston@gmail.com>
5991         patch by: Gavin Stewart  <gavin@brokentrain.net>
5993         * data/glade/playlist-save.glade:
5994         * data/glade/Makefile.am:
5995         * po/POTFILES.in: add the playlist saving dialog.
5997         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
5998         (export_set_extension_cb), (filter_get_export_filter_label),
5999         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
6000         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
6001         formats (PLS and M3U at the moment). Fixes bug 316295.
6003 2006-04-19  James Livingston  <doclivingston@gmail.com>
6005         * shell/rb-playlist-manager.c:
6006         (rb_playlist_manager_set_source_internal): don't let you edit remove
6007         auto playlists.
6009         * sources/rb-auto-playlist-source.c:
6010         (rb_auto_playlist_source_set_query): correctly handle time-limited
6011         playlists.
6013 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6015         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
6017         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
6018         Don't crash if the queue file contains no newlines.
6019         Fixes #338924.
6021 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6023         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
6024         condition
6026 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6028         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
6029         case. Moreover, they may not exist yet, so take that into account when
6030         generating the iPod filename.
6032 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
6034         * sources/rb-ipod-source.c: added support for drag and drop from the
6035         library to the iPod (only enabled if --enable-track-transfer was
6036         passed to configure)
6038 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
6040         * configure.ac:
6041         * lib/rb-marshal.list:
6042         * lib/rb-util.c: 
6043         * lib/rb-util.h:
6044         * plugins/Makefile.am:
6045         * plugins/ipod/Makefile.am:
6046         * plugins/ipod/ipod.rb-plugin.desktop.in:
6047         * plugins/ipod/rb-ipod-plugin.c: 
6048         * plugins/rb-plugin.h:
6049         * shell/Makefile.am:
6050         * shell/rb-removable-media-manager.c:
6051         * shell/rb-removable-media-manager.h:
6052         * shell/rb-shell.c: 
6053         * sources/Makefile.am:
6054         * sources/rb-ipod-source.c: 
6055         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
6056         various iPod related files should be moved to plugins/ipod/ now...
6058 2006-04-17  James Livingston  <doclivingston@gmail.com>
6060         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
6061         and "vic".
6063         * help/C/figures/rb-iradio-main.png:
6064         * help/C/figures/rb-notification-area-menu.png:
6065         * help/C/figures/rb-notification-window.png:
6066         * help/C/figures/rb-notification-zone.png:
6067         * help/C/figures/rb-podcast-main.png:
6068         * help/C/figures/rb-statusbar.png:
6069         * help/C/figures/rb-volume-changer.png:
6070         * help/C/figures/rb-window-small.png:
6071         * help/C/figures/rb-window.png:
6072         * help/C/rhythmbox.xml:
6074 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6076         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
6077         more obviously.
6079         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6080         (make_undecodable_error), (rb_metadata_gst_error_cb),
6081         (rb_metadata_gst_new_decoded_pad_cb),
6082         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
6083         Ignore really small files (<4kB) for which typefinding fails.
6084         Always link decoded pads from decodebin to fakesink.
6085         Shut the pipeline down by posting an error on the bus when decodebin
6086         emits unknown-type signals.  Fixes bug #338062.
6088 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6090         * shell/rb-shell.c: (rb_shell_load_uri):
6091         Fix glaring mistakes in previous commit: actually pass arguments to
6092         rb_debug, and specify the right entry type when adding a new iradio
6093         station so we don't try to add local playlist files to the library.
6095 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6097         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
6098         before trying to add them, as iradio streams often fail rb_uri_exists().
6100         * shell/rb-shell-player.c: (notify_playing_idle),
6101         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
6102         (open_location_thread), (rb_shell_player_open_location),
6103         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
6104         (eos_cb):  When playing an iradio stream using a playlist, keep a list
6105         of all the stream URLs, and try them in turn.  If we get through the
6106         whole playlist too quickly, error out.  Various other fixes that make
6107         iradio work a lot better.
6109         * shell/rb-shell.c: (add_to_library_response_cb),
6110         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6111         (handle_playlist_entry_cb), (rb_shell_load_uri):
6112         Add playlists containing streams as iradio stations.  If the playlist
6113         is local, add each stream URL, but if the playlist is remote, just add
6114         the playlist URL.
6115         
6116         * sources/rb-iradio-source.c: (new_station_location_added):
6117         Add new station URLs as-is, rather than parsing the playlist and
6118         adding the streams.
6119         
6120         * rhythmdb/rhythmdb-query-model.c:
6121         (rhythmdb_query_model_entry_changed_cb),
6122         (rhythmdb_query_model_emit_reorder),
6123         (rhythmdb_query_model_do_reorder):
6124         Emit row-changed notifications when an entry changes but is not
6125         reordered.
6127         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
6128         Display the playback error icon when the entry has an error and
6129         there's nothing else to display.
6130         
6131         Fixes bug #320336 and some of #324402.
6132         
6133 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6135         * sources/rb-ipod-source.c: use a GHashTable for the
6136         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
6137         time, this fixes compilation breakage for people not having libgpod
6138         CVS HEAD
6140 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
6142         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6144         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
6145         (rb_podcast_manager_insert_feed):
6146         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
6147         fixes bug 321945
6149 2006-04-16  James Livingston  <doclivingston@gmail.com>
6151         * sources/rb-library-source.c:
6152         (rb_library_source_library_location_cb): return FALSE like we are
6153         supposed to, not void.
6155         patch by: FreeBSD GNOME Project
6156         * configure.ac: fix some bash-isms.
6158         patch by: Pawel Worach  <pawel.worach@gmail.com>
6159         * metadata/rb-metadata-dbus-client.c:
6160         * rhythmdb/rhythmdb-query-model.c:
6161         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
6164 2006-04-16  James Livingston  <doclivingston@gmail.com>
6166         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
6167         for transcoding to RBEncoderGst.
6169         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
6170         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
6171         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
6172         (add_decoding_pipeline), (encoder_match_mime),
6173         (get_profile_from_mime_type), (extract_track), (transcode_track),
6174         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
6176 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6178         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
6179         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
6180         load_ipod_db_idle_cb to a new separate function
6182 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6184         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
6185         source
6187 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6189         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
6190         variables
6192 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6194         * data/ui/Makefile.am:
6195         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
6196         menu
6197         * lib/rb-util.c: check if the widget we got from the UI manager isn't
6198         NULL before using it as a popup menu
6199         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
6200         'eject' an iPod
6202 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6204         * sources/rb-ipod-source.c: when hal tells us a partition is on an
6205         iPod, check if it contains an iPod database before using it (in case
6206         the iPod was repartitionned somehow). Should fix bug #325034
6208 2006-04-16  Steve Frécinaux  <steve@istique.net>
6210         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
6212         * data/Makefile.am: install application icon into the default theme.
6214         * data/rhythmbox.desktop.in: don't specify icon file extension.
6215         
6216         * shell/main.c: (main): set default window icon from theme.
6217         
6218         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
6219         code concerning window icon, and fix leak by unreferencing the about
6220         logo pixbuf once it's not used anymore.
6222 2006-04-16  James Livingston  <doclivingston@gmail.com>
6224         * configure.ac: bump version to 0.9.4
6225         * NEWS: update NEWS and 0.9.4 insert translations
6227 2006-04-16  James Livingston  <doclivingston@gmail.com>
6229         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
6230         namespace automatically.
6232 2006-04-16  James Livingston  <doclivingston@gmail.com>
6234         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
6236         * doc/reference/Makefile.am:
6237         * doc/reference/rhythmbox.types: make distcheck work again
6239         * doc/reference/tmpl/eggnotificationbubble.sgml:
6240         * doc/reference/tmpl/eggtrayicon.sgml:
6241         * doc/reference/tmpl/rb-debug.sgml:
6242         * doc/reference/tmpl/rb-entry-view.sgml:
6243         * doc/reference/tmpl/rb-enums.sgml:
6244         * doc/reference/tmpl/rb-metadata.sgml:
6245         * doc/reference/tmpl/rb-new-station-dialog.sgml:
6246         * doc/reference/tmpl/rb-playlist-manager.sgml:
6247         * doc/reference/tmpl/rb-refstring.sgml:
6248         * doc/reference/tmpl/rb-shell-player.sgml:
6249         * doc/reference/tmpl/rb-shell-preferences.sgml:
6250         * doc/reference/tmpl/rb-shell.sgml:
6251         * doc/reference/tmpl/rb-song-info.sgml:
6252         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
6253         * doc/reference/tmpl/rb-statusbar.sgml:
6254         * doc/reference/tmpl/rhythmbox-unused.sgml:
6255         * doc/reference/tmpl/rhythmdb-query-model.sgml:
6256         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
6258 2006-04-16  James Livingston  <doclivingston@gmail.com>
6260         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
6262         * po/LINGUAS: don't split the variable across two lines, as it breaks
6263         the build. Fixes bug 338625.
6265 2006-04-15  James Livingston  <doclivingston@gmail.com>
6267         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
6268         add a "sourcelist-model" gobject property.
6270 2006-04-14  William Jon McCann  <mccann@jhu.edu>
6272         * .cvsignore:
6273         * backends/.cvsignore:
6274         * backends/gstreamer/.cvsignore:
6275         * bindings/.cvsignore:
6276         * bindings/python/.cvsignore:
6277         * help/es/.cvsignore:
6278         * metadata/.cvsignore:
6279         * plugins/.cvsignore:
6280         * plugins/audioscrobbler/.cvsignore:
6281         * plugins/lirc/.cvsignore:
6282         * plugins/pythonconsole/.cvsignore:
6283         * plugins/sample-python/.cvsignore:
6284         * plugins/sample/.cvsignore:
6285         * shell/.cvsignore:
6286         * widgets/libsexy/.cvsignore:
6287         Make CVS ignore files.
6289 2006-04-14  James Livingston  <doclivingston@gmail.com>
6291         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
6292         the track-loading thread hold a reference on the source, so it doesn't
6293         explode if the cd is removed before it is done. Fixes bug 337237.
6295 2006-04-14  James Livingston  <doclivingston@gmail.com>
6297         * bindings/python/override_common.c:
6298         (_helper_unwrap_pointer_pylist):
6299         * bindings/python/override_common.h:
6300         * bindings/python/rb.override:
6301         * bindings/python/rhythmdb.override: Bind some more functions and
6302         virtual functions.
6304         * shell/rb-shell.c: (rb_shell_select_source):
6305         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
6306         * sources/rb-audiocd-source.c:
6307         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
6308         * sources/rb-browser-source.c: (impl_get_search_actions):
6309         * sources/rb-iradio-source.c: (impl_get_ui_actions):
6310         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
6311         * sources/rb-playlist-source.c: (impl_get_ui_actions):
6312         * sources/rb-podcast-source.c: (impl_get_ui_actions),
6313         (impl_get_search_actions):
6314         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
6315         the impl_get_ui_actions and impl_get_search_actions functions return
6316         lists that contain copies of the strings, instead of constant ones.
6317         Needed to bindings
6319 2006-04-14  James Livingston  <doclivingston@gmail.com>
6321         * bindings/python/rhythmdb.defs:
6322         * bindings/python/rhythmdb.override: fix the method argument format
6323         specifiers.
6325 2006-04-14  James Livingston  <doclivingston@gmail.com>
6327         * bindings/python/rhythmdb.defs:
6328         * bindings/python/rhythmdb.override:
6329         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
6330         (entry_to_rb_metadata), (record_entry_change),
6331         (rhythmdb_entry_set_visibility):
6332         * rhythmdb/rhythmdb.h:
6333         * shell/rb-shell.c: (rb_shell_get_song_properties): change
6334         rhythmdb_entry_get to take the db as the first parameter. Fixes the
6335         python bindings of it. The rhythmdb_entry_get_* ones are left the same
6336         since they are used in too many places, and not in the Python
6337         bindings.
6339 2006-04-13  William Jon McCann  <mccann@jhu.edu>
6341         * lib/rb-debug.c: (_rb_profile_log):
6342         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
6343         * rhythmdb/rhythmdb.c: (rhythmdb_load):
6344         * shell/main.c: (main):
6345         * shell/rb-shell.c: (rb_shell_constructor),
6346         (rb_shell_set_visibility), (rb_shell_sync_window_state),
6347         (rb_shell_present):
6348         Fix profile output indentation.  Add more profiling points.
6349         Fixes part of #338114
6351 2006-04-13  James Livingston  <doclivingston@gmail.com>
6353         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
6354         library source being deleted, by setting the active source to NULL.
6355         From bug 338116.
6357 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6359         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
6360         Update the last-seen string when hiddenness changes.
6362 2006-04-12  James Livingston  <doclivingston@gmail.com>
6364         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
6365         which caused the first-seen time to be reset when a metadata load was
6366         done. Fixes bug 336874.
6368         * shell/rb-shell.h: remove old function declaration.
6370         * bindings/python/rhythmdb.defs:
6371         * bindings/python/rhythmdb.override: Fix some python binding stuff.
6373 2006-04-11  James Livingston  <doclivingston@gmail.com>
6375         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
6376         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
6377         interaction. Fixes bug 337999.
6379 2006-04-11  James Livingston  <doclivingston@gmail.com>
6381         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
6382         track transfer. Fixes bug 338056.
6384         * shell/Makefile.am:
6386 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6388         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
6390 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6392         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
6393         (_rb_profile_log):
6394         * lib/rb-debug.h:
6395         * shell/rb-shell.c: (construct_db), (construct_widgets),
6396         (construct_sources), (construct_load_ui), (rb_shell_constructor):
6397         Add profiling.  Fixes #337387
6399 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6401         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
6402         * widgets/rb-header.c:
6403         Use italics for artist and album. Fixes #336748
6405 2006-04-10  James Livingston  <doclivingston@gmail.com>
6407         * Makefile.am:
6408         * backends/gstreamer/Makefile.am:
6409         * configure.ac:
6410         * data/glade/library-prefs.glade:
6411         * shell/Makefile.am:
6412         * shell/rb-removable-media-manager.c:
6413         * shell/rb-removable-media-manager.h:
6414         * sources/Makefile.am:
6415         * sources/rb-audiocd-source.c:
6416         * sources/rb-library-source.c: (rb_library_source_class_init),
6417         (rb_library_source_finalize), (impl_get_config_widget),
6418         (rb_library_source_preferences_sync), (impl_can_paste): add a
6419         --enable-track-transfer configure option, abd make cd ripping disabled
6420         by default.
6422         * shell/rb-source-header.c:
6423         * sources/rb-source.c: (rb_source_class_init),
6424         (rb_source_delete_thyself), (default_get_entry_view):
6425         * lib/rb-glade-helpers.c:
6426         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
6427         some compiler warnings, and also bug 337427.
6429 2006-04-10  James Livingston  <doclivingston@gmail.com>
6431         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
6432         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
6433         if the gconf key is missing. Fixes bug 337742.
6435 2006-04-10  James Livingston  <doclivingston@gmail.com>
6437         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6438         to fix build problems I caused with a commit yesterday. Fixed bug
6439         337806.
6441         * daapsharing/rb-daap-mdns-browser-howl.c:
6442         (rb_daap_mdns_browser_class_init):
6443         * podcast/Makefile.am:
6444         * rhythmdb/Makefile.am:
6445         * widgets/eggtrayicon.h:
6447 2006-04-09  Steve Frécinaux  <steve@istique.net>
6449         * configure.ac:
6450         * po/LINGUAS:
6451         
6452         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
6453         translators' life easier.
6455 2006-04-09  James Livingston  <doclivingston@gmail.com>
6457         * bindings/python/rb.defs:
6458         * bindings/python/rb.override: add bindings for most RBSource virtual
6459         functions.
6461         * sources/rb-source.h:
6462         * sources/rb-source.c: (rb_source_class_init): make
6463         impl_get_browser_key return a non-consht string, since Python can't
6464         really give us constant strings.
6466         * shell/rb-source-header.c: (rb_source_header_finalize),
6467         (rb_source_header_set_source_internal):
6468         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
6469         * sources/rb-iradio-source.c: (impl_get_browser_key):
6470         * sources/rb-library-source.c: (impl_get_browser_key):
6471         * sources/rb-playlist-source.c:
6472         * sources/rb-browser-source.c: (rb_browser_source_constructor),
6473         (rb_browser_source_state_prefs_sync):
6474         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
6475         above change.
6477         * plugins/sample-python/sample-python.py: show how to add a new
6478         source.
6480 2006-04-09  James Livingston  <doclivingston@gmail.com>
6482         * daapsharing/Makefile.am:
6483         * daapsharing/rb-daap-connection.c:
6484         (rb_daap_connection_class_init):
6485         * daapsharing/rb-daap-marshal.list:
6486         * daapsharing/rb-daap-mdns-browser-avahi.c:
6487         (rb_daap_mdns_browser_class_init):
6488         * lib/rb-marshal.list:
6489         * player/Makefile.am:
6490         * player/rb-recorder-gst.c: (rb_recorder_class_init):
6491         * player/rb-recorder-marshal.list:
6492         * podcast/Makefile.am:
6493         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
6494         * podcast/rb-podcast-marshal.list:
6495         * rhythmdb/Makefile.am:
6496         * rhythmdb/rhythmdb-marshal.list:
6497         * rhythmdb/rhythmdb-query-model.c:
6498         (rhythmdb_query_model_class_init):
6499         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
6500         into one file, as there is no point having several of them.
6502 2006-04-09  James Livingston  <doclivingston@gmail.com>
6504         * lib/Makefile.am:
6505         * lib/rb-enums.h:
6506         * widgets/Makefile.am:
6507         * widgets/eggnotificationbubble.c:
6508         * widgets/eggnotificationbubble.h:
6509         * widgets/rb-song-info.c: remove lib/rb-enums.h and
6510         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
6512         * rhythmdb/rhythmdb-property-model.h:
6513         * rhythmdb/rhythmdb-query-model.h:
6514         * rhythmdb/rhythmdb.h:
6515         * shell/rb-playlist-manager.h:
6516         * widgets/rb-cell-renderer-pixbuf.h:
6517         * widgets/rb-cell-renderer-rating.h:
6518         * widgets/rb-rating.h: fix the prototypes of various class-closures.
6520 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6522         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
6523         so we can build without a system-wide installed copy.
6525 2006-04-09  James Livingston  <doclivingston@gmail.com>
6527         * data/glade/general-prefs.glade:
6528         * data/rhythmbox.schemas:
6529         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
6530         (rb_combo_box_hyphen_separator_func):
6531         * lib/rb-glade-helpers.h:
6532         * lib/rb-preferences.h:
6533         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6534         (rb_shell_preferences_sync),
6535         (rb_shell_preferences_toolbar_style_cb),
6536         (rb_shell_preferences_browser_views_activated_cb):
6537         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
6538         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
6539         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
6541 2006-04-09  James Livingston  <doclivingston@gmail.com>
6543         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
6544         data that MusicBrainz returns to us. Last part of bug 334167.
6546 2006-04-09  James Livingston  <doclivingston@gmail.com>
6548         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
6549         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
6551 2006-04-09  James Livingston  <doclivingston@gmail.com>
6553         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
6554         the entry view properly when the rows are reordered. Fixes bug 337019.
6556 2006-04-09  James Livingston  <doclivingston@gmail.com>
6558         * configure.ac:
6559         * widgets/Makefile.am:
6560         * widgets/libsexy/Makefile.am:
6561         * widgets/libsexy/sexy-icon-entry.c:
6562         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
6563         libsexy, and allow building against it or a system-wide installed
6564         copy.
6567         * widgets/rb-search-entry.c: (rb_search_entry_init),
6568         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
6569         search box. Fixes bug 128109.
6571 2006-04-09  James Livingston  <doclivingston@gmail.com>
6573         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6575         * widgets/rb-entry-view.c: (rb_entry_view_init),
6576         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
6577         and Pause icons rather than the volume ones in the Now Playing column.
6578         Closes bug 336482.
6580 2006-04-08  James Livingston  <doclivingston@gmail.com>
6582         * bindings/python/override_common.h:
6583         * bindings/python/rb.override:
6584         * bindings/python/rhythmdb.override: bind some more functions 
6586 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6588         * metadata/rb-metadata-dbus-service.c: (_send_error):
6589         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
6590         are sent properly and we don't get 'method doesn't exist' messages
6591         from dbus instead.
6593 2006-04-08  James Livingston  <doclivingston@gmail.com>
6595         * bindings/python/override_common.h:
6596         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
6597         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
6598         more utility functions for C<->Python conversions
6600         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
6601         (rb_entry_view_state_get_type):
6602         * widgets/rb-entry-view.h: make the colume type and entry view state
6603         GTypes
6605         * bindings/python/Makefile.am:
6606         * bindings/python/rb.defs:
6607         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
6608         RBSource.
6610 2006-04-08  James Livingston  <doclivingston@gmail.com>
6612         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
6613         initialiser for a GError
6615         * sources/rb-source.c: (rb_source_eof_type_get_type):
6616         * sources/rb-source.h: add a GType for RBSourceEOFType
6618         * bindings/python/Makefile.am:
6619         * bindings/python/rb.defs:
6620         * bindings/python/rb.override: bind RBSource and RBSourceList
6622 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6624         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6625         (rb_shell_player_get_property),
6626         (rb_shell_player_get_active_source),
6627         (rb_shell_player_set_playing_source_internal):
6628         * shell/rb-shell-player.h:
6629         Change 'playing-from-queue' from being a signal to being a property.
6631         * shell/rb-shell.c: (rb_shell_constructor),
6632         (rb_shell_playing_from_queue_cb),
6633         (rb_shell_view_queue_as_sidebar_changed_cb),
6634         (rb_shell_jump_to_entry_with_source):
6635         When the queue side pane is used, make 'jump to current' jump to the
6636         entry in the registered source for its type, rather than in the queue,
6637         and show it as playing in that source.
6638         
6639         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
6640         * sources/rb-sourcelist.h:
6641         Remove the 'preempted source' stuff, since it wasn't doing anything
6642         anyway.
6644 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6646         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
6647         (download_progress_cb): Canonicalise downloaded file location before
6648         setting the mountpoint property of the corresponding entry.
6649         Fixes #337287 and a couple of memory leaks.
6651 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6653         * metadata/rb-metadata-dbus-service.c: (test_can_save),
6654         (test_load), (main): Call g_set_prgname, report errors more
6655         usefully in test mode.
6656         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
6657         (rb_metadata_load): Don't ignore the have-type signal for non-audio
6658         files.  Run the event loop when the state change fails so we get the
6659         error messages from the bus.  Fixes #336921.
6661 2006-04-05  William Jon McCann  <mccann@jhu.edu>
6663         * data/art/Makefile.am: Install media-eject.
6665         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
6666         return value of rb_file.
6668         Fixes #337209
6670 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6672         Patch by: William Jon McCann  <mccann@jhu.edu>
6674         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
6675         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
6676         Fix GError leak.
6678 2006-04-04  William Jon McCann  <mccann@jhu.edu>
6680         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
6681         Don't try to add a date when we don't have one.  Fixes #336741.
6683         Also fix variable declaration in middle of block.
6685 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6687         * shell/rb-shell-player.c: (rb_shell_player_playpause):
6688         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
6690 2006-04-02  James Livingston  <doclivingston@gmail.com>
6692         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
6693         inverted logic causing imports to fail.
6695 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6697         * shell/main.c: (main): Fix dbusless build.
6699 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
6701         * player/rb-recorder-gst.c: fix packing of the C struct holding a
6702         wav header for non-gcc compilers (not tested much, was only written
6703         according to docs)
6705 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6707         * shell/main.c: (main): Check if we got a dbus connection before
6708         trying to create a proxy for the shell object.  Fixes #336634.
6710 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6712         * doc/reference/Makefile.am:
6713         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
6714         * shell/rb-source-header.c:
6715         * sources/rb-generic-player-source.c:
6716         (default_transform_playlist_uri):
6717         Fix various build issues.  Patch approximately 50% by Alex Lancaster
6718         <alexl@users.sourceforge.net>
6720 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6722         * configure.ac: Detect LIRC.
6723         
6724         * plugins/Makefile.am:
6725         * plugins/lirc/Makefile.am:
6726         * plugins/lirc/lirc.rb-plugin.desktop.in:
6727         * plugins/lirc/rb-lirc-plugin.c:
6728         LIRC plugin.
6730         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
6731         Remove obsolete files.
6733 2006-04-02  James Livingston  <doclivingston@gmail.com>
6735         * sources/rb-generic-player-source.c:
6736         (default_transform_playlist_uri): consider playlist paths as relative
6737         to the volume root by default, since that is what most players use.
6739 2006-04-02  James Livingston  <doclivingston@gmail.com>
6741         * lib/rb-util.c: (rb_mime_get_friendly_name):
6742         * lib/rb-util.h: add helper function to get the "friendly" name for a
6743         mime-type
6745         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6746         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
6747         the user better error messages about undecodable streams, using the
6748         "friendly" name if possible. Fixes bug 128109.
6750 2006-04-02  James Livingston  <doclivingston@gmail.com>
6752         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
6753         (start_pipeline): fix building with gstreamer 0.8
6755 2006-04-02  James Livingston  <doclivingston@gmail.com>
6757         * sources/rb-podcast-source.c: (impl_delete),
6758         (rb_podcast_source_cmd_delete_feed),
6759         (rb_podcast_source_cmd_update_feed): copy the list before traversing
6760         it, since it may change during traversal. Fixes bug 336204.
6762 2006-04-01  James Livingston  <doclivingston@gmail.com>
6764         * data/art/media-eject.png: add the media-eject icon from Banshee
6765         (BSD-licensed), for use when the user's icon theme doesn't have one.
6767         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
6768         bug 334897.
6770 2006-04-01  James Livingston  <doclivingston@gmail.com>
6772         * shell/rb-shell-player.h:
6773         * shell/rb-shell-player.c: (rb_shell_player_play),
6774         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
6775         new rb_shell_player_{play,pause} functions, so everyone doesn't have
6776         to do rb_shell_player_playing followed by rb_shell_player_playpause.
6778         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
6779         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
6780         * shell/rb-shell.h: add rb_shell_get_ui_manager.
6782         * bindings/python/rb.defs: bind the above to Python, and remove some
6783         useless stuff from the bindings.
6785 2006-04-01  James Livingston  <doclivingston@gmail.com>
6787         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
6788         number tag.
6790         * shell/rb-shell.c:
6791         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
6793         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
6794         to true.
6796         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
6797         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
6798         method assigning, so it's understandable
6800         * sources/rb-library-source.c: (rb_library_source_class_init),
6801         (impl_paste): rather than hard-coding the types to ignore, use
6802         rb_source_can_copy.
6804 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6806         * sources/rb-library-source.c:
6807         (rb_library_source_preferences_sync):
6808         Don't crash if no audio profile is selected and the gconf schemas are 
6809         not installed.
6811 2006-03-31  James Livingston  <doclivingston@gmail.com>
6813         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
6814         "*" which caused compilation to fail
6816 2006-03-31  James Livingston  <doclivingston@gmail.com>
6818         * configure.ac:
6819         * Makefile.am:
6820         * backends/Makefile.am:
6821         * backends/gstreamer/Makefile.am:
6822         * backends/gstreamer/rb-encoder-gst.c:
6823         * backends/gstreamer/rb-encoder-gst.h:
6824         * backends/rb-encoder.c:
6825         * backends/rb-encoder.h: add a interface for transcoding, and a
6826         GStreamer implementation of it (based on Sound-Juicer's code).
6828         * shell/Makefile.am:
6829         * shell/rb-removable-media-manager.c:
6830         (rb_removable_media_manager_class_init),
6831         (rb_removable_media_manager_init),
6832         (rb_removable_media_manager_dispose),
6833         (rb_removable_media_manager_finalize),
6834         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
6835         (progress_cb), (completed_cb), (do_transfer),
6836         (rb_removable_media_manager_queue_transfer), (copy_entry),
6837         (rb_removable_media_manager_cmd_copy_tracks):
6838         * shell/rb-removable-media-manager.h: use the encoder interface to
6839         perform transfers of entries to other locations
6841         * shell/rb-shell-player.c: (open_location_thread):
6842         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
6843         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
6844         (rb_shell_quit):
6845         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
6846         progress in the status bar.
6848         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6849         (rb_shell_preferences_sync),
6850         (rb_shell_preferences_browser_views_activated_cb):
6851         * data/glade/general-prefs.glade: move the browser views setting from
6852         the library tab to the general one.
6854         * data/glade/library-prefs.glade: add settings for the layout of the
6855         user's library, and their preferred encoding format (e.g. for CD
6856         ripping).
6858         * lib/rb-preferences.h:
6859         * data/rhythmbox.schemas: add keys for the above options (and a few
6860         other minor ones)
6862         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
6863         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
6864         entry, that isn't inserted into the database.
6866         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
6867         (rb_audiocd_create_track_entry):
6868         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
6869         cds, and set the mime-type of audio cd tracks correctly.
6871         * sources/rb-library-source.c: (rb_library_source_class_init),
6872         (rb_library_source_finalize),
6873         (rb_library_source_edit_profile_clicked_cb),
6874         (impl_get_config_widget), (rb_library_source_preferences_sync),
6875         (impl_receive_drag), (rb_library_source_path_changed_cb),
6876         (rb_library_source_filename_changed_cb),
6877         (rb_library_source_format_changed_cb), (sanitize_path),
6878         (filepath_parse_pattern), (layout_example_label_update),
6879         (rb_library_source_layout_path_changed),
6880         (rb_library_source_layout_filename_changed), (build_filename),
6881         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
6882         entries to the library. Large chunks of code for determining the
6883         destination file name stolen from Sound-Juicer.
6885         * sources/rb-sourcelist-model.c: (path_is_droppable):
6886         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
6887         * sources/rb-static-playlist-source.c:
6888         (rb_static_playlist_source_class_init):
6889         * sources/rb-removable-media-source.c:
6890         (rb_removable_media_source_class_init):
6891         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
6892         (rb_source_can_paste):
6893         * sources/rb-source.h: add a new _can_paste method, and use it (rather
6894         than _can_copy) to determine whether we can paste into the source.
6897 2006-03-31  Steve Frécinaux  <steve@istique.net>
6899         * plugins/rb-python-module.c: allow import of python modules with a '.'
6900         (gedit's bug 336403). Patch by Johan Dahlin.
6902 2006-03-31  James Livingston  <doclivingston@gmail.com>
6904         * sources/rb-library-source.c: 
6905         * sources/rb-library-source.h:
6906         * sources/rb-browser-source.c:
6907         * sources/rb-browser-source.h: Split RBLibrarySource into two.
6908         RBBrowserSource now contains all the stuff for having a source which
6909         views a particular entry type (including browsers and searching).
6910         RBLibrarySource derives from this, and includes the library-specific
6911         stuff, like importing and library watching. Fixes some issues where
6912         library-derived sources were doing things that should be
6913         library-specific. Fixes bug 335185.
6915         * data/ui/rhythmbox-ui.xml:
6916         * sources/Makefile.am: modifications for the above
6918         * sources/rb-daap-source.c: (rb_daap_source_class_init),
6919         (rb_daap_source_get_paned_key):
6920         * sources/rb-daap-source.h:
6921         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
6922         * sources/rb-removable-media-source.c:
6923         (rb_removable_media_source_class_init):
6924         * sources/rb-removable-media-source.h: derive from RBBrowserSource
6925         instead of RBLibrarySource.
6927 2006-03-31  James Livingston  <doclivingston@gmail.com>
6929         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
6930         I buggered up when changing from GnomeVFSFileSize.
6932 2006-03-30  James Livingston  <doclivingston@gmail.com>
6934         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
6935         for "-Wno-error".
6937         * bindings/python/rb.override:
6938         * bindings/python/Makefile.am: make the RB python bindings depend on
6939         the RhythmDB ones, and use "-Wno-error" since the machine-generated
6940         code sometimes emits warnings.
6942         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6943         (rb_shell_player_error_get_type):
6944         * shell/rb-shell-player.h:
6945         * bindings/python/rb.defs: add bindings for RBShellPlayer
6947         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6948         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
6949         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
6950         * rhythmdb/rhythmdb.h:
6951         * shell/rb-shell.c: (rb_shell_get_song_properties):
6952         * widgets/rb-entry-view.c: (propid_from_name):
6953         * widgets/rb-property-view.c: (rb_property_view_class_init):
6954         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
6955         than just plain GPtrArray, and add bindings for it.
6957         * bindings/python/rhythmdb.override: wrap some functions that use
6958         GValues
6960 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6962         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
6963         Only watch directories from which entries of type SONG have been
6964         added.
6966 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6968         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
6969         No need to restore the selection after rebuilding the child model,
6970         since that can't have changed the selection.
6972 2006-03-29  James Livingston  <doclivingston@gmail.com>
6974         * bindings/python/override_common.c:
6975         * bindings/python/override_common.h: add some for missing files to
6976         cvs.
6978 2006-03-29  James Livingston  <doclivingston@gmail.com>
6980         * configure.ac:
6981         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
6982         copied from gedit's autofoo and we don't need it
6984         * bindings/python/rhythmdb.defs:
6985         * bindings/python/rhythmdb.override: add missing files to cvs
6987 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6989         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
6990         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
6991         before running any of the debug/test modes.
6992         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
6993         Make plugin loading work when running uninstalled from the shell/
6994         directory.
6996 2006-03-29  James Livingston  <doclivingston@gmail.com>
6998         * rhythmdb/rhythmdb-property-model.c:
6999         (rhythmdb_property_model_sync),
7000         (rhythmdb_property_model_column_get_type):
7001         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
7003         * rhythmdb/rhythmdb-private.h:
7004         * rhythmdb/rhythmdb-query-model.c:
7005         (rhythmdb_query_model_class_init):
7006         * rhythmdb/rhythmdb-query-model.h:
7007         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
7008         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
7009         (rhythmdb_entry_get_type):
7010         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
7012         * widgets/rb-query-creator-properties.c:
7013         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
7014         was missing.
7016         * bindings/python/Makefile.am:
7017         * bindings/python/rb.defs:
7018         * bindings/python/rb.override:
7019         * plugins/rb-python-module.c: (rb_python_module_init_python): add
7020         Python bindings for RhythmDB.
7022 2006-03-29  James Livingston  <doclivingston@gmail.com>
7024         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
7025         sharing when using --no-registration
7027 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7029         * rhythmdb/rhythmdb-query-model.c:
7030         (rhythmdb_query_model_reapply_query):
7031         Don't remove entries while iterating, as it breaks the sequence
7032         nodes.  Instead, collect a list of removed entries and process it
7033         after iterating the sequence.  Fixes #334642.
7035 2006-03-29  James Livingston  <doclivingston@gmail.com>
7037         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7038         (row_activated_cb), (plugin_manager_toggle_all):
7039         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
7040         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
7041         (button_press_cb), (source_name_edited_cb):
7042         * widgets/rb-property-view.c: (rb_property_view_set_property),
7043         (rb_property_view_post_row_deleted_cb),
7044         (rb_property_view_row_activated_cb),
7045         (rb_property_view_selection_changed_cb),
7046         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
7047         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
7049 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7051         * rhythmdb/rhythmdb-query-model.c:
7052         (rhythmdb_query_model_drag_data_received):
7053         Increment the reference count for entries added by drag and drop.
7054         Fixes #336045.
7056 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7058         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
7059         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
7060         Ignore invalid UTF-8 strings.  Fixes most of #334167.
7062 2006-03-27  James Livingston  <doclivingston@gmail.com>
7064         * shell/rb-shell.c: (rb_shell_constructor),
7065         (rb_shell_sync_window_state): fix a maximise-realise race that would
7066         cause some widgets to be resized after we had explicity set theri
7067         size. Hopefully fixes bug 331927.
7069 2006-03-27  James Livingston  <doclivingston@gmail.com>
7071         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7072         (row_activated_cb), (plugin_manager_set_active),
7073         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
7074         configure button sensitivity when a plugin is enabled/disabled.
7076 2006-03-27  James Livingston  <doclivingston@gmail.com>
7078         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
7079         stop warnings, only the vbos is used anyway
7081         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
7082         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
7083         collection every now an then.
7085         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
7086         if we are finalising because the python object couldn't be created.
7088         * plugins/rb-python-module.c: (rb_python_module_new_object): return
7089         NULL if the python-side object couldn't be created. Stops crashes when
7090         the object is later used when it doesn't exist in Python.
7092         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
7093         (rb_python_shutdown): do better garbage collection when shutting down.
7094         Fixes the problem where Python was holding a reference to the shell,
7095         causing RB not to exit.
7097 2006-03-27  James Livingston  <doclivingston@gmail.com>
7099         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
7100         336131.
7102 2006-03-27  James Livingston  <doclivingston@gmail.com>
7104         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
7105         From bug 334829.
7107 2006-03-26  James Livingston  <doclivingston@gmail.com>
7109         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
7110         library location list to NULL after we free it. Fixes bug 336047.
7112 2006-03-26  James Livingston  <doclivingston@gmail.com>
7114         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7116         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
7117         supplies. Fixes bug 335947.
7119 2006-03-25  James Livingston  <doclivingston@gmail.com>
7121         * data/glade/audioscrobbler-prefs.glade:
7122         * shell/rb-audioscrobbler.c:
7123         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
7124         "submit songs" checkbox, and make it not disable username/password
7125         entry. This will be needed when we support other last.fm stuff
7126         (profile access, radio, etc).
7128 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
7130         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
7131         Volume should not display stock_volume-0 for volume > 0. Fixes bug
7132         335777.
7134 2006-03-24  James Livingston  <doclivingston@gmail.com>
7136         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7137         (rb_shell_player_sync_play_order),
7138         (rb_shell_player_play_order_update_cb),
7139         (actually_set_playing_source): update the next/previous availablility
7140         in places where it was missing. Fixes bug 335490.
7142 2006-03-24  James Livingston  <doclivingston@gmail.com>
7144         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
7145         can't find the widget
7147         * lib/rb-util.c: (rb_uri_list_parse):
7148         * lib/rb-util.h: add function for parsing a URI list into strings.
7150         * metadata/Makefile.am: make the metdata helper build when linking
7151         with --as-needed
7153         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
7154         g_mkdir_with_parents instead of coding our own.
7156         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
7157         <itunes:author> over <generator>, instead of using whichever comes
7158         last.
7160         * rhythmdb/rhythmdb-private.h:
7161         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
7162         field, as we don't ever check it (to detect corruption). Saves a bit
7163         of memory.
7165 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7167         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
7168         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
7169         Escape '&' and '=' in the paths we get back from
7170         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
7172 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7174         * shell/rb-shell.c: (rb_shell_constructor):
7175         Issue startup notification after creating the main window, so
7176         notification is issued whether the window is visible or not.
7177         Fixes #335086.
7179 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7181         * sources/rb-auto-playlist-source.c: (impl_search),
7182         (rb_auto_playlist_source_query_complete_cb),
7183         (rb_auto_playlist_source_do_query):
7184         * sources/rb-library-source.c: (impl_search),
7185         (rb_library_source_query_complete_cb),
7186         (rb_library_source_do_query):
7187         Defer subset searches (where text is appended to an existing search)
7188         until the original query is complete.
7190 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
7192         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
7194         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7195         (rb_refstring_get_sort_key): fixes for strict-aliasing
7197 2006-03-21  James Livingston  <jrl@ids.org.au>
7199         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
7200         importing a single file. Fixes bug 335307.
7202 2006-03-21  James Livingston  <jrl@ids.org.au>
7204         * shell/Makefile.am: remove the reference to backends/ that I
7205         accidently included.
7207 2006-03-21  James Livingston  <jrl@ids.org.au>
7209         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
7210         with Forte (on Solaris). Closes bug 335318.
7212         * configure.ac:
7213         * lib/Makefile.am:
7214         * player/rb-recorder-gst.c:
7215         * podcast/rb-podcast-parse.c:
7216         * remote/bonobo/Makefile.am:
7217         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
7218         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
7219         (rhythmdb_query_model_add_entry),
7220         (rhythmdb_query_model_add_results):
7221         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
7222         * rhythmdb/rhythmdb.h:
7223         * shell/Makefile.am:
7224         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
7225         (update_speed_combobox):
7226         * sources/rb-sourcelist-model.c:
7228 2006-03-21  James Livingston  <jrl@ids.org.au>
7230         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7232         * player/Makefile.am:
7233         * shell/Makefile.am: work correctly with a separate build root.
7235 2006-03-21  James Livingston  <jrl@ids.org.au>
7237         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
7238         get handed NULL.
7240 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7242         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
7243         Only create ignore entries when importing into the library.  
7244         Ignore entries for files in removable media sources don't help.
7246 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7248         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
7249         * shell/rb-source-header.h:
7250         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
7251         * widgets/rb-search-entry.h:
7252         Add functions to make the search box grab focus.
7254         * shell/rb-shell.c: (rb_shell_cmd_view_all):
7255         Focus the search box after handling the 'view all' action.
7257 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7259         * rhythmdb/rhythmdb.h:
7260         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7261         (rhythmdb_execute_multi_stat_info_cb),
7262         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
7263         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
7264         (action_thread_main):
7265         Collect all the get_file_info requests on startup into one gnome-vfs
7266         job to reduce overhead and avoid contention for the rhythmdb lock.
7267         Add a new method to call when all initial query models are set up.
7268         
7269         * shell/rb-shell.c: (idle_handle_load_complete):
7270         Call rhythmdb startup complete function when we've loaded all the
7271         playlists.  Fixes #334106.
7273 2006-03-20  James Livingston  <jrl@ids.org.au>
7275         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
7276         (rb_entry_view_selection_changed_cb),
7277         (rb_entry_view_have_complete_selection): make has_complete_selection
7278         not slow. Fixes a performance issue I added a week or so ago.
7280 2006-03-20  James Livingston  <jrl@ids.org.au>
7282         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
7283         before passing to strcmp. From bug 334559.
7285 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7287         * configure.ac:
7288         * lib/Makefile.am:
7289         * lib/rb-proxy-config.c:
7290         * lib/rb-proxy-config.h:
7291         Add a new object to watch the HTTP proxy configuration and emit
7292         signals when it changes.
7294         * shell/rb-audioscrobbler.c:
7295         * shell/rb-audioscrobbler.h:
7296         Use rb-proxy-config to watch HTTP proxy configuration.
7298         * shell/rb-shell.c:
7299         Construct rb-proxy-config object on startup, and remove all
7300         audioscrobbler references.
7302         * shell/Makefile.am:
7303         * plugins/audioscrobbler/Makefile.am:
7304         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
7305         Move all audioscrobbler code into the plugin.  We should move
7306         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
7307         point.  Don't use a private data structure in the plugin, since the
7308         class definition isn't in a header file.  Fixes #335091.
7310 2006-03-20  James Livingston  <jrl@ids.org.au>
7312         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
7313         don't enable Next if the source has an EOS type other than
7314         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
7316 2006-03-20  James Livingston  <jrl@ids.org.au>
7318         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
7319         (rb_song_info_forward_clicked_cb): deal with there being no
7320         next/previous entry.
7322         (rb_song_info_query_model_inserted_cb),
7323         (rb_song_info_query_model_deleted_cb),
7324         (rb_song_info_query_model_reordered_cb),
7325         (rb_song_info_query_model_changed_cb): monitor the query for changes,
7326         to update the button status. Fixes bug 333293.
7328 2006-03-20  James Livingston  <jrl@ids.org.au>
7330         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
7331         caused by my last commit
7333 2006-03-20  James Livingston  <jrl@ids.org.au>
7335         * bindings/python/Makefile.am:
7336         * bindings/python/rb.defs:
7337         * bindings/python/rb.override: add python bindings of RBRemoteProxy
7339         * shell/rb-shell.c: (rb_shell_constructor),
7340         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
7341         tray-icon detection slightly
7343 2006-03-19  Steve Frécinaux  <steve@istique.net>
7345         * data/ui/rhythmbox-ui.xml:
7346         * shell/rb-shell.c:
7348         Add an empty Tool Menu (hidden by default) containing placeholders for
7349         plugins.
7351         * configure.ac:
7352         * plugins/Makefile.am:
7353         * plugins/pythonconsole/Makefile.am:
7354         * plugins/pythonconsole/pythonconsole.py:
7355         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
7356         
7357         Python Console plugin
7359 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7361         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
7362         Extra step to encode '&' and '=' to match what gnome-vfs does
7363         internally.
7364         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
7365         (rhythmdb_tree_save):
7366         Increment rhythmdb xml version to 1.2, and force another uri
7367         re-canonicalisation when loading v1.1 databases.
7368         Fixes bug #333998.
7370 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7372         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
7373         (avahi_client_init), (browse_cb):
7374         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
7375         (avahi_client_init):
7376         Fix compilation with Avahi 0.5.x (bug #334551).
7378 2006-03-19  James Livingston  <jrl@ids.org.au>
7380         Add Increase/Decrease Volume menu items and keybindings. From bug
7381         123383.
7383         * data/ui/rhythmbox-ui.xml:
7384         * shell/rb-shell-player.c: (rb_shell_player_constructor),
7385         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
7386         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
7388 2006-03-19  James Livingston  <jrl@ids.org.au>
7390         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
7392         * shell/Makefile.am: fix the link order, so that we compile with
7393         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
7395 2006-03-19  James Livingston  <jrl@ids.org.au>
7397         patch by: Adam Petaccia  <adam@tpetaccia.com>
7399         * data/ui/rhythmbox-ui.xml: move preferences below "configure
7400         plugins". Fixes bug 335037.
7402 2006-03-18  James Livingston  <jrl@ids.org.au>
7404         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7405         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
7406         332992.
7408         * widgets/rb-header.c: don't make artist/album info in the header the
7409         small size, since it's hard to read.
7411 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7413         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
7414         (rhythmdb_finalize): Don't leak the hash tables.
7415         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
7416         (rhythmdb_commit_internal): Make sure to process the deletions.
7417         (rhythmdb_entry_delete): Use a hash.
7419         * podcast/rb-podcast-manager.c: Random analness about char*
7420         (rb_podcast_manager_remove_feed): Add debugging.
7421         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
7422         the result of gnome_vfs_unlink.  Don't leak a uri.
7424         Fixes #334786
7426 2006-03-18  James Livingston  <jrl@ids.org.au>
7428         * NEWS: update NEWS file
7430 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7432         * rhythmdb/rhythmdb-property-model.c:
7433         (rhythmdb_property_model_prop_changed_cb):
7434         Remove entries from the hash table after processing visible->hidden
7435         changes.
7437 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7439         * sources/rb-daap-source.c (connection_connected_cb) 
7440         (connection_disconnected_cb): Add debug.
7441         (rb_daap_source_get_headers): Check for NULL connection.
7443         * daapsharing/rb-daap-src.c (rb_daap_src_open):
7444         Check return value of rb_daap_source_get_headers.
7446         Fixes #332089
7448 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7450         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7451         Restore the selection after rebuilding the child model, so the
7452         selection is shown correctly after using the 'browse this
7453         album/artist/genre' menu items.
7455 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7457         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
7458         Clear the selection before changing the active model.
7459         Fixes crash reported in bug 334549.
7461 2006-03-15  James Livingston  <jrl@ids.org.au>
7463         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
7464         (rb_tray_icon_sync_action):
7465         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
7466         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
7467         for non-libnotify notification bubbles. Fixes bug 331721.
7469 2006-03-15  James Livingston  <jrl@ids.org.au>
7471         Add search-bar options to playlists. Fixes bug 334407.
7473         * sources/rb-auto-playlist-source.c:
7474         (rb_auto_playlist_source_class_init),
7475         (rb_auto_playlist_source_constructor),
7476         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
7477         (search_action_to_prop), (search_action_changed):
7478         * sources/rb-static-playlist-source.c:
7479         (rb_static_playlist_source_class_init),
7480         (rb_static_playlist_source_constructor),
7481         (construct_query_from_selection), (impl_get_search_actions),
7482         (search_action_to_prop), (search_action_changed):
7484 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7486         * shell/rb-source-header.c (rb_source_header_set_source_internal):
7487         Remove broken attempt at making the search bar buttons not
7488         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
7490 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7492         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
7493         Chain up to parent's dispose instead of finalize.  Fixes #334479.
7495 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7497         * widgets/rb-header.c (rb_header_sync): Escape album and
7498         artist before adding to markup.
7500 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7502         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
7503         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
7504         (rb_header_set_property), (rb_header_get_property),
7505         (rb_header_sync):
7506         Remove the GnomeUrl song links until we can do it properly.
7507         Fixes #334453.
7509 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7511         * shell/rb-source-header.c: (rb_source_header_clear_search):
7512         Remove the stored search text from the hash table, so it doesn't
7513         reappear after switching to another source and back.
7515         * sources/rb-auto-playlist-source.c: (impl_search):
7516         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
7517         * sources/rb-static-playlist-source.c: (impl_search):
7518         Make sure all sources treat impl_search(NULL) and impl_search("") the
7519         same.  Fixes #334525.
7521 2006-03-14  James Livingston  <jrl@ids.org.au>
7523         Store which thread created new entries, and make rhythmdb_commit only
7524         insert the entries for the thread that calls it. This stops one thread
7525         calling rhythmdb_commit inserting entries that are half-way through
7526         construction by another thread (as happens with audio cds). From bug
7527         330226.
7529         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7530         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
7531         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
7532         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
7533         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
7534         (rhythmdb_process_metadata_load),
7535         (rhythmdb_process_queued_entry_set_event),
7536         (rhythmdb_prop_get_type):
7538 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7540         * rhythmdb/rhythmdb-query-model.c:
7541         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
7542         (rhythmdb_query_model_finalize):
7543         Move object unrefs from _finalize into _dispose.
7544         
7545         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
7546         Remove extra g_object_ref that was causing query model leaks.
7547         
7548         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
7549         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
7550         (genre_selection_reset_cb), (rb_iradio_source_do_query):
7551         Remove the cached 'all' query, since it doesn't really help and it
7552         makes the code more complicated.  Attach the genre property view to
7553         the query model build from the search text, so only genres for
7554         stations matching the search terms are displayed.  Preserve the genre
7555         selection across searches.
7557         * widgets/rb-library-browser.c: 
7558         (rb_library_browser_class_init), (rb_library_browser_get_property):
7559         Add properties for the input and output models for the browser, and
7560         remove the 'changed' signal as we can just use notify::output-model.
7561         (ignore_selection_changes),
7562         (selection_restore_data_destroy), (query_complete_cb),
7563         (restore_selection): Helper functions for preserving selections across
7564         query model rebuilds.
7565         (rebuild_output_model):  New function for creating a query model to
7566         use as the display model for a source using the browser.
7567         (rebuild_child_model): Add a call to rebuild_output_model, add missing
7568         g_object_unrefs, reuse the parent's query model when there's no
7569         selection, and use ignore_selection_changes and restore_selection.
7570         (rb_library_browser_set_selection): rebuild_child_model emits the
7571         changed signal, so no need to do it here.
7572         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
7573         ignore_selection_changes and restore_selection. 
7574         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
7575         flag to rb_library_browser_set_model indicating whether the query is
7576         asynchronous.
7578         * sources/rb-static-playlist-source.c:
7579         (rb_static_playlist_source_class_init),
7580         (rb_static_playlist_source_dispose):
7581         (rb_static_playlist_source_constructor):  Add an extra reference on
7582         the base model, so it doesn't vanish when we set a new display model
7583         based on a search or browser selection.
7584         (impl_search): Ensure the search_text field in the source is NULL if
7585         the search box is empty.
7586         (construct_query_from_selection),
7587         (rb_static_playlist_source_do_query): Use the query model constructed
7588         from the search as the input model for the browser.
7589         (rb_static_playlist_source_browser_changed_cb): Use the browser's
7590         output model as the query model for the source.
7592         * sources/rb-auto-playlist-source.c:
7593         (rb_auto_playlist_source_finalize): Free more stuff.
7594         (rb_auto_playlist_source_constructor),
7595         (rb_auto_playlist_source_browser_changed_cb):
7596         Update for rb-library-browser changes, use the browser's output query
7597         model as the query model for the source.
7598         (impl_reset_filters), (impl_search), 
7599         (rb_auto_playlist_source_do_query),
7600         (rb_auto_playlist_source_set_query):
7601         Use the query model constructed from the search text as the input to
7602         the library browser, and when adding text to an existing search, apply
7603         the new query to the existing query model.
7604         
7605         * sources/rb-library-source.c: (rb_library_source_dispose):
7606         (rb_library_source_finalize): Chain dispose up to the parent class.
7607         (rb_library_source_constructor): Update for rb-library-browser
7608         changes. 
7609         (impl_search): Ensure search_text is NULL if the search box is empty,
7610         and use the subset flag to _do_query if text has been appended to an
7611         existing search.
7612         (search_action_changed), (impl_reset_filters):
7613         (rb_library_source_browser_changed_cb),
7614         (rb_library_source_do_query): Use the browser's output model as the
7615         query model for the source.
7617         Rework library and playlist sources to use a single query chain,
7618         and to limit the entries shown in property views based on the search
7619         terms.  Fixes bug #322787.
7621 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7623         * configure.ac:  Enable metadata helper by default, and fix a typo.
7625 2006-03-13  James Livingston  <jrl@ids.org.au>
7627         Make RBRefStrings lazily create the folded and sort-key strings when
7628         they are first used. This will same some memory by not creating ones
7629         that are never used, and delaying some of the others to when the user
7630         resorts or performs a similar action. Fixes bug 332992.
7632         * rhythmdb/rb-refstring.c: (rb_refstring_free),
7633         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
7634         (rb_refstring_get), (rb_refstring_get_folded),
7635         (rb_refstring_get_sort_key), (rb_refstring_hash),
7636         (rb_refstring_equal):
7637         * rhythmdb/rb-refstring.h:
7638         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
7640 2006-03-12  William Jon McCann  <mccann@jhu.edu>
7642         * data/ui/rhythmbox-ui.xml:
7643         * lib/rb-stock-icons.c: (rb_stock_icons_init):
7644         * lib/rb-stock-icons.h:
7645         * shell/rb-shell-player.c:
7646         * shell/rb-shell.c: (rb_shell_constructor):
7647         * shell/rb-source-header.c: (force_no_shadow),
7648         (ui_manager_add_widget_cb), (rb_source_header_constructor),
7649         (rb_source_header_class_init), (rb_source_header_init),
7650         (merge_source_ui_cb), (toolbar_set_homogeneous),
7651         (rb_source_header_set_source_internal),
7652         (rb_source_header_set_property), (rb_source_header_get_property),
7653         (rb_source_header_set_source), (rb_source_header_new),
7654         (rb_source_header_filter_changed_cb):
7655         * shell/rb-source-header.h:
7656         * sources/rb-library-source.c: (rb_library_source_class_init),
7657         (rb_library_source_init), (search_action_to_prop),
7658         (search_action_changed), (rb_library_source_constructor),
7659         (impl_search), (impl_reset_filters), (impl_get_search_actions),
7660         (construct_query_from_selection):
7661         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
7662         (rb_podcast_source_init), (search_action_to_prop),
7663         (search_action_changed), (rb_podcast_source_constructor),
7664         (construct_query_from_selection), (impl_get_ui_actions),
7665         (impl_get_search_actions):
7666         * sources/rb-source.c: (rb_source_class_init),
7667         (rb_source_get_ui_actions), (default_get_search_actions),
7668         (rb_source_get_search_actions):
7669         * sources/rb-source.h:
7671         Add a search bar.  Fixes #328618
7673 2006-03-12  James Livingston  <jrl@ids.org.au>
7675         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
7676         * shell/main.c: (main): make --no-update not stat files checking for
7677         changes, instead of doing nothing. Fixes bug 125177.
7679 2006-03-12  James Livingston  <jrl@ids.org.au>
7681         * podcast/rb-podcast-manager.c:
7682         (rb_podcast_manager_thread_parse_feed):
7683         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
7684         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
7685         having an invalid mime-type. Fixed bug 329813.
7687 2006-03-12  James Livingston  <jrl@ids.org.au>
7689         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
7690         Finally lets us close bug 309609.
7692         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
7693         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
7694         0.10
7696         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
7697         inverted logic of the editable check.
7699 2006-03-12  James Livingston  <jrl@ids.org.au>
7701         Make API doc generation work again. Fixes bug 334276.
7703         * doc/reference/Makefile.am:
7704         * doc/reference/tmpl/rb-debug.sgml:
7705         * doc/reference/tmpl/rb-druid.sgml:
7706         * doc/reference/tmpl/rb-entry-view.sgml:
7707         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
7708         * doc/reference/tmpl/rb-metadata.sgml:
7709         * doc/reference/tmpl/rb-shell.sgml:
7710         * doc/reference/tmpl/rhythmbox-unused.sgml:
7711         * doc/reference/tmpl/rhythmdb.sgml:
7713 2006-03-12  James Livingston  <jrl@ids.org.au>
7715         * shell/rb-shell-clipboard.c:
7716         (rb_shell_clipboard_set_source_internal),
7717         (rb_shell_clipboard_sync): don't try to use the source's entry view if
7718         it doesn't have one. Fixes bug 331673.
7720         * sources/rb-source.c: (rb_source_class_init): provide a default
7721         have_url implementation that returns FALSE.
7723 2006-03-12  James Livingston  <jrl@ids.org.au>
7725         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
7726         doing a distclean. Fixes bug 334221.
7729         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
7731         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
7733 2006-03-11  James Livingston  <jrl@ids.org.au>
7735         * shell/rb-shell.c: (rb_shell_window_state_cb),
7736         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
7737         update the window width/height when iconified. Stops the window
7738         changing size when it is restored from the tray, fixing bug 333824. 
7740 2006-03-11  James Livingston  <jrl@ids.org.au>
7742         Try to get cvs to actually add the necessary files for plugin support
7744 2006-03-11  James Livingston  <jrl@ids.org.au>
7746         Add a plugin framework, with basic support for Python plugins (based
7747         on gedit's). Closes bug 330523.
7749         * Makefile.am:
7750         * shell/Makefile.am:
7751         * configure.ac: necessary autofoo.
7753         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
7755         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
7756         * lib/rb-file-helpers.h:
7758         * data/glade/plugins/glade:
7759         * lib/rb-preferences.h:
7760         * plugins/*:
7761         * bindings/*: plugin framework
7763         * plugins/sample/*:
7764         * plugins/sample-python/*: sample plugins
7766         * plugins/audioscrobbler/*:
7767         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
7768         (rb_audioscrobbler_set_property),
7769         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
7770         submission into a plugin. shell/audioscrobbler.* should really be
7771         moved, but that sucks with cvs.
7773         * shell/rb-shell.h:
7774         * shell/rb-shell.c: (rb_shell_constructor),
7775         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
7776         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
7777         (rb_shell_quit): start and stop plugin framework.
7779 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7781         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
7782         (rhythmdb_entry_delete):
7783         Emit entry-deleted signals when rhythmdb_commit is called, rather than
7784         immediately, so we can't get change notifications afterwards.  
7785         Fixes #331732.
7786         (rhythmdb_process_metadata_load): Add a commit after removing an
7787         entry so we can recreate it with a different type without getting
7788         confused.
7790 2006-03-11  James Livingston  <jrl@ids.org.au>
7792         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
7793         use the drive name for audio CDs, use "Unknown CD".
7795 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7797         patch by:  James Henstridge  <james@jamesh.id.au>
7799         * sources/rb-removable-media-source.c:
7800         (rb_removable_media_source_constructor):
7801         Get the device name from the GnomeVFSDrive if possible,
7802         since this is usually a more descriptive name.  Fixes #333080.
7804 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7806         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7808         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
7809         Don't automatically download episodes when configured for manual
7810         updating.  Fixes #331564.
7812 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7814         * rhythmdb/rhythmdb-property-model.c:
7815         (rhythmdb_property_model_iter_from_string):
7816         Return an iterator for the 'all' property when name == NULL,
7817         and don't write to *iter if iter == NULL.
7819 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7821         * shell/rb-shell-player.c: (rb_shell_player_do_next):
7822         When switching to the play queue, still call _go_next on the normal
7823         play order, so self-emptying auto playlists ("play count = 0" etc.)
7824         don't restart once the queue is empty.
7826         * shell/rb-tray-icon.c:
7827         Change shortcut for 'show notifications' to 'o' so it doesn't clash
7828         with 'next'.
7830 2006-03-05  James Livingston  <jrl@ids.org.au>
7832         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
7833         don't submit tracks which could not be played. Fixed bug 333013.
7835         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
7836         tracks which could not be played.
7838 2006-03-05  James Livingston  <jrl@ids.org.au>
7840         Sync musicbrainz lookup code from Sound-Juicer cvs.
7842         * metadata/sj-metadata-musicbrainz.c:
7843         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
7844         (get_offline_track_listing), (artist_and_title_from_title),
7845         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
7846         (mb_list_albums), (mb_get_submit_url):
7847         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
7848         * metadata/sj-metadata.h:
7849         * metadata/sj-structures.c: (track_details_free),
7850         (album_details_free):
7851         * metadata/sj-structures.h:
7853 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7855         * lib/rb-debug.h:
7856         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
7857         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
7858         (rb_profiler_reset), (rb_profiler_free):
7859         Filter debug output by matching the file and function names against a
7860         match string.
7862         * shell/main.c: (main):
7863         Add -D command line option to specify the debug match string.
7865         * shell/rb-removable-media-manager.c:
7866         (rb_removable_media_manager_mount_volume):
7867         Fix some typos in debug output.
7869 2006-03-03  James Livingston  <jrl@ids.org.au>
7871         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
7872         * shell/rb-shell.c: (rb_shell_load_uri):
7873         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
7874         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
7875         use the new "recurse" property from totem-plparser, if present. Stop
7876         RB hanging for new users who don't have a 'net connection. From bug
7877         331508.
7879 2006-03-02  Bastien Nocera  <hadess@hadess.net>
7881         * shell/rb-removable-media-manager.c:
7882         (rb_removable_media_manager_mount_volume):
7883         * sources/Makefile.am:
7884         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
7885         Fix missing files on make dist (conditional files), only build the
7886         N770 support if there's HAL support, as we have no other ways of
7887         detecting it
7889 2006-03-03  James Livingston  <jrl@ids.org.au>
7891         * shell/rb-shell-clipboard.c:
7892         (rb_shell_clipboard_set_source_internal): really fix it this time.
7893         hopefully.
7895 2006-03-03  James Livingston  <jrl@ids.org.au>
7897         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
7898         with the idle function not being removed.
7900 2006-03-02  James Livingston  <jrl@ids.org.au>
7902         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
7903         * widgets/rb-entry-view.h: add function for determining whether all
7904         entries are selected.
7906         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
7907         (rb_shell_clipboard_set_source_internal),
7908         (rb_shell_clipboard_finalize),
7909         (rb_shell_clipboard_idle_poll_deletions),
7910         (rb_shell_clipboard_entryview_changed_cb),
7911         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
7912         removals, to update things.
7914         (rb_shell_clipboard_sync): update the Select All and Select None
7915         sensitivity, based on what is selected. Fixed bug 172220.
7917 2006-03-02  James Livingston  <jrl@ids.org.au>
7919         * widgets/rb-library-browser.c: (rebuild_child_model): save and
7920         restore the selections of later models. This means that selecting the
7921         artist for the selected album does not reset the album selection.
7923 2006-03-02  James Livingston  <jrl@ids.org.au>
7925         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
7926         Stops it emitting critical warnings.
7928 2006-03-02  James Livingston  <jrl@ids.org.au>
7930         * lib/rb-file-helpers.c: (rb_uri_append_uri):
7931         * lib/rb-file-helpers.h: Add uri concatenation function for when the
7932         second fragment is already escaped.
7934         * sources/rb-generic-player-source.c:
7935         (rb_generic_player_source_class_init),
7936         (rb_generic_player_source_constructor), (impl_show_popup),
7937         (rb_generic_player_source_load_playlists),
7938         (rb_generic_player_source_transform_playlist_uri),
7939         (handle_playlist_entry_cb), (visit_playlist_dirs),
7940         (default_load_playlists), (default_transform_playlist_uri):
7941         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
7942         the device. Allow subclasses to override the playlist loading, and
7943         (playlist uri)->(actual uri) mapping. A lot of devices which have
7944         playlists won't work right now, but people will see them and hopefully
7945         file bugs.
7947         * sources/rb-psp-source.c: (rb_psp_source_class_init),
7948         (rb_psp_source_create_playlists): Adapt the PSP for the above change
7949         
7950         * sources/Makefile.am:
7951         + sources/rb-nokia770-source.{c,h}:
7952         * shell/rb-removable-media-manager.c:
7953         (rb_removable_media_manager_mount_volume): Add support for reading
7954         playlists of Nokia 770s.
7956 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7958         * data/glade/podcast-properties.glade:
7959         * podcast/rb-podcast-properties-dialog.c:
7960         (rb_podcast_properties_dialog_init),
7961         (rb_podcast_properties_dialog_update),
7962         (rb_podcast_properties_dialog_update_location),
7963         (rb_podcast_properties_dialog_update_download_location):
7964         Add 'download location' field showing the path to the downloaded copy.
7965         Fixes #330696.
7967 2006-03-01  Bastien Nocera  <hadess@hadess.net>
7969         * configure.ac: simplify HAVE_HAL define
7971 2006-03-01  Bastien Nocera  <hadess@hadess.net>
7973         * configure.ac:
7974         * lib/rb-file-helpers.c: (rb_uri_append_path):
7975         * lib/rb-file-helpers.h:
7976         * shell/rb-removable-media-manager.c:
7977         (rb_removable_media_manager_mount_volume):
7978         * sources/Makefile.am:
7979         * sources/rb-ipod-source.c:
7980         * sources/rb-psp-source.*:
7981         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
7982         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
7984 2006-03-02  James Livingston  <jrl@ids.org.au>
7986         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7987         (rb_shell_player_play), (rb_shell_player_jump_to_current),
7988         (swap_playing_source), (rb_shell_player_playpause),
7989         (rb_shell_player_sync_buttons), (actually_set_playing_source),
7990         (rb_shell_player_set_playing_source_internal): check for the entry
7991         view being NULL before trying to use it. Lets us support sources which
7992         don't have an entry view. From bug 331673.
7994 2006-03-01  Bastien Nocera  <hadess@hadess.net>
7996         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
7997         use gnome_vfs_read_entire_file with a URI, not a local filename
7999 2006-03-01  James Livingston  <jrl@ids.org.au>
8001         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
8002         first-seen and last-seen when merging duplicate entries.
8004 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8006         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
8007         * widgets/rb-property-view.h:  New function, allowing custom 
8008         interactive search functions for property views.
8009         
8010         * sources/rb-podcast-source.c: 
8011         (feed_select_change_cb): Only do a new query when the selection
8012         actually changes.
8013         (rb_podcast_source_constructor),
8014         (rb_podcast_source_feed_title_search_func):
8015         Interactive search function for podcast feed titles.  Fixes #327451.
8017 2006-03-01  James Livingston  <jrl@ids.org.au>
8019         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
8020         the uri in the callback, since it causes symbols to not be escaped.
8021         Fixes bug 332976.
8023         * data/ui/rhythmbox-ui.xml:
8024         * sources/rb-import-errors-source.c:
8025         (rb_import_errors_source_class_init),
8026         (rb_import_errors_source_constructor), (impl_get_status),
8027         (impl_move_to_trash),
8028         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
8029         import errors source
8030         
8031         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
8032         (rb_entry_view_append_column): unescape the URI for display.
8034 2006-03-01  James Livingston  <jrl@ids.org.au>
8036         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
8037         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
8038         function fails.
8040 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
8042         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
8043         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
8044         * sources/rb-play-queue-source.c:
8045         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
8046         (rb_play_queue_source_update_count):  Use "Play Queue" instead
8047         of "Queued Songs".
8049         Fixes #331637.
8051 2006-03-01  James Livingston  <jrl@ids.org.au>
8053         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
8054         Fixes bug 332913.
8056 2006-03-01  James Livingston  <jrl@ids.org.au>
8058         * daapsharing/rb-daap-mdns-browser-howl.c:
8059         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
8060         * daapsharing/rb-daap-mdns-publisher-avahi.c:
8061         (rb_daap_mdns_publisher_class_init),
8062         (rb_daap_mdns_publisher_finalize):
8063         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
8064         * player/rb-recorder-gst.c: (rb_recorder_class_init),
8065         (rb_recorder_finalize):
8066         * rhythmdb/rhythmdb-query-model.c:
8067         (rhythmdb_query_model_constructor):
8068         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
8069         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
8070         * sources/rb-playlist-source-recorder.c:
8071         (rb_playlist_source_recorder_style_set),
8072         (rb_playlist_source_recorder_class_init),
8073         (rb_playlist_source_recorder_finalize):
8074         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
8075         other classes in the same way, so they don't break when derived from.
8077 2006-03-01  James Livingston  <jrl@ids.org.au>
8079         * sources/rb-generic-player-source.c:
8080         (rb_generic_player_source_constructor): don't get the parent class in
8081         a dumb way, and it breaks when the class is derived from.
8083 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
8085         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
8087 2006-03-01  James Livingston  <jrl@ids.org.au>
8089         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
8090         not work in glib 2.8 systems.
8092 2006-03-01  James Livingston  <jrl@ids.org.au>
8094         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
8095         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
8096         say it is crap.
8098         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
8099         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
8100         podcasts on ion-local places
8102         * rhythmdb/gsequence.c: (g_sequence_node_new),
8103         (g_sequence_node_free): use gslice if we are building against glib
8104         2.10.
8106         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
8107         local files too, so it doesn't block.
8109 2006-02-28  James Livingston  <jrl@ids.org.au>
8111         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
8112         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
8113         stats the file. Stops the UI blocking while stats are done.
8115 2006-02-28  James Livingston  <jrl@ids.org.au>
8117         * sources/rb-static-playlist-source.c:
8118         (rb_static_playlist_source_class_init),
8119         (rb_static_playlist_source_constructor), (impl_reset_filters),
8120         (impl_get_property_views), (impl_browser_toggled),
8121         (rb_static_playlist_source_do_query),
8122         (rb_static_playlist_source_browser_changed_cb): add browsers to static
8123         playlists. From bug 118862.
8125         * sources/rb-play-queue-source.c:
8126         (rb_play_queue_source_class_init): disable them for the play queue.
8128 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
8130         * data/glade/library-prefs.glade:  Add a mnemonic.
8131         * sources/rb-library-source.c:
8132         (rb_library_source_location_button_clicked_cb):  Use title
8133         capitalization for window title.
8135 2006-02-28  James Livingston  <jrl@ids.org.au>
8137         * sources/rb-auto-playlist-source.c:
8138         (construct_query_from_selection): don't create a subquery for only one
8139         criteria, as it's a silly effifiency degredation.
8141 2006-02-28  James Livingston  <jrl@ids.org.au>
8143         * rhythmdb/rhythmdb.h:
8144         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8145         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
8146         saved to disk
8148         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
8149         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
8150         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
8151         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
8152         IGNORE (e.g. known video stream) create an entry of the Ignore type.
8153         This will make importing files quicker as we don't need to try files
8154         that we know are not going to be interesting - especially useful when
8155         using the library watching facility.
8157         Fixes bug 323179.
8159 2006-02-28  James Livingston  <jrl@ids.org.au>
8161         * shell/rb-shell.c: (rb_shell_constructor),
8162         (rb_shell_set_visibility): fix browser and source-list pane
8163         positioning, that I broke with the "remember visibility" patch.
8165 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8167         * metadata/rb-metadata-dbus-service.c: (main):
8168         Change argument handling so you can use --debug with the --load and
8169         --can-save test modes.
8170         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
8171         Use a separate GMainContext, not the default one.  Probably fixes
8172         #332344.
8174 2006-02-27  James Livingston  <jrl@ids.org.au>
8176         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
8177         first starting up. Fixes bug 330342.
8179 2006-02-27  James Livingston  <jrl@ids.org.au>
8181         * sources/rb-sourcelist-model.c:
8182         (rb_sourcelist_model_set_dnd_targets):
8183         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
8184         COPY action for draging sources and tracks, not MOVE as well. Stops
8185         Nautilus moving file away, and fixes bug 332488.
8187 2006-02-27  James Livingston  <jrl@ids.org.au>
8189         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
8191         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
8192         and Last Played metadata off iPods. Closes bug 324648.
8194 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8196         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
8197         Disable audioscrobbler when run with the --no-registration flag, since
8198         last.fm doesn't allow multiple concurrent clients per user.
8200 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8202         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
8203         Rename renamable sources when F2 is pressed when the sourcelist has
8204         focus.  Fixes #330700.
8206 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8208         * shell/rb-playlist-manager.c: (cleanup_edit_data),
8209         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
8210         (rb_playlist_manager_cmd_edit_automatic_playlist):
8211         Fix various crashes when deleting auto playlists previously edited
8212         by disconnecting signal handlers when the query editor is closed or
8213         the playlist is deleted.
8215 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8217         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
8218         removed load failure dialog, and actually use the friendly file type
8219         name in error messages.
8221 2006-02-24  James Livingston  <jrl@ids.org.au>
8223         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
8225         * sources/rb-library-source.c:
8226         (rb_library_source_location_button_clicked_cb),
8227         (rb_library_source_preferences_sync),
8228         (rb_library_source_library_location_cb): convert the library URI to
8229         for display, and back again. Fixes bug 332356.
8231 2006-02-23  James Livingston  <jrl@ids.org.au>
8233         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
8234         (rhythmdb_process_metadata_load), (monitor_subdirectory),
8235         (rhythmdb_sync_library_location): don't monitor files at all if
8236         watching is turned off. From bug 323096.
8238 2006-02-23  James Livingston  <jrl@ids.org.au>
8240         * data/rhythmbox.schemas:
8241         * lib/rb-preferences.h:
8242         * shell/rb-shell.c: (rb_shell_constructor),
8243         (rb_shell_set_visibility): remember main window visibility between
8244         sessions. Fixes bug 127320.
8246 2006-02-23  James Livingston  <jrl@ids.org.au>
8248         * data/glade/library-prefs.glade:
8249         * sources/rb-library-source.c: (impl_get_config_widget),
8250         (rb_library_source_location_button_clicked_cb),
8251         (rb_library_source_preferences_sync),
8252         (rb_library_source_library_location_cb),
8253         (rb_library_source_watch_toggled_cb): change the library-location
8254         widgets from the file-chooser drop menu to a text entry and Browse
8255         button. This is needed to prevent the location from chaning if the
8256         directory cannot be found. Fixes bug 328414.
8258 2006-02-23  James Livingston  <jrl@ids.org.au>
8260         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
8261         item. Fixes bug 329042.
8263 2006-02-23  James Livingston  <jrl@ids.org.au>
8265         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8267         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
8268         comma in some podcast feeds. Fixes bug 332194.
8270 2006-02-23  James Livingston  <jrl@ids.org.au>
8272         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
8273         lower priority.
8275         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
8276         the internal audio cd URIs from "cdda://device:track" to
8277         "cdda://track#device" as it makes processing much easier.
8279         * shell/rb-shell-player.c: (rb_shell_player_open_location):
8280         * player/rb-player-gst.c: don't have the shell close the player
8281         between songs, as doing that should be backend-specific. Make the
8282         gstreamer backend close before starting a new track, unless the old
8283         and new ones are both tracks on the same audio cd. Just seek in that
8284         case.
8286 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8288         * doc/reference/rhythmbox.types: Fix doc build a bit more.
8290 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8292         * configure.ac: Enable more warnings in my stupid setup too.
8293         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
8294         #332210.
8296 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8298         * sources/rb-missing-files-source.h,
8299         * sources/rb-missing-files-source.c,
8300         * sources/rb-import-errors-source.h,
8301         * sources/rb-import-errors-source.c:
8302         Add library meta-sources, showing missing files and import errors.
8303         Fixes #167763, #142322.
8305         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
8306         * sources/rb-sourcelist-model.h:
8307         * sources/rb-sourcelist.c: (rb_sourcelist_append),
8308         (match_source_to_iter), (rb_sourcelist_source_to_iter),
8309         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
8310         (visibility_notify_cb):
8311         Store source visibility in the sourcelist model, so we can determine
8312         child source counts correctly and get the sourcelist expander column
8313         right.
8314         
8315         * widgets/rb-entry-view.h:
8316         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8317         (rb_entry_view_append_column), (set_column_visibility):
8318         Allow the creator of the entry view to specify which columns are
8319         always visible.
8321         * sources/rb-source.h:
8322         * sources/rb-source.c: (_autohide_update_visibility),
8323         (_rb_autohide_source_row_deleted_cb),
8324         (_rb_autohide_source_row_inserted_cb),
8325         (_rb_source_hide_when_empty):
8326         Allow sources to automatically hide themselves when empty.
8327         
8328         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
8329         * sources/rb-library-source.c: (rb_library_source_constructor):
8330         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8331         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8332         Explicitly specify which columns are always visible.
8333         
8334         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
8335         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
8336         Remove load error signal handling and load failure dialog.
8337         Create missing files and import errors sources for the library.
8339         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
8340         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
8341         Create DB entries for import errors rather than emitting the 'load
8342         error' signal; mark loaded entries visible.
8343         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
8344         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
8345         (rhythmdb_prop_get_type): Store string form of last seen time for
8346         hidden entries, since it's used in the missing files source.
8347         (rhythmdb_entry_import_error_get_type): 
8348         Add entry type for import errors.
8349         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
8350         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
8351         (rhythmdb_entry_move_to_trash_set_error),
8352         (rhythmdb_entry_move_to_trash):  
8353         Correct spelling, add missing rhythmdb_commit.
8354         * rhythmdb/rhythmdb.h:  
8355         Add import error entry type and last seen string property.
8356         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
8357         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8358         (save_entry):  Ignore string form of 'last seen' property.
8360         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
8361         Don't try to play hidden entries or import error entries.
8363         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
8364         * sources/Makefile.am: Add meta-source files
8365         * widgets/Makefile.am: Remove load failure dialog files
8367 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8369         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8370         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
8371         few bits and pieces.
8373 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8375         * metadata/test-metadata.c: (load_metadata_cb):
8376         Fix compile warning for ignoring return value from getcwd, #332064.
8378 2006-02-21  James Livingston  <jrl@ids.org.au>
8380         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
8381         (edit_auto_playlist_deleted_cb),
8382         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
8383         playlist editor non-modal. Fixes bug 320030.
8385 2006-02-21  James Livingston  <jrl@ids.org.au>
8387         * shell/rb-shell.c: (rb_shell_constructor):
8388         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
8389         (rb_header_set_show_artist_album):
8390         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
8391         (rb_song_display_box_sync): make the queue sidebar and song display
8392         not get affected by gtk_widget_show_all. Fixes bug 332001.
8394 2006-02-21  James Livingston  <jrl@ids.org.au>
8396         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
8398         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
8399         feeds which use timezone names instead of offsets. Doesn't actually
8400         parse the timezone name since they are not standardised. Fixes bug
8401         331691.
8403 2006-02-21  James Livingston  <jrl@ids.org.au>
8405         * help/C/figures/rb-notification-area.png:
8406         * help/C/figures/rb-sidebar.png:
8407         * help/C/quick-reference.xml: remove obsolete files from CVS.
8409         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
8410         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
8411         (rhythmdb_query_free), (rhythmdb_query_serialize),
8412         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
8413         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
8415         * widgets/rb-query-creator-properties.c: add prefix and suffix
8416         (escapedStringCriteriaGetWidgetData): use better escaping, so it
8417         doesn't escape the ':' separator in uris.
8419 2006-02-21  James Livingston  <jrl@ids.org.au>
8421         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
8422         on startup.
8424 2006-02-21  James Livingston  <jrl@ids.org.au>
8426         * NEWS: update with recent changes
8428 2006-02-21  James Livingston  <jrl@ids.org.au>
8430         * shell/rb-shell.c: (rb_shell_constructor),
8431         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
8432         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
8433         (rb_druid_browse_clicked_cb), (do_response):
8434         * widgets/rb-druid.h: Make running the druid not block RBShell
8435         starting up. This is required so that bonobo registration doesn't time
8436         out. Fixed bug 318766.
8438 2006-02-21  James Livingston  <jrl@ids.org.au>
8440         * rhythmdb/rhythmdb-property-model.c:
8441         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
8442         hash table after using it, not before. Fixed bug 331922.
8444 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8446         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
8447         (rb_shell_view_queue_as_sidebar_changed_cb):
8448         When playing from the queue, only attempt to highlight the queue
8449         source in the source list if it's actually visible there.  Otherwise,
8450         leave the preempted source highlighted.  Mostly fixes #330819.
8452 2006-02-20  James Livingston  <jrl@ids.org.au>
8454         * rhythmdb/rhythmdb-property-model.c:
8455         (rhythmdb_property_model_row_inserted_cb),
8456         (rhythmdb_property_model_prop_changed_cb),
8457         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
8458         store the roperty value in the entry-mapping table, so that receiving
8459         the remove signal from a query model before we get notified of a
8460         change doesn't cause a crash. Fixes bug 331770.
8462 2006-02-20  James Livingston  <jrl@ids.org.au>
8464         * data/ui/rhythmbox-ui.xml:
8465         * sources/rb-play-queue-source.c:
8466         (rb_play_queue_source_class_init),
8467         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
8468         playlist things in the queue popup source. From 330490.
8470         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
8471         previous commit
8473 2006-02-20  James Livingston  <jrl@ids.org.au>
8475         * widgets/rb-song-info.c: (rb_song_info_response_cb),
8476         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
8477         attempt to sync data for non-editable entries when using
8478         next/previous. Don't write our Year if it wasn't changed. Fixes bug
8479         331762.
8481 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
8483         * .cvsignore:
8484         * Makefile.am:
8485         * autogen.sh:
8486         * configure.ac:
8487         * help/.cvsignore:
8488         * help/Makefile.am: ported to gnome-doc-utils
8489         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
8490         * help/ChangeLog: added, for translators
8491         * help/C/rhytmbox-C.omf: removed, no longer used
8492         Know issue: figures are installed, but some are not showed; manual
8493         description added, but not showed in Yelp while browsing. I'll
8494         investigate, maybe are needed some little changes to
8495         help/C/rhythmbox.xml.
8497 2006-02-20  James Livingston  <jrl@ids.org.au>
8499         * data/ui/rhythmbox-ui.xml:
8500         * help/C/figures/rb-adv.png:
8501         * help/C/figures/rb-asst-finish.png:
8502         * help/C/figures/rb-asst-library.png:
8503         * help/C/figures/rb-asst-start.png:
8504         * help/C/figures/rb-basic.png:
8505         * help/C/figures/rb-browser.png:
8506         * help/C/figures/rb-context-menu.png:
8507         * help/C/figures/rb-empty.png:
8508         * help/C/figures/rb-full-play.png:
8509         * help/C/figures/rb-group-auto.png:
8510         * help/C/figures/rb-group-create.png:
8511         * help/C/figures/rb-group.png:
8512         * help/C/figures/rb-imported.png:
8513         * help/C/figures/rb-iradio-add.png:
8514         * help/C/figures/rb-iradio.png:
8515         * help/C/figures/rb-nextprev.png:
8516         * help/C/figures/rb-nobrowse-play.png:
8517         * help/C/figures/rb-notification-area-menu.png:
8518         * help/C/figures/rb-player.png:
8519         * help/C/figures/rb-prefs-general.png:
8520         * help/C/figures/rb-prefs-ipod.png:
8521         * help/C/figures/rb-prefs-library.png:
8522         * help/C/figures/rb-prefs.png:
8523         * help/C/figures/rb-repeat.png:
8524         * help/C/figures/rb-search.png:
8525         * help/C/figures/rb-shuffle.png:
8526         * help/C/figures/rb-stats.png:
8527         * help/C/figures/rb-toolbar-editor.png:
8528         * help/C/figures/rb-volume-mute.png:
8529         * help/C/figures/rhythmbox-group.png:
8530         * help/C/figures/rhythmbox-tray-icon.png:
8531         * help/C/user-guide.xml: remove old stuff from cvs
8533 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8535         * metadata/rb-metadata-dbus-client.c: 
8536         * metadata/rb-metadata-dbus-service.c:
8537         * metadata/rb-metadata-dbus.c:
8538         * metadata/rb-metadata-dbus.h:
8539         New files, adding an external service for reading and writing
8540         metadata, and an implementation of the RBMetaData interface that uses
8541         dbus to communicate with it.
8542         
8543         * metadata/rb-metadata.h,
8544         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
8545         (rb_metadata_get_field_name): Put metadata details in a static array
8546         instead of using a hash table, and add a field for language code (not
8547         used for anything)
8548         * metadata/rb-metadata-gst.c: Updates for changes in
8549         rb-metadata-common.c, fix signal handler closure leak for the typefind
8550         element's have-type signal, and add XML to the list of types we ignore.
8551         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
8552         Update for changes to rb_metadata_get_field_type
8553         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
8554         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
8555         here and there.
8556         
8557         * configure.ac: Add --enable-metadata-helper option (not enabled by
8558         default) to use the external metadata service
8559         * metadata/Makefile.am: Add new files
8560         * metadata/test-metadata.c:  Test program for the metadata service
8562         Fixes #329597. 
8564 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8566         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
8567         * sources/rb-podcast-source.c: (impl_get_ui_actions),
8568         (rb_podcast_source_cmd_new_podcast):
8569         Move 'new podcast' action to the podcast source, and add it to the
8570         toolbar.  Fixes #331562.
8572 2006-02-19  James Livingston  <jrl@ids.org.au>
8574         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
8575         menus, and away from move-to-trash. Fixes bug 331013.
8577 2006-02-19  James Livingston  <jrl@ids.org.au>
8579         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
8580         when deleting last entry. Fixes bug 331712.
8582 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8584         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8585         (rb_entry_view_button_press_cb):
8586         * widgets/rb-entry-view.h: Emit show-popup when right clicked
8587         anywhere, and include a flag indicating whether the click was over an
8588         entry or not.
8589         
8590         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
8591         (rb_playlist_source_songs_show_popup_cb):
8592         * sources/rb-playlist-source.h:
8593         Add the 'over entry' flag to the class show popup method, and in the
8594         default handler, ignore right clicks when not over an entry.
8595         
8596         * sources/rb-iradio-source.c:
8597         (rb_iradio_source_songs_show_popup_cb):
8598         * sources/rb-library-source.c:
8599         (rb_library_source_songs_show_popup_cb):
8600         * sources/rb-podcast-source.c:
8601         (rb_podcast_source_songs_show_popup_cb):
8602         Show the source list popup menu when right clicked while not over an
8603         entry.
8605         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
8606         For the queue sidebar, always display the popup so the 'clear queue'
8607         action is available regardless of where you click.  For the queue
8608         source, only display the popup when right clicked over an entry.
8609         Fixes #331392.
8611 2006-02-19  James Livingston  <jrl@ids.org.au>
8613         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
8614         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
8615         entry view, when we're not even using it
8617         * rhythmdb/rhythmdb-property-model.c:
8618         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
8619         function, rather than a copy of the code.
8621         * shell/rb-playlist-manager.c:
8622         (rb_playlist_manager_playlist_row_inserted_cb),
8623         (rb_playlist_manager_set_source_internal),
8624         (rb_playlist_manager_playlist_entries_changed): use the query-model
8625         directly, rather than the source's entry view.
8627         * shell/rb-source-header.c: don't use the entry view, just select the
8628         source widget.
8630 2006-02-18  James Livingston  <jrl@ids.org.au>
8632         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8634         * help/C/figures/rb-iradio-main.png:
8635         * help/C/figures/rb-notification-area-menu.png:
8636         * help/C/figures/rb-notification-window.png:
8637         * help/C/figures/rb-notification-zone.png:
8638         * help/C/figures/rb-podcast-main.png:
8639         * help/C/figures/rb-statusbar.png:
8640         * help/C/figures/rb-toolbar-prevplaynext.png:
8641         * help/C/figures/rb-toolbar-repeat.png:
8642         * help/C/figures/rb-toolbar-shuffle.png:
8643         * help/C/figures/rb-toolbar.png:
8644         * help/C/figures/rb-volume-changer.png:
8645         * help/C/figures/rb-window-small.png:
8646         * help/C/figures/rb-window.png:
8647         * help/C/rhythmbox.xml: Update user guide with some of the changes
8648         that have occurred after 0.8.8. From bug 314001.
8650 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8652         * rhythmdb/rhythmdb-query-results.h,
8653           rhythmdb/rhythmdb-query-results.c:
8654         New interface for objects that accept query results from RhythmDB.
8656         * rhythmdb/rhythmdb-query-model.c:
8657         (rhythmdb_query_model_query_results_init),
8658         (rhythmdb_query_model_set_query),
8659         (rhythmdb_query_model_add_results),
8660         (rhythmdb_query_model_query_complete):
8661         * rhythmdb/rhythmdb-query-model.h:
8662         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
8664         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
8665         (rhythmdb_tree_do_full_query):
8666         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
8667         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
8668         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
8669         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
8670         * rhythmdb/rhythmdb.h:
8671         Pass query results through the RhythmDBQueryResults interface, rather
8672         than directly to a RhythmDBQueryModel.
8674         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
8675         (rb_podcast_manager_db_entry_deleted_cb):
8676         * sources/rb-auto-playlist-source.c:
8677         (rb_auto_playlist_source_do_query),
8678         (rb_auto_playlist_source_set_query):
8679         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
8680         * sources/rb-library-source.c: (rb_library_source_constructor),
8681         (rb_library_source_do_query):
8682         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8683         (rb_podcast_source_do_query):
8684         * rhythmdb/rhythmdb-property-model.c:
8685         (rhythmdb_property_model_drag_data_get):
8686         Cast the query model to RhythmDBQueryResults when passing to one of
8687         the RhythmDB query methods.
8689         * rhythmdb/Makefile.am: Add new files.
8691 2006-02-18  James Livingston  <jrl@ids.org.au>
8693         * data/ui/rhythmbox-ui.xml:
8694         * shell/rb-playlist-manager.c:
8695         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
8696         "queue playlist" item to source context menu. Fixes bug 330490.
8698 2006-02-18  James Livingston  <jrl@ids.org.au>
8700         * data/glade/general-prefs.glade:
8701         * shell/rb-shell-preferences.c:
8702         (rb_shell_preferences_column_check_changed_cb),
8703         (rb_shell_preferences_sync):
8704         * sources/rb-library-source.c: (rb_library_source_constructor):
8705         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8706         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
8707         (rb_entry_view_append_column): Add a "quality" colume which indicates
8708         the bitrate of media. Part of bug 167659.
8710 2006-02-18  James Livingston  <jrl@ids.org.au>
8712         * shell/rb-play-order.c: (do_next_idle_cb),
8713         (default_playing_entry_removed): move to next track when playing entry
8714         is deleted. Fixes bug 131150.
8716         * shell/rb-shell-player.h: remove ancient stuff
8718 2006-02-17  William Jon McCann  <mccann@jhu.edu>
8720         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
8721         (rb_shell_clipboard_set_property): 
8722         * shell/rb-shell.c (rb_shell_sync_party_mode):
8723         Trigger a resync of the clipboard properties when changing party mode.
8725 2006-02-17  William Jon McCann  <mccann@jhu.edu>
8727         * sources/rb-static-playlist-source.c: Fix includes.
8729         * sources/rb-source.c (rb_source_can_rename) 
8730         (rb_source_can_delete, rb_source_can_move_to_trash):
8731         Return FALSE if in party mode.
8733         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
8734         Replace fullscreen with party mode.
8735         (rb_shell_window_delete_cb): Don't quit if in party mode.
8736         (rb_shell_view_party_mode_changed_cb): Setup party mode.
8737         (window_state_event_cb): Try to deiconify shell when iconified
8738         in party mode.
8739         (rb_shell_sync_party_mode): Sync party mode properties.
8740         Currently, that means [de]sensitizing close, quit, and small-display,
8741         going into fullscreen mode with window stuck and kept above, and
8742         toggling queue-only for the shell player.
8743         (rb_shell_sync_smalldisplay): Sensitive party mode.
8744         (rb_shell_get_party_mode): Get party mode setting.
8746         * shell/rb-shell-player.c (rb_shell_player_class_init) 
8747         (rb_shell_player_set_property, rb_shell_player_get_property):
8748         Add queue-only property.
8749         (rb_shell_player_entry_activated_cb): If in party mode
8750         only queue the entry on activation.
8752         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
8753         Break out from set_properties.  Desensitize some actions when
8754         in party mode.
8755         (rb_playlist_manager_set_property): Break out set_source_internal.
8757         * data/rhythmbox.schemas: Remove fullscreen mode.
8759         * data/ui/rhythmbox-ui.xml: Replace fullscreen
8760         action with party mode.
8762         Partial fix for #323933
8764 2006-02-17  James Livingston  <jrl@ids.org.au>
8766         * configure.ac:
8767         * shell/rb-removable-media-manager.c:
8768         (get_nautilus_burn_drive_for_path),
8769         (rb_removable_media_manager_playing_uri_changed_cb): only use
8770         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
8771         over the list when it doesn't.
8773 2006-02-17  James Livingston  <jrl@ids.org.au>
8775         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
8776         (rb_iradio_source_first_time_changed): Only do the import on the
8777         first change from FALSE to TRUE.
8779         * sources/rb-library-source.c:
8780         (rb_library_source_preferences_sync),
8781         (rb_library_source_library_location_cb): set the first-run done flag
8782         if the user presses close and then sets their watches library
8783         location. Fixes bug 325997.
8785 2006-02-17  James Livingston  <jrl@ids.org.au>
8787         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
8788         removable media manager gobject properties
8790         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
8791         (split_drive_from_cdda_uri),
8792         (rb_removable_media_manager_playing_uri_changed_cb),
8793         (rb_removable_media_manager_load_media): stop polling a cd drive
8794         when we are playing from it. Part of bug 330716.
8796 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8798         * rhythmdb/rhythmdb-query-model.c:
8799         (rhythmdb_query_model_set_property),
8800         (rhythmdb_query_model_finalize),
8801         (rhythmdb_query_model_base_entry_removed):
8802         Propagate entry removal from base models out to attached property
8803         models.  Fixes the rest of #331165.
8805 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8807         * rhythmdb/rhythmdb-property-model.c:
8808         (rhythmdb_property_model_row_inserted_cb),
8809         (rhythmdb_property_model_prop_changed_cb),
8810         (rhythmdb_property_model_insert):
8811         Don't store NULL as a hash table value if we want to use
8812         g_hash_table_lookup to check if a key exists, and get the checks for
8813         how and whether to handle entry changes the right way around.
8814         Fixes #331211 and half of #331165.
8816 2006-02-16  James Livingston  <jrl@ids.org.au>
8818         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
8819         the audio cd's TOC in a separate thread, so it doesn't block the UI.
8820         Fixes bug 329942.
8822 2006-02-16  James Livingston  <jrl@ids.org.au>
8824         * widgets/rb-library-browser.c: (reset_view_cb): make View All
8825         actually reset the browsers.
8827 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8829         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
8830         Escape the strings we pass into libnotify so we don't get blank
8831         notifications when the song name contains '&' etc.  Fixes #330784.
8833 2006-02-16  James Livingston  <jrl@ids.org.au>
8835         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
8836         enable "View All" when there is only a search box and no browser.
8837         Fixes bug 331395.
8839 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8841         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
8842         popup menu, which I forgot to commit with the patch for bug #330014.
8844 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8846         * shell/rb-shell-player.c: (open_location_thread):
8847         Sync button and entry view state once we've started the player, so the
8848         entry view gets into the playing state for iradio.
8850 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8852         * shell/rb-shell-player.c: (open_location_thread):
8853         Take GDK lock before doing anything UI-related.
8855 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8857         * shell/rb-shell.c: Move 'new iradio station' action to
8858         iradio source.
8860         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
8861         (rb_iradio_source_init), (rb_iradio_source_finalize),
8862         (rb_iradio_source_constructor):
8863         Remove some unused stuff.
8865         (guess_uri_scheme), (rb_iradio_source_add_station),
8866         (rb_iradio_source_add_from_playlist),
8867         (impl_get_ui_actions), (new_station_location_added),
8868         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
8869         action, include it in the toolbar, and make sure the URI we add has a
8870         scheme.  Fixes #327059, more or less.
8872 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8874         * sources/rb-play-queue-source.c:
8875         (rb_play_queue_source_class_init),
8876         (rb_play_queue_source_constructor),
8877         (rb_play_queue_source_update_count),
8878         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
8879         Add a toolbar button to clear the play queue, and make it sensitive
8880         only when there are entries in the queue.  Fixes #330014.
8882         * sources/rb-source.c: (_rb_source_register_action_group):
8883         * sources/rb-source.h:  Add helper function to register an
8884         action group for a source.
8886         * sources/rb-library-source.c: (rb_library_source_constructor):
8887         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8888         (register_action_group):  Use _rb_source_register_action_group.
8890 2006-02-15  James Livingston  <jrl@ids.org.au>
8892         * widgets/rb-song-info.c: (rb_song_info_add_completion),
8893         (rb_song_info_constructor), (rb_song_info_set_property): make
8894         tag-editing completion work for albums too.
8896 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8898         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
8899         Check the 'limit' checkbox for time-limited playlists.
8901 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
8903         * widgets/rb-song-info.c: Prove text-completion when editing title,
8904         artist or album
8906 2006-02-14  James Livingston  <jrl@ids.org.au>
8908         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
8909         tray icon popup menu. Fixes bug 331026.
8911 2006-02-14  James Livingston  <jrl@ids.org.au>
8913         * data/iradio-initial.pls: update the Virgin Radio stations to use the
8914         Ogg Vorbis streams, instead of the MP3 ones.
8916 2006-02-14  James Livingston  <jrl@ids.org.au>
8918         * rhythmdb/rhythmdb-property-model.c:
8919         (rhythmdb_property_model_class_init),
8920         (rhythmdb_property_model_drag_data_get):
8921         * rhythmdb/rhythmdb-query-model.c:
8922         (rhythmdb_query_model_title_sort_func):
8923         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
8924         LOCATION as the key. Fixes bug 330601.
8926 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8928         * sources/rb-playlist-source.c: (playlist_iter_func):
8929         Make it compile with older versions of totem-plparser too.      
8931 2006-02-13  James Livingston  <jrl@ids.org.au>
8933         * rhythmdb/rhythmdb.h:
8934         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
8935         structure private, since things should use the accessor functions
8936         rather than manipulating it directly - Only RhythmDB and the
8937         implementation classes should access it directly. Part of the RhythmDB
8938         cleanup of bug 330226.
8940         * iradio/rb-station-properties-dialog.c:
8941         (rb_station_properties_dialog_update_title),
8942         (rb_station_properties_dialog_update_title_entry),
8943         (rb_station_properties_dialog_update_genre),
8944         (rb_station_properties_dialog_update_location),
8945         (rb_station_properties_dialog_update_play_count),
8946         (rb_station_properties_dialog_update_bitrate),
8947         (rb_station_properties_dialog_update_last_played),
8948         (rb_station_properties_dialog_update_rating),
8949         (rb_station_properties_dialog_update_playback_error),
8950         (rb_station_properties_dialog_sync_entries):
8951         * podcast/rb-feed-podcast-properties-dialog.c:
8952         (rb_feed_podcast_properties_dialog_update_title),
8953         (rb_feed_podcast_properties_dialog_update_title_label),
8954         (rb_feed_podcast_properties_dialog_update_author),
8955         (rb_feed_podcast_properties_dialog_update_location),
8956         (rb_feed_podcast_properties_dialog_update_copyright),
8957         (rb_feed_podcast_properties_dialog_update_language),
8958         (rb_feed_podcast_properties_dialog_update_summary):
8959         * podcast/rb-podcast-manager.c:
8960         (rb_podcast_manager_entry_downloaded),
8961         (rb_podcast_manager_db_entry_added_cb),
8962         (download_progress_update_cb),
8963         (rb_podcast_manager_db_entry_deleted_cb):
8964         * podcast/rb-podcast-properties-dialog.c:
8965         (rb_podcast_properties_dialog_update_title),
8966         (rb_podcast_properties_dialog_update_title_label),
8967         (rb_podcast_properties_dialog_update_feed),
8968         (rb_podcast_properties_dialog_update_location),
8969         (rb_podcast_properties_dialog_update_play_count),
8970         (rb_podcast_properties_dialog_update_bitrate),
8971         (rb_podcast_properties_dialog_update_last_played),
8972         (rb_podcast_properties_dialog_update_rating),
8973         (rb_podcast_properties_dialog_update_date),
8974         (rb_podcast_properties_dialog_update_description):
8975         * rhythmdb/rhythmdb-query-model.c:
8976         (rhythmdb_query_model_entry_changed_cb),
8977         (rhythmdb_query_model_remove_from_main_list),
8978         (rhythmdb_query_model_update_limited_entries),
8979         (rhythmdb_query_model_drag_data_get),
8980         (rhythmdb_query_model_album_sort_func):
8981         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8982         (save_entry):
8983         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
8984         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
8985         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
8986         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
8987         (rhythmdb_entry_get_double):
8988         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
8989         * shell/rb-play-order-random-by-age-and-rating.c:
8990         (rb_random_by_age_and_rating_get_entry_weight):
8991         * shell/rb-play-order-random-by-age.c:
8992         (rb_random_by_age_get_entry_weight):
8993         * shell/rb-play-order-random-by-rating.c:
8994         (rb_random_by_rating_get_entry_weight):
8995         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
8996         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
8997         (rb_shell_player_set_playing_entry),
8998         (rb_shell_player_sync_replaygain),
8999         (rb_shell_player_sync_with_source),
9000         (rb_shell_player_get_playing_song_duration), (info_available_cb):
9001         * sources/rb-playlist-source.c: (playlist_iter_func),
9002         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
9003         (rb_playlist_source_entry_added_cb):
9004         * sources/rb-podcast-source.c:
9005         (rb_podcast_source_post_status_cell_data_func):
9006         * sources/rb-source.c: (rb_source_update_play_statistics):
9007         * sources/rb-sourcelist-model.c:
9008         (rb_sourcelist_model_drag_data_get):
9009         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
9010         (rb_static_playlist_source_add_entry),
9011         (rb_static_playlist_source_remove_entry):
9012         * widgets/rb-entry-view.c: (type_ahead_search_func),
9013         (rb_entry_view_playing_cell_data_func),
9014         (rb_entry_view_rating_cell_data_func),
9015         (rb_entry_view_pixbuf_clicked_cb):
9016         * widgets/rb-header.c: (rb_header_get_duration):
9017         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
9018         (rb_song_info_populate_dialog),
9019         (rb_song_info_update_playback_error),
9020         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
9021         (rb_song_info_update_location), (rb_song_info_update_play_count),
9022         (rb_song_info_update_last_played), (rb_song_info_update_rating),
9023         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
9024         (rb_song_info_sync_entry_single): fix the huge number of times that
9025         the internals got accessed directly.
9027 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9029         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
9030         trash' are grouped together.
9031         * shell/main.c: (main): Pass no-registration flag in to RBShell
9032         constructor, rather than mysteriously always passing TRUE.
9033         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
9034         Set dirty flag when entries are removed from the model, so the play
9035         queue is marked dirty appropriately.
9036         * AUTHORS: update my email address
9038 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9040         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9042         * widgets/rb-druid.c: (path_dialog_response_cb):
9043         If the URI is local, don't display the 'file://' prefix.  
9044         Fixes #330919.
9046 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9048         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9049         Attach the notification to the tray icon widget, so libnotify
9050         positions it less badly.  Fixes #330876.
9052 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9054         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
9055         Reverse the selection list before returning it, so we get it in the
9056         right order.  Fixes #330283 and some other weirdness.
9058 2006-02-11  James Livingston  <jrl@ids.org.au>
9060         * shell/rb-shell.c: (rb_shell_constructor),
9061         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
9062         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9063         make small-mode and fullscreen mutually exclusive, since they don't
9064         work together
9066         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
9067         Mode.
9069 2006-02-10  James Livingston  <jrl@ids.org.au>
9071         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
9072         since it can cause it to be slower than real-time. Should fix bug
9073         322270.
9075 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9077         * rhythmdb/rhythmdb-query-model.c:
9078         (rhythmdb_query_model_set_property):
9079         Think just a little bit harder about that last commit.
9081 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9083         * rhythmdb/rhythmdb-query-model.c:
9084         (rhythmdb_query_model_set_property):
9085         Get the check for hidden entries the right way around.
9086         Fixes #330527, #330514.
9088         (rhythmdb_query_model_set_sort_order):
9089         Ignore no-op sort order changes, so we don't get critical
9090         messages when selecting 'all' in auto playlist browsers.
9092 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9094         Patch by: Christophe Fergeau  <teuf@gnome.org>
9096         * sources/rb-removable-media-source.c:
9097         (rb_removable_media_source_init),
9098         (rb_removable_media_source_constructor):
9099         Move icon setup code to the constructor, as the volume property
9100         haven't been set yet when _init is called.
9102 2006-02-09  William Jon McCann  <mccann@jhu.edu>
9104         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
9105         Make the source pixbuf a dynamic property.
9107         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
9108         (rb_source_set_pixbuf, rb_source_set_property) 
9109         (rb_source_get_property): Add icon property.
9111         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
9112         (rb_auto_playlist_source_init):
9113         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
9114         (rb_static_playlist_source_init):
9115         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
9116         (rb_removable_media_source_init): 
9117         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
9118         (rb_podcast_source_init): 
9119         * sources/rb-library-source.c (rb_library_source_class_init) 
9120         (rb_library_source_set_property, rb_library_source_get_property): 
9121         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
9122         (rb_iradio_source_init): Remove impl_get_pixbuf and
9123         set icon property on source base class.
9125         * sources/rb-daap-source.c (rb_daap_get_icon): Get
9126         a different icon for when the share is password protected
9127         and locked.
9128         (rb_daap_source_new): Set icon property.
9129         (composite_icons): Composite an emblem on a pixbuf.
9130         (create_pixbufs): Load global pixbufs.
9131         (destroy_pixbufs): unref global pixbufs.
9132         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
9133         (connection_auth_cb, connection_connected_cb) 
9134         (connection_disconnected_cb): Update icon when connection
9135         status changes.
9136         (rb_daap_source_activate): Connect signals.
9138         * daapsharing/rb-daap-share.c (name_collision_cb): Run
9139         dialog with parent.
9141         * daapsharing/rb-daap-marshal.list: Add new signal.
9143         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
9144         (rb_daap_collision_dialog_new_run): Set parent of dialog.
9146         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
9147         Add authenticate, connected, and disconnected signals.
9148         (connection_get_password): emit authenticate signal instead
9149         of running dialog directly.
9150         (connection_connected, connection_disconnected): Emit signals.
9151         (handle_login): Emit connected signal.
9152         (handle_logout): Emit disconnected signal.
9153         (rb_daap_connection_do_something): Fix leak.
9155         Fixes #330291
9157 2006-02-09  James Livingston  <jrl@ids.org.au>
9159         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
9160         entries from the base model if we don't have show-hidden set. Fixes
9161         bug 330514.
9163 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9165         * daapsharing/rb-daap-share.c (message_get_session_id):
9166         Ugh. Use strtoul instead of atoi.
9167         (session_id_validate): Add debug statements.
9169 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9171         * daapsharing/rb-daap-connection.c (http_response_handler):
9172         Report the actual uri from the message in debug statements.
9174 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9176         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
9177         Add context argument.
9178         (message_get_session_id): New function to parse session id from
9179         the message.
9180         (message_get_revision_number): Break out function to parse
9181         revision number from the message.
9182         (session_id_validate): New function to validate given session id
9183         is valid for given context (ie. client address).
9184         (session_id_generate): Generate a random session id.
9185         (session_id_create): Create a unique session id and store it.
9186         (session_id_remove): Remove a session id from the store.
9187         (login_cb): Create a session id instead of using a constant one.
9188         (logout_cb): Validate session id.
9189         (update_cb): Use new message_get_revision_number function.
9190         (databases_cb): Validate session id.
9191         (server_cb): Add server context to argument list for callbacks.  It
9192         is needed to look up the remote host.
9193         (db_entry_changed_cb): Use braces.
9194         (soup_auth_callback): Remove FIXME.
9195         (rb_daap_share_server_start): Create session id store.
9196         (rb_daap_share_server_stop): Destroy session id store.
9198         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
9199         Don't base64-encode password here since it needs to be
9200         combined with the username first.
9202         * daapsharing/rb-daap-connection.c (build_message):
9203         Add username to Authorization token.
9204         (handle_login, handle_song_listing) 
9205         (rb_daap_connection_do_something): Session id
9206         must be an unsigned int.
9208         Fixes #329814
9210 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9212         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9213         Don't check if we've got a playing entry, ask the player object (duh).
9214         Might actually fix #329993.     
9216 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9218         * sources/rb-static-playlist-source.c:
9219         (rb_static_playlist_source_add_list_uri):
9220         Canonicalise URIs before trying to add them to the playlist, and 
9221         don't try to add files to the database for which there is 
9222         already an entry.
9224 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9226         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9227         Don't ask the entry view if we're playing, just check if we've got a
9228         playing entry.  Fixes #329993.
9230 2006-02-08  James Livingston  <jrl@ids.org.au>
9232         * rhythmdb/rhythmdb-query-model.c:
9233         (rhythmdb_query_model_set_property),
9234         (rhythmdb_query_model_finalize),
9235         (rhythmdb_query_model_base_complete): remove
9236         rhythmdb_query_model_base_entry_prop_changed, so that two signals
9237         don't get emitted for entry changes. Fixes bug 330301.
9239         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
9240         (rb_library_browser_init), (rb_library_browser_constructor),
9241         (rb_library_browser_new): do stuff in the constructor, not the init
9242         function, so that the db property gets set on RBPropertyViews
9243         correctly. Fixes a crash when dragging properties to a playlist.
9245 2006-02-07  William Jon McCann  <mccann@jhu.edu>
9247         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
9248         Actually stop soup server.  Fixes #329816.
9250 2006-02-07  James Livingston  <jrl@ids.org.au>
9252         * lib/rb-util.h:
9253         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
9254         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
9255         (collate_values_cb), (rb_collate_hash_table_keys),
9256         (rb_collate_hash_table_values): add functions to compare, copy and
9257         free string-lists. add functions to collate the keys or values of a
9258         hash table into a list.
9260         * rhythmdb/rhythmdb-property-model.c:
9261         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
9262         (_remove_entry_cb), (_add_entry_cb),
9263         (rhythmdb_property_model_set_property),
9264         (rhythmdb_property_model_get_property),
9265         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
9266         (rhythmdb_property_model_row_inserted_cb),
9267         (rhythmdb_property_model_prop_changed_cb),
9268         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
9269         that are hidden, storing those that we have counted in a hash-table.
9271         * shell/Makefile.am: fix build order issue
9273         * shell/rb-shell-player.c: (rb_shell_player_set_property):
9274         * sources/rb-source.h:
9275         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9276         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9277         * sources/rb-podcast-source.c: (feed_select_change_cb): add
9278         browser-toggled method, rename _get_exta_views to _get_property_views,
9279         since several things depend on returning only that.
9281         * sources/rb-source.c: (rb_source_class_init),
9282         (rb_source_browser_toggled), (default_get_property_views),
9283         (rb_source_get_property_views), (rb_source_row_deleted_cb),
9284         (rb_source_gather_hash_keys),
9285         (rb_source_gather_selected_properties): above changes, and move some
9286         utility functions up from RBLibraryView
9288         * widgets/rb-property-view.c:
9289         (rb_property_view_selection_changed_cb): fix leak.
9291         * rhythmdb/rhythmdb-query-model.c:
9292         (rhythmdb_query_model_set_property),
9293         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
9294         (rhythmdb_query_model_set_sort_order),
9295         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
9296         query model being resorted.
9298         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
9299         NULL query.
9301         * rhythmdb/rhythmdb.h:
9302         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
9303         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
9304         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
9305         two queries. Add a function to append "property={X,Y,Z,...}" to a
9306         query.
9308         * sources/rb-library-source.c: (rb_library_source_class_init),
9309         (rb_library_source_finalize), (rb_library_source_constructor),
9310         (rb_library_source_cmd_choose_genre),
9311         (rb_library_source_cmd_choose_artist),
9312         (rb_library_source_cmd_choose_album), (impl_search),
9313         (impl_get_property_views), (impl_reset_filters),
9314         (rb_library_source_preferences_sync),
9315         (rb_library_source_browser_views_activated_cb),
9316         (rb_library_source_state_prefs_sync),
9317         (construct_query_from_selection), (rb_library_source_do_query),
9318         (rb_library_source_browser_changed_cb):
9319         * widgets/Makefile.am:
9320         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
9321         browser" widgets, which contains several property views, based on the
9322         code from RBLibrarySource. Make RBLibrarySource use it.
9324         * sources/rb-auto-playlist-source.c:
9325         (rb_auto_playlist_source_class_init),
9326         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
9327         (rb_auto_playlist_source_constructor), (impl_reset_filters),
9328         (impl_get_property_views), (impl_browser_toggled),
9329         (construct_query_from_selection),
9330         (rb_auto_playlist_source_do_query),
9331         (rb_auto_playlist_source_set_query),
9332         (rb_auto_playlist_source_browser_changed_cb): Use the new
9333         library-browser widget to add browsers to automatic playlists.
9335 2006-02-07  James Livingston  <jrl@ids.org.au>
9337         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
9338         properly.
9339         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
9340         type of the source is taken into account. Fixes bug 329621.
9342 2006-02-07  James Livingston  <jrl@ids.org.au>
9344         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9345         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
9346         1.1, and perform URI canonicalistion when first upgrading. This should
9347         fix our remaining canonicalisation issues, such as bug 329988.
9349 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9351         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
9352         Track the playing entry when the entry view isn't in the playing
9353         state, so we don't have to get the state changes exactly right.
9354         Fixes #330135.
9356 2006-02-06  James Livingston  <jrl@ids.org.au>
9358         * shell/rb-shell-player.c: (open_location_thread),
9359         (rb_shell_player_open_location): fix several iradio issues: having to
9360         press play after double-clicking on a station, not working correctly
9361         without a http:// prefix, and ignoring totem-plparser results other
9362         than success or error (e.g. IGNORE).
9364 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
9366         Addition of dbus methods for dealing with static playlists and the
9367         play queue.  Fixes #329958.
9369         * shell/Makefile.am:
9370         * shell/rb-playlist-manager.h:
9371         * shell/rb-playlist-manager.xml:
9372         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
9373         (rb_playlist_manager_get_playlists),
9374         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
9375         (rb_playlist_manager_create_static_playlist),
9376         (rb_playlist_manager_delete_playlist),
9377         (rb_playlist_manager_add_to_playlist),
9378         (rb_playlist_manager_remove_from_playlist),
9379         (rb_playlist_manager_export_playlist):
9380         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
9381         to create, delete, list, modify, export, and import  static playlists.
9382         
9383         * shell/main.c: (main): Register playlist manager object with dbus.
9385         * shell/rb-shell.h:
9386         * shell/rb-shell.xml:
9387         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
9388         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
9389         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
9390         object, and implement the addToQueue and removeFromQueue methods.
9391         
9392         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
9393         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
9394         formats.
9396 2006-02-05  James Livingston  <jrl@ids.org.au>
9398         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
9399         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
9400         (save_entry): allow storage of booleans in the on-disk db, and
9401         save/load the HIDDEN property.
9403         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
9404         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
9405         to the state it was when RB shutdown. This makes RB appear to start
9406         faster, as tracks can appear before the stat is done. Remote files
9407         still start hidden. From bug 325215.
9409 2006-02-05  James Livingston  <jrl@ids.org.au>
9411         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
9412         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
9413         really cares about the difference from "entry-added", and it isn't
9414         emitted by the tree backend anyway.
9416         * rhythmdb/rhythmdb-query-model.c:
9417         (rhythmdb_query_model_constructor):
9418         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9419         remove the references to the entry-restored signal.
9421 2006-02-05  James Livingston  <jrl@ids.org.au>
9423         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
9424         issue.
9426 2006-02-05  James Livingston  <jrl@ids.org.au>
9428         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
9429         things are NULL before using g_object_unref. Fixes bug 327452.
9431         * player/rb-recorder-gst.c: (rb_recorder_construct):
9432         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
9433         rather than assertion.
9435         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
9436         emit a warning, rather than asserting if an unknown playlist type is
9437         encountered.
9439 2006-02-05  James Livingston  <jrl@ids.org.au>
9441         * widgets/Makefile.am:
9442         * widgets/rb-simple-view.c:
9443         * widgets/rb-simple-view.h: Move the two features that this class
9444         provides into RBPropertyView, and remove this class. Closes bug
9445         327500.
9447         * podcast/rb-feed-podcast-properties-dialog.c:
9448         * podcast/rb-feed-podcast-properties-dialog.h:
9449         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9450         (rb_podcast_source_feeds_show_popup_cb):
9451         * sources/rb-podcast-source.h:
9452         * widgets/rb-property-view.c: (rb_property_view_class_init),
9453         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
9454         (rb_property_view_append_column_custom),
9455         (rb_property_view_button_press_cb):
9456         * widgets/rb-property-view.h: Updated for the above change.
9458 2006-02-04  James Livingston  <jrl@ids.org.au>
9460         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
9461         too close to Move to Trash and people aren't likely to use it often.
9463 2006-02-04  James Livingston  <jrl@ids.org.au>
9465         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
9467 2006-02-04  James Livingston  <jrl@ids.org.au>
9469         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
9470         passed a path instead of a URI.
9472         * sources/rb-generic-player-source.c: (default_get_mount_path):
9473         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
9474         the path. This fixes bug 329723.
9476 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
9478         * daapsharing/rb-daap-structure.c:
9479         (rb_daap_content_code_string_as_int32):
9480         Use network byte order.
9482 2006-02-03  William Jon McCann  <mccann@jhu.edu>
9484         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
9485         Use a hash for source lookup.
9486         (mdns_service_added, mdns_service_removed): Handle
9487         service-added and service-removed signals from RBDaapMdnsBrowser.
9488         (remove_source): GDestroyNotify function for when sources
9489         are removed from the hash.
9490         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
9491         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
9492         (rb_daap_sources_shutdown): Update.
9493         (source_host_find): GHRFunc for finding a source by ip.
9494         (rb_daap_source_find_for_uri): Use the hash source lookup.
9496         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
9497         Namespace keys.
9498         (password_check_button_toggled_cb): Handle password enabled.
9499         (share_name_entry_focus_out_event_cb): Namespace keys.
9500         Handle changes more robustly.
9501         (share_password_entry_focus_out_event_cb): Handle password entry.
9502         (add_daap_preferences): Connect to password signals.
9504         * lib/rb-preferences.h: Add DAAP keys.
9506         * data/glade/daap-prefs.glade: Add password UI.
9508         * data/rhythmbox.schemas: Add password keys.
9510         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
9511         assert with warning.
9513         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
9514         gconf keys to lib/rb-preferences.h.  Namespace
9515         the gconf keys.
9516         (create_share): Add password support.
9517         (enable_sharing_changed_cb): Namespaced keys.
9518         (require_password_changed_cb): Handle key change.
9519         (share_name_changed_cb): Namespaced keys.
9520         (share_password_changed_cb): Handle key change.
9521         (rb_daap_sharing_init): Namespaced keys.
9522         (rb_daap_sharing_shutdown): Ditto.
9524         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
9525         Add password property.
9526         (rb_daap_share_set_name): Break out prop set function.
9527         (published_cb): New RBDaapMdnsPublisher signal handler.
9528         (name_collision_cb): Ditto.
9529         (rb_daap_share_init): Create publisher object and
9530         connect to signals.
9531         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
9532         (rb_daap_share_set_property): Break out prop set functions.
9533         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
9534         Unref publisher.
9535         (rb_daap_share_new): Add password argument.  Start
9536         publishing and DAAP server.
9537         (message_set_from_rb_daap_structure): Change print to debug.
9538         (server_info_cb): Set auth method to publish.
9539         (logout_cb): Handle DAAP client logout.
9540         (update_cb): Remove C++ comments.
9541         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
9542         (server_cb): Add debug.
9543         (soup_auth_callback): Handle auth requests.
9544         (rb_daap_share_server_start): Split up functions for starting
9545         server and publishing.  Add auth handling to server.
9546         (rb_daap_share_server_stop): Split stop server and publish.
9547         No C++ comments.
9548         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
9549         Start and stop publishing.
9550         (rb_daap_share_restart): Restart server and publishing.
9551         (rb_daap_share_maybe_restart): Conditionally restart.
9553         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
9554         (rb_daap_collision_dialog_new_run): Don't use
9555         separators in dialogs.
9557         * daapsharing/rb-daap-connection.h: Add private
9558         data to class structure.
9560         * daapsharing/rb-daap-connection.c: Move
9561         some includes to top of file.  Make private
9562         data struct name consistent with others.
9563         (rb_daap_connection_class_init): Rename
9564         private.
9565         (rb_daap_connection_init): Get and store the pointer
9566         to the private data once instead of in every
9567         function.  Create a username value "Rhythmbox_VERSION".
9568         (connection_get_password): Don't get private.
9569         (build_message): Ditto.
9570         (http_response_handler): Don't init variables in
9571         declaration.  Add debug.  Spacing.
9572         (http_get, entry_set_string_prop, handle_server_info) 
9573         (handle_login, handle_update, handle_database_info) 
9574         (handle_song_listing, handle_playlists, handle_playlist_entries) 
9575         (rb_daap_connection_constructor, rb_daap_connection_logout) 
9576         (rb_daap_connection_state_done): Don't get private.
9577         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
9578         spacing.  Correctly base64 encode the Authentication token.
9579         Add username to auth token.
9580         (rb_daap_connection_get_playlists): Don't get private.
9581         (rb_daap_connection_dispose): Ditto.  Free username.
9582         (rb_daap_connection_set_property) 
9583         (rb_daap_connection_get_property): Don't get private.
9585         * daapsharing/Makefile.am: Conditionally
9586         compile MDNS backends.  Add marshall stuff.
9588         * daapsharing/.cvsignore: Update.
9590         * configure.ac: Add conditional to see which
9591         MDNS backend we should use.
9593         * daapsharing/rb-daap-mdns.[ch]: Removed files.
9595         * daapsharing/rb-daap-marshal.list:
9596         * daapsharing/rb-daap-mdns-browser-avahi.c:
9597         * daapsharing/rb-daap-mdns-browser-howl.c:
9598         * daapsharing/rb-daap-mdns-browser.h:
9599         * daapsharing/rb-daap-mdns-publisher-avahi.c:
9600         * daapsharing/rb-daap-mdns-publisher-howl.c:
9601         * daapsharing/rb-daap-mdns-publisher.h:
9602         Split rb-daap-mdns.c into two classes.  One for
9603         publishing and one for browsing.  Split out
9604         the avahi and howl backends into different files.
9606         Fixes #322966
9607         
9608 2006-02-04  James Livingston  <jrl@ids.org.au>
9610         patch by: Jan Schmidt <thaytan@mad.scientist.com>
9612         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
9613         crash if metadata reader gives us NULL for strings.
9615 2006-02-03  James Livingston  <jrl@ids.org.au>
9617         * shell/rb-shell-player.c: (open_location_thread),
9618         (rb_shell_player_open_location):
9619         retrieve iradio playlists files in a thread, so that with GStreamer
9620         0.10 the UI doesn't block while connecting to stations. The streamer
9621         connection is synchronous with 0.8, so that will still block (a bit).
9622         Fixed bug 128106.
9624         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
9625         because _open_entry does that automatically when it is ready to.
9627 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9629         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9630         (rb_podcast_source_post_status_cell_data_func):
9631         Leave the podcast status column blank for episodes that have not been
9632         downloaded.
9634 2006-02-03  James Livingston  <jrl@ids.org.au>
9636         Add support for source-specific toolbar items, and make the Burn
9637         Playlist item only available for playlists. Also add Update All
9638         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
9640         * data/ui/rhythmbox-ui.xml:
9641         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
9642         (impl_get_ui_actions): make the Burn CD toolbar item only for
9643         playlists
9645         * lib/rb-stock-icons.c: (rb_stock_icons_init):
9646         * lib/rb-stock-icons.h: load the Eject icon as stock.
9648         * shell/rb-removable-media-manager.c: use the eject icon for the eject
9649         action
9651         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
9652         (rb_shell_select_source):
9653         * sources/rb-source.c: (rb_source_class_init),
9654         (rb_source_disconnect), (default_get_ui_actions),
9655         (rb_source_get_ui_actions):
9656         * sources/rb-source.h: add support for source-specific toolbar items
9658         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
9659         Eject and Rip toolbar items
9661         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
9662         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
9663         item.
9665 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9667         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
9668         * shell/main.c: (main):
9669         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
9670         Replace all g_critical calls with g_warning, since none of them are
9671         the sort of thing the process should die over.  Fixes #329398.
9673 2006-02-03  James Livingston  <jrl@ids.org.au>
9675         * configure.ac: mention gst-plugins-base in the error message for not
9676         finding GStreamer 0.10, since not having that will cause it to fail.
9678 2006-02-03  James Livingston  <jrl@ids.org.au>
9680         * configure.ac: fix typo that means you get the wrong error message if
9681         you explicity request a particular playback engine, and it can't be
9682         found.
9684 2006-02-03  James Livingston  <jrl@ids.org.au>
9686         * data/glade/library-prefs.glade: allow the watched library location
9687         to be a non-local place.
9689 ============ Version 0.9.3
9692 2006-02-02  James Livingston  <jrl@ids.org.au>
9694         * NEWS: update NEWS
9695         * configure.ac: bump version to 0.9.3
9697         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
9698         <caillon@redhat.com>, fixed bug 329517. 
9700 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
9702         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
9704         * widgets/rb-song-info.c: (rb_song_info_constructor):
9705         Make year and disc number fields non-editable if tag editing
9706         is disabled.  Fixes #329463.
9708 2006-02-01  James Livingston  <jrl@ids.org.au>
9710         * rhythmdb/rhythmdb-property-model.c:
9711         (rhythmdb_property_model_row_inserted_cb),
9712         (rhythmdb_property_model_prop_changed_cb),
9713         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
9714         correctly. Fixes bug 327061.
9716         * rhythmdb/rhythmdb-query-model.c:
9717         (rhythmdb_query_model_entry_changed_cb): emit change notification of
9718         the HIDDEN property when an entry is removed for being hidden.
9720         * rhythmdb/rhythmdb-query-model.h:
9721         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9722         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
9723         models's "connected" property. Whatever it was needed for seems to
9724         have gone.
9726 2006-02-01  James Livingston  <jrl@ids.org.au>
9728         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
9730         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
9731         (rb_shell_player_playing_changed_cb): block the signal to prevent
9732         re-entrancy. Fixes bug 329329 and fixes the first click of the play
9733         button pausing.
9735 2006-02-01  James Livingston  <jrl@ids.org.au>
9737         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
9738         /should/ now work, if the neccessary plugins get ported.
9740 2006-01-30  James Livingston  <jrl@ids.org.au>
9742         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
9743         string properties to "Unknown" is the string is empty. Kind of fixes
9744         bug 327495.
9746         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
9747         gettext calls once, rather than once per time the function is used.
9748         This stops us making tens of thousands of gettext calls on startup,
9749         which reduces the cpu-time of startup by 10-20%
9751 2006-01-29  James Livingston  <jrl@ids.org.au>
9753         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
9754         (rhythmdb_add_uri):
9755         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
9756         for files containing known video streams.
9759 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9761         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
9762         required.
9764 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9766         * INSTALL.quick: More random updates
9768         * rhythmdb/rhythmdb-query-model.c:
9769         (rhythmdb_query_model_class_init),
9770         (rhythmdb_query_model_set_property),
9771         (rhythmdb_query_model_get_property),
9772         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
9773         Remove user sort data handling, take a property ID and a reverse
9774         flag instead.
9775         (rhythmdb_query_model_insert_into_main_list),
9776         (rhythmdb_query_model_insert_into_limited_list),
9777         (rhythmdb_query_model_do_reorder),
9778         (_reverse_sorting_func):
9779         Handle reverse sorting by calling _reverse_sorting_func, which
9780         calls the real sort function and reverses the result.
9781         (rhythmdb_query_model_set_sort_order):
9782         Allow this to be called to set the initial sort order for limited
9783         queries, and handle reverse sorting when reordering.
9784         (rhythmdb_query_model_location_sort_func),
9785         (rhythmdb_query_model_album_sort_func),
9786         (rhythmdb_query_model_artist_sort_func),
9787         (rhythmdb_query_model_genre_sort_func),
9788         (rhythmdb_query_model_track_sort_func),
9789         (rhythmdb_query_model_double_ceiling_sort_func),
9790         (rhythmdb_query_model_ulong_sort_func),
9791         (rhythmdb_query_model_date_sort_func),
9792         (rhythmdb_query_model_string_sort_func):
9793         Sort functions moved from rb-entry-view.c.
9794         * rhythmdb/rhythmdb-query-model.h:
9795         Add the sort functions, and update the changed functions.
9796         
9797         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
9798         Just call _resort_model when the query model is set, since it
9799         does all the same things.
9800         (rb_entry_view_append_column):
9801         Rework bits so the rating column doesn't have to be so much of a
9802         special case.
9803         (rb_entry_view_append_column_custom):
9804         Take a property ID to sort on, rather than arbitrary custom data.
9805         (rb_entry_view_resort_model):
9806         Query model does all the reverse sort handling now.
9807         * widgets/rb-entry-view.h: Update _append_column_custom.
9809         * sources/rb-play-queue-source.c:
9810         (rb_play_queue_source_constructor):
9811         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9812         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9813         (rb_podcast_source_post_date_cell_sort_func),
9814         (rb_podcast_source_post_status_cell_sort_func),
9815         (rb_podcast_source_post_feed_cell_sort_func):
9816         Updates required by all the other changes.
9818         * rhythmdb/rhythmdb-property-model.c:
9819         (rhythmdb_property_model_drag_data_get):
9820         Sort the query results on the selected property,
9821         so they arrive in the expected order.  All the other changes were made
9822         to make this possible.  Fixes bug #327494.
9824 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9825         
9826         * shell/rb-shell-clipboard.c:
9827         Use GTK_STOCK_REMOVE icon for the remove action in
9828         the play queue too.
9830 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9832         * sources/rb-play-queue-source.c:
9833         (rb_play_queue_source_constructor),
9834         (rb_play_queue_source_update_count):
9835         Don't make the 'queued songs' column clickable,
9836         and add the queued song count to the column title.
9838 2006-01-29  James Livingston  <jrl@ids.org.au>
9840         * configure.ac: remove "experimental" marking from DAAP, and enable by
9841         default if the dependencies are found.
9843 2006-01-29  James Livingston  <jrl@ids.org.au>
9845         * NEWS: update NEWS
9847 2006-01-29  James Livingston  <jrl@ids.org.au>
9849         patch by: William Jon McCann  <mccann@jhu.edu>
9851         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9852         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
9853         property used for the feed list. Fixes problem with feeds with no
9854         episodes not showing up.
9856 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9857         
9858         * shell/rb-play-order-random-by-age-and-rating.c:
9859         (rb_random_by_age_and_rating_get_entry_weight):
9860         Fix compile errors, bug #328978.
9862 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
9864         * INSTALL.quick, README: Random updates
9865         * README.lirc: Add notes on controlling Rhythmbox with LIRC
9867 2006-01-28  James Livingston  <jrl@ids.org.au>
9869         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
9870         default rating back to 0 (from 2.5, which was needed for autorating).
9872         * shell/rb-play-order-random-by-age-and-rating.c:
9873         (rb_random_by_age_and_rating_get_entry_weight):
9874         * shell/rb-play-order-random-by-rating.c:
9875         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
9876         2.5 for the purposes of weighting entries.
9878 2006-01-28  James Livingston  <jrl@ids.org.au>
9880         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
9881         translator comments, to make it clearer what the "friendly time"
9882         formatting strings mean.
9884 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
9886         * daapsharing/rb-daap-connection.c: (http_response_handler):
9887         Fix the sense of the overflow check so it'll accept valid input.
9889 2006-01-27  James Livingston  <jrl@ids.org.au>
9891         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
9893         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
9894         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
9896 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
9898         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
9899         
9900         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
9901         Don't include the artist field in the window title if it's blank.
9902         Fixes #325973.
9904 2006-01-26  William Jon McCann  <mccann@jhu.edu>
9906         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
9907         Use stock delete icon for move to trash and stock remove
9908         for remove menu item.
9910 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
9912         * shell/rb-shell.c: (rb_shell_constructor),
9913         (idle_handle_load_complete):  Don't start the playlist save
9914         timeout until we've loaded the playlists, otherwise we'll
9915         write an empty playlist file if startup takes too long.
9917 2006-01-25  William Jon McCann  <mccann@jhu.edu>
9919         * shell/rb-shell.c: Make view toolbar toggle use
9920         shift+ctrl+t.  Fixes #327585.
9922 2006-01-25  James Livingston  <jrl@ids.org.au>
9924         patch by: Christope Fergeau  <teuf@gnome.org>
9926         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
9927         (http_response_handler): fix a potential buffer overflow issue.
9929 2006-01-25  James Livingston  <jrl@ids.org.au>
9931         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
9932         Year column wide enough to display "Unknown"
9934 2006-01-25  James Livingston  <jrl@ids.org.au>
9936         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9937         (rb_podcast_source_post_status_cell_data_func): make the episode
9938         status wording better. Part of bug 321607.
9940 2006-01-25  James Livingston  <jrl@ids.org.au>
9942         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
9943         others with a separator.
9945         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
9946         stock Delete icon.
9948 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
9950         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
9952 2006-01-23  James Livingston  <jrl@ids.org.au>
9954         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
9955         0.3.2. Fixed bug 328158.
9957 2006-01-23  James Livingston  <jrl@ids.org.au>
9959         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
9960         (gulong_gst_date_transform), (rb_metadata_class_init):
9961         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
9963 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
9965         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
9966         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
9967         (record_entry_change): Protect added_entries and changed_entries with
9968         a mutex, so it doesn't crash on startup on SMT/SMP machines.
9970 2006-01-23  James Livingston  <jrl@ids.org.au>
9972         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
9973         the browser for audio CDs.
9975 2006-01-22  James Livingston  <jrl@ids.org.au>
9977         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
9978         NEVER_FAIL as it causes the daemon-not-running error to never be
9979         reported, resulting in bug 319438 re-occurring.
9981 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
9983         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
9984         Just call the podcast manager's update method.  Unbreaks the 'update
9985         all feeds' command.
9987 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
9989         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
9991 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
9993         * configure.ac: Don't disable DAAP with gstreamer 0.10
9995         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
9996         (rb_daap_src_class_init), (rb_daap_src_init),
9997         (rb_daap_src_finalize), (rb_daap_src_set_property),
9998         (rb_daap_src_get_property), (rb_daap_src_write),
9999         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
10000         (_split_uri), (rb_daap_src_open):
10001         * daapsharing/rb-daap-src.h:
10002         Mostly fix seeking, handle chunked transfer encoding, and port to
10003         gstreamer 0.10.
10004         
10005         * player/rb-player-gst.c:
10006         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
10007         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
10009         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
10010         being fixed.
10012 2006-01-21  James Livingston  <jrl@ids.org.au>
10014         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
10015         for Year metadata in DAAP sources. Fixes bug 327700.
10017         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10019 2006-01-20  William Jon McCann  <mccann@jhu.edu>
10021         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
10022         enum values instead of magic numbers.
10024         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
10025         Add number of songs that match each property title into
10026         the cell.  Also show the number of properties that match
10027         in the All entry.
10028         (rb_property_view_constructor): Use enum values instead of
10029         magic numbers.
10031         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
10032         Query podcast posts instead of feeds for browser.  Use
10033         post SUBTITLE which is the location for the property view.
10034         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
10035         (construct_query_from_selection) 
10036         (rb_podcast_source_cmd_delete_feed) 
10037         (rb_podcast_source_cmd_properties_feed) 
10038         (rb_podcast_source_cmd_update_feed): Use variable to make
10039         it clear what the selection data represents.
10040         (rb_podcast_source_feed_title_cell_data_func): Add number
10041         of posts that belong to each feed in the browser.
10043         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
10044         (rhythmdb_property_model_delete_prop): Decrement the refcount
10045         for the All entry.
10046         (rhythmdb_property_model_get_column_type): Use column enum
10047         values instead of magic numbers.  Add NUMBER column.
10048         (rhythmdb_property_model_get_value): Use enum.
10049         Add NUMBER column that represents the refcount for
10050         the title of that property.
10051         (rhythmdb_property_model_perform_sync): Don't fake up
10052         a title for All here.
10054         Fixes #327372.
10055         
10056 2006-01-21  James Livingston  <jrl@ids.org.au>
10058         Make Rhythmbox start faster by not blocking the UI while database
10059         initialisation and loading occurs. Closes bug 323348.
10061         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
10062         start 10 seconds later instead of immediately.
10063         
10064         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
10065         safe to call from any thread.
10067         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
10068         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
10069         so the UI doesn't block.
10071 2006-01-18  James Livingston  <jrl@ids.org.au>
10073         * sources/rb-static-playlist-source.c:
10074         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
10075         cause crashes. Oops. fixes bug 327477.
10077 2006-01-17  William Jon McCann  <mccann@jhu.edu>
10079         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
10080         Set GST element state to NULL before unreffing.
10081         Fixes #327422.
10083 2006-01-18  James Livingston  <jrl@ids.org.au>
10085         * sources/rb-static-playlist-source.c:
10086         (rb_static_playlist_source_do_query): don't filter on the SONG entry
10087         type, since the playlists can contain non-song entries. Fixes bug
10088         327448.
10090         * sources/rb-play-queue-source.c:
10091         (rb_play_queue_source_class_init): disable the search box for the
10092         queue.
10094 2006-01-18  James Livingston  <jrl@ids.org.au>
10096         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
10097         dragging of podcast episodes. Fixed bug 327450.
10099 2006-01-18  James Livingston  <jrl@ids.org.au>
10101         * rhythmdb/rhythmdb-query-model.c:
10102         (rhythmdb_query_model_drag_data_received): fix possible assertion when
10103         dragging to an emoty playlist.
10105 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
10107         * sources/rb-playlist-source-recorder.c:
10108         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
10110 2006-01-17  James Livingston  <jrl@ids.org.au>
10112         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10114         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
10115         different number of tracks than exist on the cd, since that happens
10116         with audio+data hybrid CDs. Part of bug 325046.
10118 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
10120         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10121         Remove useless call to gtk_tree_view_column_set_clickable().
10123         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
10124         Don't store sort data for columns if the sort function is NULL,
10125         so only sortable columns will be in the column sort data map.
10126         (rb_entry_view_set_columns_clickable): Only make columns we can sort
10127         on clickable.
10128         (rb_entry_view_constructor):  The 'playing icon' column is never
10129         clickable, so don't connect a signal handler for it.
10131         Fixes bug 326811.
10133 2006-01-17  James Livingston  <jrl@ids.org.au>
10135         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
10136         are 0.8 only. Fix element detection.
10138         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
10139         saving the new metadata failed
10141 2006-01-17  James Livingston  <jrl@ids.org.au>
10143         * shell/rb-shell-player.c: (do_next_idle),
10144         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
10145         (eos_cb): release audio device when a playlist finishes. Fixes bug
10146         323679.
10148 2006-01-17  James Livingston  <jrl@ids.org.au>
10150         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
10151         canonicalise the URIs when things are added via library watching.
10153 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10155         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10156         Off by one error in default speed index.
10158 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10160         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
10161         (update_speed_combobox, update_speed_combobox):
10162         Get a list of the actually supported write speeds from
10163         n-c-b >= 2.13.90.  Otherwise use fallback list.
10165 2006-01-17  James Livingston  <jrl@ids.org.au>
10167         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
10168         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
10169         don't get stuck on recursive symlinks. Fixed bug 125452.
10171 2006-01-17  James Livingston  <jrl@ids.org.au>
10173         Add support for mass-storage audio players. Players are detected via
10174         either the HAL "audio_player" capability, or a ".is_audio_player" file
10175         in the root of the volume. Closes bug 325602.
10177         * configure.ac: separate using HAL from ipod support.
10179         * lib/rb-file-helpers.c: (rb_uri_is_local):
10180         * lib/rb-file-helpers.h: add function to determine whether a URI is
10181         local.
10183         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10184         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
10185         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
10186         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
10187         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
10188         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
10189         directories can be scanned for files to add as  non-SONG entries.
10191         * shell/rb-removable-media-manager.c:
10192         (rb_removable_media_manager_mount_volume): add checking for
10193         mass-storage players.
10195         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
10196         * sources/rb-ipod-source.c: (rb_ipod_source_new),
10197         (hal_udi_is_ipod):
10198         * sources/rb-removable-media-source.c:
10199         (rb_removable_media_source_class_init),
10200         (rb_removable_media_source_constructor): move some things up to the
10201         RBRemovableMediaSource, rather than making subclasses do it.
10203         * sources/Makefile.am:
10204         * sources/rb-generic-player-source.c:
10205         * sources/rb-generic-player-source.h: add mass-storage player source.
10207 2006-01-16  James Livingston  <jrl@ids.org.au>
10209         patch by: William Jon McCann  <mccann@jhu.edu>
10211         * rhythmdb/rhythmdb-query-model.c:
10212         (rhythmdb_query_model_base_row_deleted): fix build issue from last
10213         commit.
10215 2006-01-16  James Livingston  <jrl@ids.org.au>
10217         Patch to add support for "chained queries" and putting hidden tracks
10218         in query models. Use chained queries to add search box support to
10219         normal playlists, and to make hidden entries not get lost. Fixes bug
10220         319278.
10222         * rhythmdb/rhythmdb-query-model.h:
10223         * rhythmdb/rhythmdb-query-model.c:
10224         (rhythmdb_query_model_class_init),
10225         (rhythmdb_query_model_set_property),
10226         (rhythmdb_query_model_get_property):
10227         (rhythmdb_query_model_finalize): add "show-hidden" and
10228         "base-model" properties.
10230         (rhythmdb_query_model_set_connected),
10231         (rhythmdb_query_model_has_pending_changes),     
10232         (rhythmdb_query_model_entry_added_cb),
10233         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
10234         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
10235         (rhythmdb_query_model_remove_entry),
10236         (rhythmdb_query_model_drag_data_received),
10237         (rhythmdb_query_model_base_row_inserted),
10238         (rhythmdb_query_model_base_row_deleted),
10239         (rhythmdb_query_model_base_non_entry_dropped),
10240         (rhythmdb_query_model_base_complete),
10241         (rhythmdb_query_model_base_entry_prop_changed),
10242         (rhythmdb_query_model_base_rows_reordered),
10243         (rhythmdb_query_model_row_drop_possible): handle base-model by
10244         chaining events and operations where necessary. Make hidden entries
10245         not get added only if "show-hidden" is false.
10247         (rhythmdb_query_model_child_index_to_base_index),
10248         (rhythmdb_query_model_base_index_to_child_index),
10249         (rhythmdb_query_model_get_entry_index): utility functions for handling
10250         base-model entries.
10252         (rhythmdb_query_model_reapply_query): apply the current query, and
10253         remove entries that don't match it.
10255         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
10256         empty queries.
10258         * sources/rb-source.c: (rb_source_set_property): move the unref later
10259         to fix problem if it is the last reference.
10261         * sources/rb-static-playlist-source.c:
10262         (rb_static_playlist_source_class_init),
10263         (rb_static_playlist_source_init),
10264         (rb_static_playlist_source_finalize),
10265         (rb_static_playlist_source_constructor), (impl_reset_filters),
10266         (impl_search), (rb_static_playlist_source_do_query),
10267         (impl_save_contents_to_xml),
10268         (rb_static_playlist_source_add_location_internal): use a chained query
10269         model to filter out hidden entries and implement the search box.
10271 2006-01-15  James Livingston  <jrl@ids.org.au>
10273         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
10274         the default playlist loading, which I broke earlier.
10276 2006-01-15  James Livingston  <jrl@ids.org.au>
10278         patch by: William Jon McCann  <mccann@jhu.edu>
10280         * sources/rb-playlist-source.c: (playlist_iter_func): use
10281         totem-plparser's new API version macros to check for API changes.
10282         Handle the recent API change.
10284 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10286         * sources/rb-library-source.c: (impl_get_config_widget):
10287         Ref the preferences object to match the unref in the
10288         finalizer.  Fixes some portion of #323505.
10290 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10292         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
10293         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
10294         Fix valgrind warnings about accessing uninitialised values.
10296 2006-01-14  William Jon McCann  <mccann@jhu.edu>
10298         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
10300 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10302         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
10303         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
10304         Stops the 'now playing' icon from being displayed after the play
10305         order finishes.
10307 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10309         * podcast/rb-podcast-manager.c:
10310         (rb_podcast_manager_db_entry_deleted_cb):
10311         Don't try to delete files we never downloaded, and cancel downloads
10312         for deleted episodes.  Fixes bug #326862.
10313         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
10314         Don't complain about NULL data items in the selection list.
10316 2006-01-14  James Livingston  <jrl@ids.org.au>
10318         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
10319         Make the name ofthe queue non editable. Fixes bug 326918.
10321 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10323         * sources/rb-playlist-source-recorder.c (burn_cd) 
10324         (ask_rewrite_disc): Don't use our locally copied functions
10325         if we have at least 2.13.
10327 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10329         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
10330         Correct the argument type for the process_error signal.
10331         May fix bug #323154.
10333 2006-01-13  James Livingston  <jrl@ids.org.au>
10335         save the queue to disk when exiting, and reload on startup. Fixed bug
10336         326677 .
10338         * shell/rb-playlist-manager.c:
10339         (rb_playlist_manager_load_playlists),
10340         (rb_playlist_manager_save_playlists_async): don't disable saving of
10341         the queue
10343         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
10344         add the queue source as a gobject property.
10346         * sources/rb-play-queue-source.c:
10347         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
10348         code to save the queue to xml
10350         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10351         load the queue from xml.
10352         * sources/rb-playlist-xml.h:
10354         * sources/rb-static-playlist-source.c:
10355         (rb_static_playlist_source_load_from_xml),
10356         (rb_static_playlist_source_new_from_xml):
10357         * sources/rb-static-playlist-source.h: split the playlist xml loading
10358         from the static playlist creation function, so the queue can use it.
10360 2006-01-13  James Livingston  <jrl@ids.org.au>
10362         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
10363         assertion that should be there. Fixes bug 325923.
10364         
10365         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
10366         return NULL if the entry already exists (e.g. as another type).
10367         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10368         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
10369         (rb_podcast_manager_insert_feed):
10370         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
10371         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
10372         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
10373         for the above function returning NULL.
10375 2006-01-12  James Livingston  <jrl@ids.org.au>
10377         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
10378         is enabled. Fixes bug 326673.
10379         
10380         * doc/reference/tmpl/eggtrayicon.sgml:
10381         * doc/reference/tmpl/rb-daap-src.sgml:
10382         * doc/reference/tmpl/rb-source.sgml:
10383         * doc/reference/tmpl/rb-statusbar.sgml:
10384         * doc/reference/tmpl/rb-tree-model-sort.sgml:
10385         * doc/reference/tmpl/rhythmbox-unused.sgml:
10386         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
10388 2006-01-11  James Livingston  <jrl@ids.org.au>
10390         * widgets/rb-song-info.c: (rb_song_info_constructor),
10391         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
10392         (rb_song_info_populate_dialog): fill in the fields if all tracks have
10393         the same value for properties. From bug 326054.
10395 2006-01-11  James Livingston  <jrl@ids.org.au>
10397         * sources/rb-source.h:
10398         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
10399         (rb_shell_player_set_playing_source_internal), (eos_cb):
10400         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
10401         every entry.
10403         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
10404         source use this. Closes bug 322077.
10406 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10408         * widgets/eggtrayicon.c (egg_tray_icon_notify):
10409         In order for set_icon_data_from_pixbuf() to be
10410         effective, one must not set an icon in _new().
10412 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10414         * widgets/eggtrayicon.c (egg_tray_icon_init) 
10415         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
10416         (egg_tray_icon_notify): Add support for libnotify 0.3.
10417         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
10418         * configure.ac: Determine the version of libnotify.
10419         Fixes #326333.
10421 2006-01-08  James Livingston  <jrl@ids.org.au>
10423         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
10424         trying to share a track with unknown length.
10426 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10428         * shell/rb-shell-player.c: (rb_shell_player_init):
10429         Sync volume on startup so it doesn't default to 0.
10431 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10433         * shell/rb-shell-player.c: (rb_shell_player_class_init),
10434         (rb_shell_player_get_property), (rb_shell_player_open_location),
10435         (info_available_cb):  Add the iradio streamed song title as a
10436         property, and emit a signal when it changes.
10438         * shell/rb-shell.c: (rb_shell_constructor),
10439         (rb_shell_player_elapsed_changed_cb),
10440         (rb_shell_player_stream_song_changed_cb):
10441         Issue a notification when the iradio song title changes.
10442         Fixes #326166.
10444 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10446         * shell/rb-shell-player.c: (rb_shell_player_init),
10447         (rb_shell_player_finalize), (rb_shell_player_set_property),
10448         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
10449         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
10450         (rb_shell_player_set_volume_relative),
10451         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
10452         (rb_shell_player_get_mute):
10453         * shell/rb-shell-player.h:
10454         * shell/rb-shell-player.xml:
10455         Store volume as a property on RBShellPlayer, rather than in gconf.
10456         Add some methods to control volume via dbus.
10458         * shell/rb-shell.c: (rb_shell_constructor),
10459         (rb_shell_volume_widget_changed_cb),
10460         (rb_shell_player_volume_changed_cb):
10461         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
10462         Update volume using player properties rather than gconf, and sync the
10463         volume with the volume control button when something else changes it.
10464         Fixes #323840.
10466 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10468         * shell/rb-tray-icon.c (tray_popup_position_menu):
10469         Make tray menu align with edge of panel.
10471         patch from Jaap A. Haitsma <jaap@haitsma.org>
10472         Fixes #319913
10474 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10475         * shell/rb-shell.c (sourcelist_drag_received_cb): 
10476         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
10477         (rb_playlist_manager_new_playlist_from_selection_data):
10478         Make a reasonable default name for playlists created from
10479         dropped data.  Fixes #326116.
10481 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10483         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10484         Use new gconf key.
10485         (burn_cd): Always eject CD after burning.  Too many drives
10486         get confused if we don't.  Save the speed used if the burn
10487         was completed successfully.
10489         * data/rhythmbox.schemas: Use our own speed instead of from
10490         n-c-b. The situation is that the default_speed for n-c-b is most
10491         likely the maximum write speed.  This is fine for n-c-b because it
10492         has burn-proof turned on.  We can't turn it on for audio CDs
10493         because the results are poor in quality.  So we'll just pick a
10494         default that should work for everyone (4).
10496 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10497         
10498         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
10499         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
10501 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10503         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
10504         in my previous commit.  Fixes #326037.
10506 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
10508         patch by: Jonathan Matthew
10510         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
10511         error on Fedora Rawhide.
10513 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10515         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
10516         Assume HTTP URLs ending with .xml or .rss are podcasts.
10517         (rb_shell_add_uri): Handle adding podcast feeds.
10519         * sources/rb-podcast-source.c: (rb_podcast_source_new):
10520         Register as the source for podcast feeds.
10522 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10524         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
10525         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
10526         (rb_shell_preferences_append_view_page):
10527         * shell/rb-shell-preferences.h:
10528         Fix typo in function name.  Fixes #325992.
10530 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10532         * shell/rb-audioscrobbler.c:
10533         Add '+' to the list of characters to URI-encode, so it doesn't get
10534         interpreted as a space.
10536 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10538         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
10539         (rb_daap_connection_do_something):  Don't crash if the DAAP server
10540         goes away while we're still trying to log in.
10542 2006-01-06  James Livingston  <jrl@ids.org.au>
10544         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
10546 2006-01-06  James Livingston  <jrl@ids.org.au>
10548         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
10549         support for Year to automatic playlists. Closes bug 321341.
10551         * rhythmdb/rhythmdb-query-model.c:
10552         (rhythmdb_query_model_set_property):
10553         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
10554         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
10555         (rhythmdb_query_free), (rhythmdb_query_serialize),
10556         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
10557         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
10558         * rhythmdb/rhythmdb.h: Support special
10559         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
10560         year in date.
10562         * widgets/rb-query-creator-properties.c:
10563         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
10564         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
10566 2006-01-06  James Livingston  <jrl@ids.org.au>
10568         * configure.ac: make the playback backend selection work correctly
10570         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
10571         (rb_daap_src_class_init), (rb_daap_src_dispose),
10572         (rb_daap_src_change_state), (rb_daap_src_initialize):
10573         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
10574         doesn't work for this class. Fixes bug 325934
10576 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10578         * configure.ac: Fix check for libnotify.
10580 2006-01-05  William Jon McCann  <mccann@jhu.edu>
10582         * sources/rb-playlist-source.c (xml_get_and_trim_names):
10583         Get name element for current lang and remove all name nodes
10584         from the XML tree.
10585         (get_playlist_name_from_xml): Try to get name element or
10586         fall back to name attribute.
10587         (rb_playlist_source_new_from_xml): Get name before turning over
10588         to sub-types for parsing so that we can remove name elements
10589         from the tree if necessary.
10591         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
10592         Load default playlists file if per user playlists are not found.
10594         * data/playlists.xml.in: 
10595         * data/Makefile.am: 
10596         * data/.cvsignore: Add default set of playlists.
10597         Fixes #323004
10599 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10601         * shell/main.c: (main): Don't use the dbus interface to show the
10602         window if we're also going to use the bonobo interface.
10604 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10606         * shell/rb-history.c: (rb_history_set_playing):
10607         Allow setting the playing song to NULL.
10608         (rb_history_append), (rb_history_delete_link):
10609         Don't randomly change position when entries are added and removed,
10610         it confuses play orders.
10611         
10612         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
10613         Random orders always have a next entry if the model is not empty.
10614         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
10615         Go back to the start of the history if we're past its end.
10617         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
10618         (rb_shuffle_play_order_go_next): Go back to the start of the history
10619         if we're past its end.
10620         (rb_shuffle_sync_history_with_query_model): Go back to the start of
10621         the history if the current entry is removed.
10623         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
10624         (rb_play_order_entry_deleted_cb): Only update have next/previous for
10625         the play order when the query has finished. This wasted about 10% CPU
10626         while the query was running.
10628         Fixes #324641: assertion failures when the query model was changed
10629         such that the playing song was no longer present.
10631 2006-01-05  James Livingston  <jrl@ids.org.au>
10633         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
10634         (rb_daap_src_dispose), (rb_daap_src_change_state):
10635         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
10636         (rhythmdb_gda_finalize):
10637         * widgets/rb-cell-renderer-pixbuf.c:
10638         * widgets/rb-cell-renderer-rating.c:
10639         (rb_cell_renderer_rating_class_init),
10640         (rb_cell_renderer_rating_finalize):
10641         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
10642         * widgets/rb-load-failure-dialog.c:
10643         (rb_load_failure_dialog_class_init),
10644         (rb_load_failure_dialog_finalize):
10645         * widgets/rb-rating.c: (rb_rating_class_init),
10646         (rb_rating_finalize):
10647         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
10648         (rb_search_entry_finalize): use G_DEFINE_TYPE
10650         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
10652 2006-01-05  James Livingston  <jrl@ids.org.au>
10654         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
10656         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
10657         the tarball.
10659         * shell/rb-history.c: (rb_history_class_init),
10660         (rb_history_finalize):
10661         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
10662         (rb_playlist_manager_finalize):
10663         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
10664         (rb_remote_init): use G_DEFINE_TYPE.
10666 2006-01-05  James Livingston  <jrl@ids.org.au>
10668         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
10669         changes
10671 2006-01-04  William Jon McCann  <mccann@jhu.edu>
10673         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
10674         Disable burn action when source is not a playlist.
10675         Fixes #323578.
10677 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
10679         Optionally use libnotify to display song change and other
10680         notifications, and provide an option to disable notifications.
10681         Fixes #320355 and innumerable informal complaints.
10683         * widgets/eggtrayicon.c: (egg_tray_icon_init),
10684         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
10685         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
10686         (egg_tray_icon_notify):
10687         * widgets/eggtrayicon.h:
10688         * configure.ac:
10689         * shell/Makefile.am:
10690         Optionally use libnotify instead of eggnotificationbubble.
10692         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
10693         (rb_tray_icon_constructor), 
10694         (rb_tray_icon_show_notifications_changed_cb),
10695         (rb_tray_icon_hide_notify_cb)
10696         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
10697         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
10698         EggNotificationBubble pointer to eggtrayicon.
10700         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
10701         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
10702         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
10704 2006-01-04  William Jon McCann  <mccann@jhu.edu>
10706         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
10707         Request a minimum size for the progress bar so that
10708         the window doesn't shrink too small.
10710 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10712         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
10713         (add_db_entry), (db_entry_deleted_cb):
10714         Don't track the number of songs currently present, track the next ID
10715         to assign.  Fixes potential ID conflict problems.
10716         
10717         (db_entry_changed_cb), (rb_daap_share_start_publish),
10718         (rb_daap_share_stop_publish):
10719         Watch for db entry changes, and when songs become non-hidden after
10720         a successful stat, add them to the mapping tables.   Fixes #325178,
10721         making the DAAP server usable again.
10723 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10724         
10725         * shell/rb-statusbar.c: (rb_statusbar_class_init),
10726         (rb_statusbar_construct), (rb_statusbar_init),
10727         (rb_statusbar_finalize), (rb_statusbar_set_property),
10728         (rb_statusbar_get_property), (rb_statusbar_new),
10729         (rb_statusbar_sync_with_source):
10730         * shell/rb-statusbar.h:
10731         Remove visibility management code, stop watching for play order
10732         changes (status bar doesn't show play order any more), remove unused
10733         'player' property, and some other minor cleanup.
10734         
10735         * shell/rb-shell.c: (rb_shell_constructor),
10736         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
10737         (rb_shell_sync_statusbar_visibility):
10738         Manage status bar visibility here rather than in the status bar
10739         itself, so we can take small mode into account.  Fixes #323589.
10741 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10743         * widgets/eggnotificationbubble.c: (draw_bubble):
10744         Move the bubble off the visible screen while setting up bevels.  
10745         Fixes #316810.
10747 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10749         * shell/rb-shell-player.c: (rb_shell_player_init),
10750         (rb_shell_player_finalize): 
10751         Remove unused structure members.
10752         
10753         (do_next_idle), (rb_shell_player_error):
10754         Only queue one call to do_next_idle, so we don't skip tracks if we get
10755         two errors for the same song.  Fixes #325216.
10757 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10759         * data/glade/podcast-feed-properties.glade,
10760          podcast/rb-feed-podcast-properties-dialog.c:
10761         (rb_feed_podcast_properties_dialog_init),
10762         (rb_feed_podcast_properties_dialog_update):
10763         Add 'last episode' field to the podcast feed properties dialog.
10765         * podcast/rb-feed-podcast-properties-dialog.c:
10766         (rb_feed_podcast_properties_dialog_update_last_update),
10767         (rb_feed_podcast_properties_dialog_update_last_episode),
10768          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10769         Use last-seen property for the time at which we last updated the feed,
10770         and post-time for the time the last episode was published.
10772         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
10773         Handle upgrades from 0.9.2; if no post-time was found for a podcast
10774         feed, use last-seen (which in 0.9.2 was the last post time).
10776         Fixes #323894.
10778 2006-01-01  James Livingston  <jrl@ids.org.au>
10780         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
10782         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
10783         year from the ipod database.
10785 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10787         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
10788         Only set the pipeline back to NULL state for really uninteresting
10789         files.  This was causing deadlocks with various video files.
10790         Fixes #324912.
10792 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10794         * data/glade/song-info-multiple.glade:
10795         Add disc number label and field.
10796         * widgets/rb-song-info.c: (rb_song_info_construct_single),
10797         (rb_song_info_constructor): 
10798         Handle widgets for disc number.
10799         (rb_song_info_sync_entries_multiple):
10800         Set disc number property on selected entries.
10801         Fixes #324777.
10803 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10805         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
10806         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
10807         Activate the default widget when enter is pressed in these dialogs.
10808         Fixes #322887.
10810 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10812         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
10813         Use rb_shell_player_get_playing_entry, so we get the right entry
10814         when playing from the queue.  Fixes #325379.
10816 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10818         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10819         Include podcast posts with no publication date.  Typically
10820         seen in static collections rather than feeds.
10822 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10824         * shell/main.c: (main): Don't attempt to handle
10825         bonobo-only arguments if we couldn't get a bonobo
10826         client proxy.
10828 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10830         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
10831         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
10832         abort if daap sharing is disabled and then re-enabled.
10834 2005-12-29  William Jon McCann  <mccann@jhu.edu>
10836         * podcast/rb-podcast-parse.c (rb_insert_item):
10837         Add debugging.
10838         (rb_podcast_parser_start_element): Support itunes:image.
10839         Add debugging.  Don't abuse the break statement.  Warn
10840         if state is unknown.
10841         (rb_podcast_parser_end_element): Add debugging.  Warn
10842         if state is unknown.
10843         (rb_podcast_parser_characters): Warn if state is unknown.
10845         Fixes parsing of feeds that use the itunes:image element.
10846         Fixes #324632
10848 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10850         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
10851         (stations_view_drag_data_received_cb):
10852         Remove calls to rhythmdb_entry_lookup_by_location, as
10853         rb_iradio_source_add_station does that anyway.
10854         
10855         (rb_iradio_source_add_from_playlist):
10856         If the URL doesn't point to a playlist, add it as the stream
10857         URL instead.
10859 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10861         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
10862         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
10863         so we don't get an assertion failure.
10864         Fixes #325025.
10866 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10868         * shell/main.c: (load_uri_args): don't compile this in if
10869         neither bonobo nor dbus are enabled.  Fixes #324890.
10871 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10873         * sources/rb-audiocd-source.c:
10874         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
10875         so it closes the device.
10877 2005-12-20  James Livingston  <jrl@ids.org.au>
10879         * metadata/rb-metadata-gst.c: make the state changes time-out again,
10880         so that it doesn't spend forever getting stuck on the one file. Don't
10881         report errors for failing to change state on known non-audio files.
10883         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
10884         audio sink creation if we can't create the gconfaudiosink. This lets
10885         it work with only gst-plugins-base on 0.10.
10887 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
10889         * rhythmdb/rhythmdb-query-model.c:
10890         (rhythmdb_query_model_set_sort_order):
10891         Fix a tiny memory leak in the previous commit.
10893 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
10895         * rhythmdb/rhythmdb-query-model.c:
10896         (rhythmdb_query_model_set_sort_order):
10897         Don't try to emit reorders for empty query models, since it doesn't
10898         achieve anything and it results in a few warnings.
10900 2005-12-19  William Jon McCann  <mccann@jhu.edu>
10902         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
10903         Make burn dialog non-resizable so that the expander can shrink.
10904         Fixes #308951.
10906 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
10908         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
10909         add entries without a location, rather than those with one.
10911 2005-12-19  James Livingston  <jrl@ids.org.au>
10913         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
10914         the error isn't set.
10916 2005-12-19  James Livingston  <jrl@ids.org.au>
10917         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
10918         add entries without a location. Fixes bug 324290.
10920         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
10921         without a location.
10923         * shell/main.c: (main): don't crash if dbus initialisation fails
10924         without setting an error
10926 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
10928         * sources/rb-library-source.c: Remove unused structure members
10929         (rb_library_source_do_query): Actually use the cached 'all' query.
10930         Fixes #324025.
10931         
10932 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
10934         * sources/rb-audiocd-source.c 
10935         (rb_audiocd_get_cd_info): tab
10936         (rb_audiocd_scan_songs): Return boolean success/failure,
10937         fix error messages a bit.
10938         (metadata_cb): Don't crash if we have no tracks
10939         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
10940         the CD.
10941         Fixes #324222.
10943 2005-12-15  William Jon McCann  <mccann@jhu.edu>
10945         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
10946         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
10947         key.
10949         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10950         Fixes #324157
10952 2005-12-14  William Jon McCann  <mccann@jhu.edu>
10954         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
10955         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
10956         (fullscreen_changed_cb): 
10957         * lib/rb-preferences.h: 
10958         * data/ui/rhythmbox-ui.xml: 
10959         * data/rhythmbox.schemas:
10960         Add fullscreen mode.
10962         Fixes #324075.
10964 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
10966         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
10967         configure.  It was not working with RPM.
10968         * data/Makefile.am: Switched dbus directory location to use
10969         datadir instead of variable that was not working.
10971 2005-12-13  James Livingston  <jrl@ids.org.au>
10973         patch by: Alex Lancaster <alexl@users.sourceforge.net>
10975         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
10976         the podcast browser work again. Closes bug 323856.
10978 2005-12-12  William Jon McCann  <mccann@jhu.edu>
10980         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
10981         Remove C99ism.
10983         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
10984         (rb_utf_friendly_time):
10985         * lib/rb-cut-and-paste-code.h:
10987         * podcast/rb-feed-podcast-properties-dialog.c:
10988         (rb_feed_podcast_properties_dialog_parse_time):
10989         * podcast/rb-podcast-properties-dialog.c:
10990         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
10991         to display the date in a more user friendly way.
10992         For example, if the feed was updated yesterday it will say:
10993         Last updated: Yesterday 10:00 AM
10994         instead of printing the date.
10996 2005-12-12  William Jon McCann  <mccann@jhu.edu>
10998         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
10999         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
11000         (rb_validate_item_propert, rb_podcast_parser_start_element) 
11001         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
11002         Use RB style.  Check for NULL before strcmp.  No C++ comments.
11003         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
11004         Don't set invalid mime type when mime type is NULL.  Fix leaks.
11005         (rb_podcast_parse_date): Add support for some real world
11006         date formats.
11007         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
11008         (rb_podcast_parse_item_free): Style and no need to check
11009         for NULL before g_free.
11011         May fix #323742
11013 2005-12-12  James Livingston  <jrl@ids.org.au>
11015         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
11016         with gstreamer 0.10, which replaced audioscale.
11018         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
11019         function to free the SoupSession
11021         * shell/rb-source-header.c: (rb_source_header_set_property),
11022         (rb_source_header_disclosure_toggled_cb),
11023         (rb_source_header_view_browser_changed_cb),
11024         (rb_source_header_sync_control_state):
11025         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11026         * sources/rb-library-source.c: (rb_library_source_class_init):
11027         * sources/rb-source.c: (rb_source_class_init),
11028         (rb_source_get_status), (default_get_browser_key),
11029         (rb_source_get_browser_key), (rb_source_can_browse),
11030         (rb_source_notify_status_changed),
11031         (rb_source_notify_filter_changed):
11032         * sources/rb-source.h: seperate the enabling of browsers from the use
11033         of a gconf key.
11035 2005-12-11  William Jon McCann  <mccann@jhu.edu>
11037         * data/glade/podcast-feed-properties.glade: 
11038         * data/glade/podcast-properties.glade: Use scrolled viewports
11039         for description text.  Fix regression of #320509.
11041 2005-12-11  James Livingston  <jrl@ids.org.au>
11043         * sources/rb-auto-playlist-source.c:
11044         (rb_auto_playlist_source_class_init), (impl_reset_filters),
11045         (impl_search), (rb_auto_playlist_source_do_query),
11046         (rb_auto_playlist_source_set_query),
11047         (rb_auto_playlist_source_get_query): add support for the search box
11048         to automatic playlists.
11050         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
11051         memory leak.
11053 2005-12-11  James Livingston  <jrl@ids.org.au>
11055         * NEWS: update NEWS
11057 2005-12-11  James Livingston  <jrl@ids.org.au>
11059         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
11060         (rhythmdb_load), (monitor_subdirectory),
11061         (rhythmdb_sync_library_location):  start the library sync and
11062         monitoring in an idle callback.
11064 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11066         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
11067         (rb_podcast_source_constructor): Remove unused pixbuf column.
11068         (rb_podcast_source_set_property, rb_podcast_source_get_property):
11069         Use consistent style.
11071         Fixes #322961.
11073 2005-12-11  James Livingston  <jrl@ids.org.au>
11075         * rhythmdb/rhythmdb-property-model.c:
11076         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
11077         (rhythmdb_property_model_insert),
11078         (rhythmdb_property_model_delete_prop):
11079         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
11080         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
11081         (destroy_tree_property):
11082         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
11083         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
11084         GMemChunks, they are crap and deprecated. Improves startup-time and
11085         memory usage slightly.
11087 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11089         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
11090         Added license and website info.
11092         * MAINTAINERS.old: Add Colin.
11093         * MAINTAINERS: Add James.
11094         * AUTHORS: Put back in order.  Add extra space between name and email
11095         to make it easier to read.  Add James and jonathan.
11097         * widgets/rb-song-info.c (rb_song_info_init) 
11098         (rb_song_info_constructor): Make sure close button is primary/rightmost.
11100 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11102         Play queue implementation. Closes bug 107787.
11104         * data/rhythmbox.schemas: add items for whether the queue should be
11105         displayed as a sidebar, and the height of the sourcelist if it is.
11107         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
11108         playlist, and podcast popups; add 'view queue as sidebar' menu item,
11109         add popups for queue as source and as sidebar.  We need a separate
11110         popup for the sidebar view because otherwise it's hard to tell which
11111         of the visible entry views the action came from.
11113         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
11115         * po/POTFILES.in: Add new file
11117         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
11118         Add helper function for deciding if a podcast episode is available for
11119         playback.
11121         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
11122         reorder entries in the query model.
11123         (idle_process_update): Handle new update type used to insert entries
11124         at a particular position in the query model.
11125         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
11126         parameter to specify the position (-1 meaning 'at the end').
11127         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
11128         parameter.
11129         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
11130         bad entry removal updates for entries that aren't in the model.
11131         (rhythmdb_query_model_emit_reorder): Add helper function for
11132         reordering rows.
11133         (rhythmdb_query_model_move_entry): New method for moving entries
11134         around in the model
11135         (rhythmdb_query_model_entry_added_cb),
11136         (rhythmdb_query_model_update_limited_entries),
11137         (rhythmdb_query_model_do_reorder),
11138         (rhythmdb_query_model_do_insert): Pass through the index parameter,
11139         use rhythmdb_query_model_emit_reorder where appropriate.
11141         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11142         Don't allow the queue to be deleted.
11143         (handle_playlist_entry_cb): Update for method signature change
11144         (rb_playlist_manager_save_playlists_async),
11145         (rb_playlist_manager_get_playlists): Don't save the play queue,
11146         don't report it as a playlist.
11148         * shell/rb-play-order.c: Include queue play order in the list of
11149         available orders.
11151         * shell/rb-shell.c
11152         (rb_shell_class_init), (rb_shell_get_property): Add new property 
11153         for access to the clipboard object.
11154         (rb_shell_constructor): Handle playing-from-queue signal to update the
11155         sourcelist display; add queue sidebar in to UI, listen for queue
11156         sidebar pane changes, and read initial settings from gconf.
11157         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
11158         Only tell the sourcelist the source has changed if the new source is 
11159         not the queue, as we update the sourcelist differently in that case.
11160         (rb_shell_set_window_title): Only use the cached window title if the
11161         playing state was the same when it was created.
11162         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
11163         (rb_shell_sync_pane_visibility): Only hide the side pane if the
11164         sourcelist is hidden and the queue is shown as a source.
11165         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
11166         mode, since it doesn't make any sense.
11167         (sourcelist_visibility_changed_cb): Update the visibility of the pane
11168         too.
11169         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
11170         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
11171         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
11172         playing from queue shown as sidebar.
11174         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
11175         MusicProperties action here from rb-shell-player.c, since it acts like
11176         cut/copy/paste etc.
11177         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
11178         (rb_shell_clipboard_get_property): new property for queue source.
11179         Watch for selection changes in the sidebar entry view as well as the
11180         normal one.
11181         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
11182         actions and MusicProperties.
11183         (rb_shell_clipboard_cmd_queue_delete),
11184         (rb_shell_clipboard_cmd_add_song_to_queue),
11185         (rb_shell_clipboard_cmd_song_info),
11186         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
11188         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
11189         actually came from (could be the playing source, or the queue), add a 
11190         new play order object for the queue, add a property for the queue
11191         source, add a signal for when we switch between playing from the
11192         source and from the queue.
11193         (rb_shell_player_set_property): Handle playing directly from the
11194         queue so we stop once the queue is empty.  Create queue play order
11195         when we get the queue source.
11196         (rb_shell_player_get_playing_source): Return the source we're actually
11197         playing from.
11198         (rb_shell_player_get_playing_entry): Get playing entry from queue if
11199         that's where it is.
11200         (rb_shell_player_set_playing_entry): Update the queue play order if 
11201         that's where we're playing from.
11202         (rb_shell_player_play_order_update_cb): Take has next/previous for the
11203         queue into consideration too.
11204         (swap_playing_source): Helper function for switching the playing
11205         source.
11206         (rb_shell_player_do_previous): Check the queue, even though there's
11207         never a previous entry in it (yet), swap playing source if it changed.
11208         (rb_shell_player_do_next): Check the queue for entries to play before
11209         the normal play order, and swap playing source if it changed.
11210         (rb_shell_player_do_previous_or_seek): Check the queue for previous
11211         entries to go to as well.
11212         (rb_shell_player_playpause): Check the queue before the selection and
11213         the play order, and swap playing source if it changed.
11214         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
11215         (rb_shell_player_entry_activated_cb): Use
11216         rb_podcast_manager_entry_downloaded, do some tapdancing to make
11217         activating queue entries work properly (move the activated entry to
11218         the start of the queue and then play it); if we were playing from the
11219         queue, clear its playing entry so it'll start again from the start
11220         after the activated entry.
11221         (rb_shell_player_sync_buttons): MusicProperties action handler moved
11222         to rb-shell-clipboard.c
11223         (actually_set_playing_source): Add helper for updating the playing
11224         source.
11225         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
11226         signal if we stop or start doing so; use actually_set_playing_source; 
11227         emit playing-source-changed if we actually did change source.
11229         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
11230         rb_static_playlist_source_add_location.
11232         * sources/rb-library-source.c (rb_library_source_class_init): Allow
11233         enqueueing of songs from the library.
11235         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
11236         enqueueing of sonsg from playlists.
11237         (rb_playlist_source_entry_added_cb): Add extra parameter for
11238         rhythmdb_query_model_add_entry.
11239         
11240         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
11241         Implement (can_)add_to_queue for this class.
11242         (rb_podcast_source_entry_activated): Use
11243         rb_podcast_manager_entry_downloaded.
11244         (impl_can_add_to_queue): Return TRUE if at least one entry that has
11245         been downloaded is selected.
11246         (impl_add_to_queue): Only add downloaded entries to the queue.
11248         * sources/rb-source.{c,h}:
11249         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
11250         methods.
11251         (rb_source_class_init): Don't allow enqueueing by default; implement 
11252         add_to_queue though.
11253         (default_add_to_queue): Add all selected entries to the queue.
11254         
11255         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
11256         would be playing if there wasn't anything in the queue).
11257         (set_source_playing): Helper function for manipulating tree store.
11258         (rb_sourcelist_set_playing_source): Use set_source_playing
11259         (rb_sourcelist_preempt_playing_source): Update preempted source
11260         pointer, manipulate source states.
11262         * sources/rb-static-playlist-source.{c,h}:
11263         (rb_static_playlist_source_add_location_internal),
11264         (rb_static_playlist_source_add_location),
11265         (rb_static_playlist_source_add_entry): Add index parameter for
11266         specifying where in the playlist the new entry goes.
11267         (rb_static_playlist_source_new_from_xml), (impl_paste),
11268         (rb_static_playlist_source_add_list_uri),
11269         (rb_static_playlist_source_add_location_swapped),
11270         (rb_static_playlist_source_add_locations),
11271         (rb_static_playlist_source_non_entry_dropped),
11272         (rb_static_playlist_source_row_inserted):
11273         Handle new index parameter everywhere it appears
11274         (rb_static_playlist_source_move_entry): New method for moving entries
11275         around in the playlist.
11277         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
11278         warnings when trying to scroll entry views that have never been
11279         displayed.
11281         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
11282         play order that removes the old entry when switching to a new one.
11284         * sources/rb-play-queue-source.{c,h}: New files, implementing a
11285         static playlist subclass that has a second entry view for the sidebar
11286         view using alternate formatting, and that displays the number of
11287         entries it contains in its source list entry.
11289 2005-12-10  James Livingston  <jrl@ids.org.au>
11291         * rhythmdb/rhythmdb-query-model.c:
11292         (rhythmdb_query_model_add_entry),
11293         (rhythmdb_query_model_drag_data_received):
11294         * sources/rb-static-playlist-source.c:
11295         (rb_static_playlist_source_non_entry_dropped): when things are
11296         dropped, ignore any blank lines in the list of uris. Make the source
11297         responsible for adding new items to the db.
11299         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
11300         empty string.
11302 2005-12-10  James Livingston  <jrl@ids.org.au>
11304         * shell/rb-shell-player.c: (rb_shell_player_set_property),
11305         (rb_shell_player_sync_buttons),
11306         (rb_shell_player_selection_changed_cb): watch for the
11307         "selection-changed" signal, so that the Song Properties get enabled.
11308         Closes bug 323694.
11310 2005-12-10  James Livingston  <jrl@ids.org.au>
11312         * data/rhythmbox.schemas: fix the gconf schema
11314 2005-12-10  James Livingston  <jrl@ids.org.au>
11316         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
11317         the decoded-pad callback with gstreamer 0.8, it causes problems.
11319 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11321         Remove more junk from RBEntryView. Closes bug 323640.
11323         * widgets/rb-entry-view.{c,h}:
11324         Remove unused private structure members, replace 'playing' boolean
11325         with an enum (so we know if we're paused too), and store a pointer to
11326         the RBShellPlayer too.  
11327         (rb_entry_view_class_init), (rb_entry_view_set_property),
11328         (rb_entry_view_get_property):
11329         Remove 'entry-selected' and 'changed' signals and
11330         'playing-entry' property, add 'selection-changed' signal and
11331         'shell-player' and 'playing-state' properties.
11332         (rb_entry_view_new): Take the shell player object reference
11333         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
11334         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
11335         No longer needed, shell player is the place to get this information.
11336         (rb_entry_view_busy), (rb_entry_view_get_duration),
11337         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
11338         (rb_entry_view_get_next_from_entry),
11339         (rb_entry_view_get_previous_from_entry),
11340         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
11341         (rb_entry_view_get_num_entries):
11342         Removed, callers should go to the query model directly.
11343         (rb_entry_view_playing_song_changed): Update active query model, emit
11344         row changed signals to update pixbufs, and scroll to the playing song
11345         when the playing song changes, based on a signal from the shell
11346         player.
11347         (queue_changed_sig), (rb_entry_view_row_changed_cb),
11348         (emit_entry_changed): Evil, removed.
11349         (rb_entry_view_selection_changed_cb): Remove old signals, add new
11350         selection-changed signal.
11351         (rb_entry_view_select_none), (rb_entry_view_select_entry):
11352         Remove selection lock.  It didn't work anyway.
11353         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
11354         (rb_entry_view_emit_row_changed): Simple helper function to emit
11355         row-changed signals.
11357         * widgets/Makefile.am: Entry view needs headers from the shell/
11358         directory.
11359         * widgets/rb-song-info.{c,h}: Use the query model for everything except
11361         scrolling the entry view to show the entry being displayed.
11362         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
11363         'source' property so we can watch for query model changes.
11364         (rb_song_info_finalize): Unref objects, disconnect signal handlers
11365         (rb_song_info_set_property): Watch for query model changes, don't
11366         watch for entry view changes.
11367         (rb_song_info_new): Take source as a parameter, use the source's entry
11368         view unless one was specifically supplied.
11369         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
11370         Use query model rather than entry view to move between songs.
11371         (rb_song_info_update_buttons): Use query model.
11372         (rb_song_info_query_model_changed_cb): Handle query model changes.
11374         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11375         Only one copy of the code to enable/disable the CD burning action
11376         (rb_playlist_manager_playlist_entries_changed):
11377         Use the query model to get the number of entries, not the entry view.
11379         * shell/rb-play-order-random-by-age-and-rating.c,
11380         shell/rb-play-order-random-by-age.c,
11381         shell/rb-play-order-random-by-rating.c,
11382         shell/rb-play-order-random-equal-weights.c:
11383         Use G_DEFINE_TYPE
11385         * shell/rb-shell-player.{c,h}:
11386         Remove a few unused entries from the structure.
11387         (rb_shell_player_set_property):
11388         Don't use the 'changed' signal on the entry view (it's evil)
11389         (rb_shell_player_have_first): No longer needed
11390         (rb_shell_player_play): Just tell the entry view it's playing
11391         (rb_shell_player_playpause): Tell the entry view it's paused
11392         when pausing.
11393         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
11394         (rb_shell_player_property_row_activated_cb):
11395         Get the entry to play using the query model, not the entry view.
11396         (rb_shell_player_sync_buttons): Update entry view state while we're
11397         here.
11398         (rb_shell_player_set_playing_source_internal): Update entry view state
11399         (rb_shell_player_get_playing): Ask the entry view, not the player.
11400         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
11401         and rb_shell_set_window_title work properly, so you get "(Paused)" in
11402         the window title and tray icon tooltip.
11403         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
11405         * sources/rb-iradio-source.c, sources/rb-library-source.c,
11406         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
11407         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
11408         view constructor, pass the source in to the song info widget
11409         constructor.
11411         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
11412         Use 'selection-changed' instead of 'changed', since that's what the
11413         clipboard cares about.
11414         (rb_shell_clipboard_set_source): Don't die if source == NULL
11416 2005-12-10  James Livingston  <jrl@ids.org.au>
11418         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
11419         * sources/rb-playlist-source-recorder.c:
11420         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
11421         stuff not use the deprecated API when compiled against 2.13
11423 2005-12-10  James Livingston  <jrl@ids.org.au>
11425         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11427         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
11428         problem where the genre tag was getting set to the artist. Closes bug
11429         323642.
11431 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11433         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
11434         Return NULL if can't get first iter.
11436         Fixes #323663
11438 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11440         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
11441         updated rb_station_properties_dialog_new API.
11442         (rb_iradio_source_add_from_playlist): New public function.
11443         (rb_iradio_source_first_time_changed): Use add_from_playlist.
11445         * shell/rb-shell.c (new_station_location_added): Handle
11446         iradio location added signal.
11447         (rb_shell_cmd_new_station): Use new iradio station dialog.
11449         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
11450         (rb_station_properties_dialog_new): Don't squeeze new
11451         station functionality into this class.
11452         (rb_station_properties_dialog_response_cb): ditto.
11453         (rb_station_properties_dialog_update_title): Make
11454         consistent with other properties dialogs.
11455         (rb_station_properties_dialog_location_changed_cb): Do nothing.
11457         * iradio/rb-new-station-dialog.[ch]: 
11458         * iradio/Makefile.am: Add new station dialog.
11460         * data/glade/station-new.glade: New file based on
11461         new podcast feed dialog.
11462         * data/glade/station-properties.glade: Updated to
11463         be consistent with song properties dialog.
11465         Fixes #323306.
11467 2005-12-10  James Livingston  <jrl@ids.org.au>
11469         patch by: Ståle Lyngaas <staale@lyngaas.com>
11471         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
11472         submit songs longer than 30 minutes. Fixes bug 323639.
11474 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11476         * shell/rb-shell.c (idle_save_playlist_manager): Use new
11477         async save function.
11478         (rb_shell_finalize): Remove save timeout sources.  Reorder
11479         steps a bit to make saving db and playlists a bit more
11480         failsafe in case something goes wrong later.
11481         (rb_shell_constructor): Keep track of save timeout source.
11482         (add_to_library_response_cb): Keep track of db save timeout source.
11484         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
11485         g_atomic.
11486         (rb_playlist_manager_shutdown): New function to shutdown
11487         threads etc. before exit.
11488         (rb_playlist_manager_finalize): Moved handling outstanding
11489         threads stuff to shutdown since if there are outstanding threads
11490         they hold a ref and finalize is never called.
11491         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
11492         of signal which may be required for sync save.
11493         (rb_playlist_manager_save_playlists_async): Renamed old
11494         save_playlists to save_playlists_async.  Use g_atomic.
11495         (rb_playlist_manager_save_playlists): New function to
11496         perform sync saves (symmetric with RhythmDB API).
11497         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
11499         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
11500         Style consistency anality.
11501         (rhythmdb_finalize): Remove save timeout source.
11502         (rhythmdb_set_property, rhythmdb_get_property) 
11503         (rhythmdb_process_events): More anality and keep track of
11504         save timeout source.
11505         (action_thread_main): No need to call g_thread_exit.
11506         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
11507         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
11508         (write_encoded_gvalue, read_encoded_property): La la la.
11510         Fixes #322940.
11512 2005-12-10  James Livingston  <jrl@ids.org.au>
11514         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
11515         non-audio files.
11517 2005-12-10  James Livingston  <jrl@ids.org.au>
11519         * Makefile.am:
11520         * configure.ac: remove the rpm spec files, so that automake works.
11521         oops
11523         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
11524         locking issue
11526 2005-12-09  James Livingston  <jrl@ids.org.au>
11528         * debian/: try to get cvs to actually remove the files
11530 2005-12-09  James Livingston  <jrl@ids.org.au>
11532         * rhythmbox.spec.in:
11533         * debian/: remove the distro package stuff, they are *really* old, and
11534         downstream manage it anyway.
11536 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
11538         Rework play orders to work off query models rather than 
11539         entry views, and track the playing entry themselves rather
11540         than relying on the entry view to do it.  This makes the entry
11541         view mostly just a widget. Closes bug 323612.
11543         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
11544         Use query model rather than entry view to get the number
11545         of entries in playlists.
11547         * rhythmdb/rhythmdb-query-model.{c.h}
11548         (rhythmdb_query_model_tree_path_to_entry),
11549         (rhythmdb_query_model_iter_to_entry),
11550         (rhythmdb_query_model_get_next_from_entry),
11551         (rhythmdb_query_model_get_previous_from_entry):
11552         New utility functions for iterating through query models.
11553         (rhythmdb_query_model_compute_status_normal):
11554         Have one copy of this code, not four.
11556         * shell/rb-play-order.{c,h}:
11557         Add signals for when next/previous availability changes, and
11558         when the playing entry is removed, and add a property for
11559         the current playing entry.  Add gtkdoc comments too.
11560         (rb_play_order_class_init): Add new property and signals.
11561         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
11562         (rb_play_orer_query_model_changed_cb),
11563         (rb_play_order_query_model_changed): 
11564         Use query model rather than entry view.
11565         (rb_play_order_set_property), (rb_play_order_get_property):
11566         Handle new playing-entry property.  Call playing_entry_changed virtual
11567         method so subclasses can do any processing required.
11568         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
11569         (rb_play_order_set_playing_entry):
11570         Just use the playing-entry property.
11571         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
11572         Utility methods for subclasses.
11573         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
11574         Update next/previous availability, check if the playing entry
11575         was removed.
11576         (default_playing_entry_removed):
11577         Keep the current behaviour of just stopping playback when the 
11578         playing entry is deleted.
11579         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
11580         these for subclasses that don't have go_next/go_previous, but do
11581         have get_next/get_previous.
11582         (rb_play_order_update_have_next_previous): Emit signal if the
11583         availability of next/previous entries has changed.
11585         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
11586         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
11587         Use G_DEFINE_TYPE, replace entry view iterator with query model 
11588         methods.
11589         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
11590         on the last song in the shuffled order, go back to the start. This
11591         means if you press 'play' again you'll get the whole order again, not
11592         just one song.
11594         * shell/rb-shell-player.c:
11595         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
11596         play order rather than the entry view.
11597         (rb_shell_player_set_property): Update the play order when the
11598         selected source changes and we aren't playing anything.
11599         (rb_shell_player_sync_play_order): Copy the playing entry across to
11600         the new play order so playback continues from the same song, and watch
11601         for updates to have_next/have_previous.
11602         (rb_shell_player_play_order_update_cb): Enable/disable the
11603         next/previous actions when next/previous entry availability changes.
11604         (rb_shell_player_jump_to_current): Just use the play order's idea of
11605         what's playing, not the entry view's; if not playing anything, clear
11606         the selection, so when a playlist ends and you hit play again, it'll
11607         start at the start rather than the end.
11608         (rb_shell_player_do_previous): restructure a bit.
11609         (rb_shell_player_do_next): restructure, jump to new playing entry in
11610         an idle handler instead of directly.
11611         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
11612         song if there is one.
11613         (rb_shell_player_playpause): Jump to playing song, don't update the
11614         play order if we got the song from the selection.
11615         (rb_shell_player_playing_entry_deleted_cb): Not needed.
11616         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
11617         looks after next/previous actions now.  Don't break if called while
11618         there is no selected source.
11619         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
11620         (rb_shell_player_set_playing_source_internal),
11621         (rb_shell_player_error): No need to track the attempted playing entry
11622         any more, since the play order does that.
11624         * shell/rb-shell.c:
11625         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
11626         rb_shell_player_get_playing_entry rather than going through the entry
11627         view.
11629         * shell/rb-statusbar.c (rb_statusbar_set_property),
11630         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
11631         than the entry view for status bar text changes.
11632         (rb_statusbar_sync_status): Ask the query model directly
11634         * sources/rb-source.{c}: Add query model property.
11635         (default_get_status): Get status text from query model, should be
11636         suitable for most sources.
11637         (rb_source_set_property): Listen for changes to the query model 
11638         to update the status text.
11639         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
11640         (idle_emit_status_changed): Emit status-changed signals when query
11641         model changes. 
11643         * sources/rb-library-source.c, sources/rb-podcast-source.c:
11644         (impl_get_status): Not needed, RBSource does this now
11645         (rb_library_source_do_query) (rb_podcast_source_do_query): 
11646         Update RBSource's query model reference.
11648         * sources/rb-playlist-source.c:
11649         Remove query-model property, since RBSource has one now
11650         (impl_get_status): Not needed, RBSource does this now
11651         (rb_playlist_source_row_deleted): Use query model iterator helper
11652         function.
11653         (rb_playlist_source_set_query_model): Update RBSource's query model
11654         reference too.
11656         * sources/rb-iradio-source.c:
11657         (impl_get_status): Ask the query model directly.
11658         (rb_iradio_source_do_query): Update RBSource's query model reference
11659         when we create a new query.
11661         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
11662         Use query model rather than entry view.
11664         * widgets/rb-entry-view.{c,h}: 
11665         Remove playing_entry_deleted signal (now in play order).
11666         (entry_from_tree_path), (entry_from_tree_iter): Not needed
11667          as RhythmDBQueryModel has equivalent helper functions.
11668         (rb_entry_view_*): Use query model helpers instead of the above two
11669         functions.
11671 2005-12-09  James Livingston  <jrl@ids.org.au>
11673         * configure.ac:
11674         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
11675         (rb_recorder_enabled):
11676         * shell/rb-removable-media-manager.c: (poll_tray_opened):
11677         * sources/rb-playlist-source-recorder.c:
11678         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
11679         whether libnautilusburn has the _drive_unref function, and if so use
11680         it. Stops it complaining about deprecated API.
11682 2005-12-09  James Livingston  <jrl@ids.org.au>
11684         * configure.ac: drop the minimum gstreamer version back down, it
11685         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
11687 2005-12-09  James Livingston  <jrl@ids.org.au>
11689         * widgets/rb-song-info.c: (rb_song_info_class_init),
11690         (rb_song_info_show), (rb_song_info_constructor),
11691         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
11692         (rb_song_info_forward_clicked_cb): save metadata changes when the
11693         Next/Previous buttons are pressed (closes bug 320952). use
11694         G_DEFINE_TYPE.
11696 2005-12-09  James Livingston  <jrl@ids.org.au>
11698         Patch by: <jonathan@kaolin.hn.org>
11700         * sources/rb-iradio-source.c:
11701         (stations_view_drag_data_received_cb):
11702         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
11703         of urls. Fixes bug 323610.
11705 2005-12-09  James Livingston  <jrl@ids.org.au>
11707          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
11708          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
11710         * configure.ac:
11711         * metadata/rb-metadata-gst.c:
11712         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
11713         (rb_player_construct), (rb_player_new):
11714         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
11715         (rb_recorder_gst_signal_error), (pipe_message),
11716         (rb_recorder_new_pad_cb), (rb_recorder_construct),
11717         (rb_recorder_new):
11718         * shell/main.c: (main):
11719         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
11720         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
11722 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11724         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
11726         * shell/rb-playlist-manager.c:
11727           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
11728           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
11729           (rb_playlist_manager_set_automatic_playlist),
11730           (rb_playlist_manager_cmd_new_automatic_playlist),
11731           (rb_playlist_manager_cmd_edit_automatic_playlist):
11732            Use new playlist subclasses.
11733           (rb_playlist_manager_save_playlists): Only read the dirty flag
11734            for local playlists, minor pointless reformatting
11736         * sources/Makefile.am: add new files
11738         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
11739           split lots of stuff out into two
11740           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
11741           make RBPlaylistSource abstract, add virtual methods for showing a
11742           popup for the entry view and saving the playlist to XML.
11743           Other stuff is subclass-specific, or already virtual in RBSource.
11745         * sources/rb-playlist-xml: Define playlist XML tags and attributes
11746           in one place, since they're used across three source files now
11748         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
11749           Use new static playlist class
11751         * sources/rb-ipod-source.c: (add_rb_playlist):
11752           Use new static playlist class
11754         * sources/rb-static-playlist-source.{c,h},
11755         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
11756         files.
11758         * po/POTFILES.in: add new files
11760 2005-12-07  James Livingston  <jrl@ids.org.au>
11762         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
11763         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
11764         metadata loads not attempt to write changes to disk.
11766 2005-12-07  James Livingston  <jrl@ids.org.au>
11768         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11770         * data/glade/song-info-multiple.glade:
11771         * widgets/rb-song-info.c: (rb_song_info_constructor),
11772         (rb_song_info_sync_entries_multiple): allow the year to be changed on
11773         multiple songs at once.
11775 2005-12-06  James Livingston  <jrl@ids.org.au>
11777         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
11778         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
11780 2005-12-06  James Livingston  <jrl@ids.org.au>
11782         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
11783         names rather than adding a horizontal scroll bar.
11785 2005-12-06  James Livingston  <jrl@ids.org.au>
11787         * rhythmdb/rhythmdb-query-model.c:
11788         (rhythmdb_query_model_update_limited_entries),
11789         (rhythmdb_query_model_drag_data_received): remove some pointless debug
11790         messages
11792         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
11793         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
11794         always hide rather than remove DB entries, which will make RB not lose
11795         information when tag editing happens or people move files to trash and
11796         then change their mind. Also fix some races where the monitoring code
11797         would notice the temporary files generated by saving metadata.
11799 2005-12-05  William Jon McCann  <mccann@jhu.edu>
11801         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
11802         Hide internals and add tooltips.
11803         (rb_song_display_box_size_allocate): Hide internals.
11804         (sanitize_string, info_url): Copied from rb-header.
11805         (rb_song_display_box_sync): New public function.
11807         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
11808         (rb_header_init): Use a separate row for the seek bar.
11809         (rb_header_finalize): Don't unref widgets.
11810         (rb_header_sync): Use rb_song_display_box_sync.
11811         (rb_header_set_urldata)
11812         (rb_header_set_show_artist_album): Hide instead of remove widgets.
11813         (rb_header_set_show_position_slider): Set visibility of seek bar.
11814         (rb_header_set_show_timeline): Set sensitivity of seek bar.
11815         (rb_header_get_elapsed_string): Don't shift when you first start playback.
11817         * shell/rb-statusbar.c (rb_statusbar_init)
11818         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
11820         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
11821         (rb_shell_constructor): Remove hseparator.  Monitor
11822         toolbar visibility settings.  Add toolbar.  Add
11823         volume button to toolbar.  Add tooltips for volume button.
11824         (rb_shell_view_toolbar_changed_cb) 
11825         (rb_shell_sync_toolbar_visibility)
11826         (toolbar_visibility_changed_cb): Set visibility of
11827         toolbar.
11828         (rb_shell_sync_smalldisplay): Set the toolbar style to
11829         icons only when in small display mode.
11830         (rb_shell_volume_widget_changed_cb): Save volume setting.
11832         * shell/rb-shell-player.c (rb_shell_player_constructor):
11833         Remove pause and stop actions.  Make play action "important"
11834         so that text is visible in horizontal toolbar position.
11835         Remove control buttons.
11836         (rb_shell_player_init) 
11837         (rb_shell_player_sync_song_position_slider_visibility):
11838         Set visbibility of seek bar.
11839         (rb_shell_player_cmd_play, rb_shell_player_playpause):
11840         Make play action a toggle.
11841         (rb_shell_player_sync_volume): Volume control moved
11842         to player.
11843         (gconf_song_position_slider_visibility_changed):
11844         Set visbibility of seek bar.
11845         (rb_shell_player_sync_buttons):
11846         Set sensitivity of actions instead of buttons.
11847         (rb_shell_player_playing_changed_cb): Add callback
11848         for player notify::playing changes.
11850         * lib/rb-preferences.h: Add hide toolbar and seek
11851         bar key names.
11853         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
11854         seek bar menu items.  Remove pause and stop actions
11855         from the control menu.  Add a toolbar.
11857         * data/rhythmbox.schemas: Add toolbar_hidden
11858         song_position_slider_hidden keys.
11860         Patch by: James Livingston  <jrl@ids.org.au>
11861                   William Jon McCann  <mccann@jhu.edu>
11862         Fixes #316238.
11864 2005-12-05  James Livingston  <jrl@ids.org.au>
11866         * data/glade/library-prefs.glade:
11867         * data/rhythmbox.schemas:
11868         * lib/rb-preferences.h:
11869         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
11870         (rhythmdb_sync_library_location):
11871         * sources/rb-library-source.c: (rb_library_source_class_init),
11872         (rb_library_source_finalize), (rb_library_source_constructor),
11873         (impl_get_config_widget), (rb_library_source_preferences_sync),
11874         (rb_library_source_watch_toggled_cb): allow people to disable library
11875         monitoring, because with nothing set the file chooser button selects
11876         the Home folder (and hence that will get monitored).
11878 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
11880         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
11881         attempt to fix problem with RSS parsing showing invalid feed types.
11882         Fixes bug 323153
11884 2005-12-04  James Livingston  <jrl@ids.org.au>
11886         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
11887         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
11888         importing a remote directory not block the UI.
11890 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
11892         * data/glade/podcast-feed-properties.glade:
11893         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
11895 2005-12-04  James Livingston  <jrl@ids.org.au>
11897         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
11899         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
11900         to && to fix a mistake in the earlier podcast patch.
11902 2005-12-03  James Livingston  <jrl@ids.org.au>
11904         * data/glade/podcast-new.glade:
11905         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
11906         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
11908         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
11909         GValue, which stops occasional errors.
11911         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
11912         compile issue.
11914 2005-12-03  James Livingston  <jrl@ids.org.au>
11916         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
11918         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
11919         crasher with some podcasts feeds.
11921 2005-12-03  James Livingston  <jrl@ids.org.au>
11923         * data/rhythmbox.schemas: fix the gconf schema
11925 2005-12-03  James Livingston  <jrl@ids.org.au>
11927         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
11928         add a selection timeout to the sourcelist. This lets you hold a track
11929         over the playlist source, and then have the view switch so you can
11930         insert the track in the middle of the playlist. Closes bug 323044.
11932         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
11933         (select_on_drag_timeout), (remove_select_on_drag_timeout),
11934         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
11935         (rb_tree_dnd_add_drag_dest_support):
11936         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
11937         timeout.
11939         * sources/rb-sourcelist-model.c:
11940         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
11941         the source list.
11943 2005-12-02  Bastien Nocera  <hadess@hadess.net>
11945         * data/glade/audioscrobbler-prefs.glade: add a space before the web
11946         links, so that the text doesn't touch the button
11948 2005-12-02  James Livingston  <jrl@ids.org.au>
11950         Add full support for gnome-vfs remote files. Closes bug 140355.
11952         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
11953         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
11954         for authentication information from the user doesn't block the UI.
11956         (rhythmdb_entry_set_visibility): don't emit the signal twice.
11958         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
11959         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
11960         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
11961         (rhythmdb_process_stat_event), (emit_load_error_idle),
11962         (rhythmdb_process_metadata_load),
11963         (rhythmdb_process_queued_entry_set_event),
11964         (rhythmdb_process_file_created_or_modified),
11965         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
11966         (queue_stat_uri), (add_thread_main),
11967         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
11968         (rhythmdb_load), (rhythmdb_save_thread_main),
11969         (threadsafe_entry_set), (rhythmdb_query_internal),
11970         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
11971         (rhythmdb_do_full_query_internal),
11972         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
11973         (rhythmdb_volume_unmounted_cb),
11974         (rhythmdb_check_changed_file): trivial changes to support the
11975         asynchronous stats.
11977         * shell/main.c: (main): activate the authentication manager.
11979         * shell/rb-playlist-manager.c:
11980         (rb_playlist_manager_cmd_load_playlist),
11981         (rb_playlist_manager_cmd_save_playlist):
11982         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
11983         (rb_shell_cmd_add_file_to_library):
11984         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
11985         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
11986         remote files.
11988 2005-12-02  James Livingston  <jrl@ids.org.au>
11990         * shell/rb-playlist-manager.c: makes playlist menu items use the
11991         elipses correctly. Fixes bug 322283.
11993 2005-12-02  James Livingston  <jrl@ids.org.au>
11995         * shell/rb-playlist-manager.c:
11996         (rb_playlist_manager_load_playlists): fix silly mistake
11998 2005-12-02  James Livingston  <jrl@ids.org.au>
12000         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
12001         print out metadata-write unless --debug was passed.
12003         * rhythmdb/rhythmdb.c: (rhythmdb_load):
12004         * shell/rb-playlist-manager.c:
12005         (rb_playlist_manager_load_playlists): block writes to disk if they are
12006         still being loaded.
12008 2005-12-02  James Livingston  <jrl@ids.org.au>
12010         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
12011         ctrl-T, because Ctrl-D is used by "small mode"
12013 2005-12-02  James Livingston  <jrl@ids.org.au>
12015         * shell/rb-shell-preferences.c:
12016         (rb_shell_preferences_append_view_page):
12017         * sources/rb-library-source.c: (impl_get_config_widget):
12018         * sources/rb-podcast-source.c: (impl_get_config_widget):
12019         * sources/rb-source.c: (rb_source_get_config_widget):
12020         * sources/rb-source.h: Make the preference actually work.
12022         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
12023         if Rhythmbox is being run for the first time.
12025 2005-12-02  James Livingston  <jrl@ids.org.au>
12027         Add support for Rhythmbox to watch your library, and automatically add
12028         new tracks. Fixes bug 160159.
12030         * data/glade/library-prefs.glade: add "library location" preference
12031         * data/rhythmbox.schemas: add gconf key for the library location
12033         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
12034         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
12035         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
12036         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
12037         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
12038         (rhythmdb_load_thread_main), (rhythmdb_load),
12039         (monitor_subdirectory), (monitor_library_directory),
12040         (monitor_entry_file), (rhythmdb_sync_library_location),
12041         (library_location_changed_cb), (rhythmdb_check_changed_file),
12042         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
12043         specifiec in the gconf key for new additions. Also fix monitoring code
12044         so that it works properly, and notices deletions.
12046         * lib/rb-preferences.h:
12047         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
12048         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
12049         * shell/rb-audioscrobbler.h:
12050         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
12051         (rb_shell_preferences_append_view_page),
12052         (rb_shell_preferences_new):
12053         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
12054         it's preferences pane, so that we don't need #ifdef's through
12055         rb-shell-preferences.
12057         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
12058         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
12059         "preferences" property, so that sources can acccess it. This is needed
12060         because the library location pref needs to take effect when the window
12061         is closed.
12063         * sources/rb-library-source.c:
12064         (rb_library_source_library_location_changed),
12065         (rb_library_source_dispose), (rb_library_source_finalize),
12066         (rb_library_source_constructor), (impl_get_config_widget),
12067         (rb_library_source_preferences_sync),
12068         (rb_library_source_process_library_location_change),
12069         (rb_library_source_prefs_update),
12070         (rb_library_source_process_library_handle_selection),
12071         (rb_library_source_library_location_cb): set up and control the
12072         "library location" preference.
12074         * sources/rb-audiocd-source.c:(rb_source_class_init):
12075         * sources/rb-source.c: (rb_source_class_init): remove some pointless
12076         code.
12078 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12080         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
12081         (rb_feed_podcast_properties_dialog_update_title): 
12082         * data/glade/podcast-feed-properties.glade:
12083         Make the feed properties dialog consistent with the podcast
12084         properties dialog.
12086 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12088         * metadata/.cvsignore: 
12089         * po/.cvsignore: 
12090         * podcast/.cvsignore: Updated.
12092         * shell/main.c (main): Support DBus 0.6 flags.
12094 2005-11-30  Bastien Nocera  <hadess@hadess.net>
12096         * data/ui/rhythmbox-ui.xml:
12097         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
12098         (rhythmbd_entry_move_to_trash_set_error),
12099         (rhythmdb_entry_move_to_trash):
12100         * rhythmdb/rhythmdb.h:
12101         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
12102         (rb_shell_clipboard_cmd_delete),
12103         (rb_shell_clipboard_cmd_move_to_trash):
12104         * sources/rb-library-source.c: (rb_library_source_class_init),
12105         (impl_delete), (impl_move_to_trash):
12106         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12107         (impl_delete), (impl_move_to_trash):
12108         * sources/rb-removable-media-source.c:
12109         (rb_removable_media_source_class_init):
12110         * sources/rb-source.c: (rb_source_class_init),
12111         (rb_source_can_move_to_trash), (rb_source_delete),
12112         (rb_source_move_to_trash):
12113         * sources/rb-source.h:
12114         Add move_to_trash member for the sources, implement move to trash for
12115         the library and playlists
12116         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
12117         local files to the trash, and deleting them from the database
12118         (Closes: #315389)
12120 2005-11-30  William Jon McCann  <mccann@jhu.edu>
12122         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
12123         (rb_tray_icon_init, rb_tray_icon_finalize): 
12124         * shell/rb-statusbar.c (rb_statusbar_class_init) 
12125         (rb_statusbar_init, rb_statusbar_finalize): 
12126         * shell/rb-source-header.c (rb_source_header_class_init) 
12127         (rb_source_header_init, rb_source_header_finalize): 
12128         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
12129         (rb_shell_finalize): 
12130         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
12131         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
12132         * shell/rb-shell-player.c (rb_shell_player_class_init) 
12133         (rb_shell_player_init, rb_shell_player_finalize): 
12134         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
12135         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
12136         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
12137         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
12138         * shell/rb-play-order.c (rb_play_order_class_init) 
12139         (rb_play_order_init, rb_play_order_finalize): 
12140         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
12141         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
12142         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
12143         (rb_random_play_order_init, rb_random_play_order_finalize): 
12144         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
12145         (rb_history_finalize): 
12146         * shell/rb-commander.c (rb_commander_class_init) 
12147         (rb_commander_init, rb_commander_finalize): 
12148         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
12149         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
12150         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
12151         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
12152         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
12153         (rb_podcast_properties_dialog_init) 
12154         (rb_podcast_properties_dialog_finalize): 
12155         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
12156         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
12157         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
12158         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
12159         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
12160         (rb_feed_podcast_properties_dialog_init) 
12161         (rb_feed_podcast_properties_dialog_finalize): 
12162         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
12163         (rb_metadata_init, rb_metadata_finalize): 
12164         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
12165         (rb_station_properties_dialog_init) 
12166         (rb_station_properties_dialog_finalize): 
12167         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
12168         (rb_daap_share_init, rb_daap_share_dispose): 
12170         Use g_type_class_add_private in all classes. Closes bug 313688.
12171         
12172 2005-11-30  James Livingston  <jrl@ids.org.au>
12174         patch by: William Jon McCann <mccann@jhu.edu> to use
12175         g_type_class_add_private in all classes. Closes bug 313688.
12177         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
12178         (rb_thread_finalize):
12179         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
12180         (rb_player_finalize):
12181         * rhythmdb/rhythmdb-property-model.c:
12182         (rhythmdb_property_model_class_init),
12183         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
12184         * rhythmdb/rhythmdb-query-model.c:
12185         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
12186         (rhythmdb_query_model_finalize):
12187         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
12188         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
12189         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
12190         (rhythmdb_finalize):
12191         * sources/rb-daap-source.c: (rb_daap_source_class_init),
12192         (rb_daap_source_init), (rb_daap_source_dispose):
12193         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12194         (rb_iradio_source_init), (rb_iradio_source_finalize):
12195         * sources/rb-library-source.c: (rb_library_source_class_init),
12196         (rb_library_source_init), (rb_library_source_finalize):
12197         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12198         (rb_playlist_source_init), (rb_playlist_source_dispose):
12199         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
12200         (rb_podcast_source_init), (rb_podcast_source_finalize):
12201         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12202         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
12203         * sources/rb-sourcelist-model.h:
12204         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12205         (rb_sourcelist_init), (rb_sourcelist_finalize):
12206         * sources/rb-sourcelist.h:
12207         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
12208         * widgets/rb-cell-renderer-rating.c:
12209         (rb_cell_renderer_rating_init),
12210         (rb_cell_renderer_rating_class_init),
12211         (rb_cell_renderer_rating_finalize):
12212         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
12213         (rb_druid_finalize):
12214         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12215         (rb_entry_view_init), (rb_entry_view_finalize):
12216         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
12217         (rb_header_finalize):
12218         * widgets/rb-load-failure-dialog.c:
12219         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
12220         (rb_load_failure_dialog_finalize):
12221         * widgets/rb-property-view.c: (rb_property_view_class_init),
12222         (rb_property_view_init), (rb_property_view_finalize):
12223         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
12224         (rb_rating_finalize):
12225         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
12226         (rb_search_entry_init), (rb_search_entry_finalize):
12227         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12228         (rb_simple_view_init), (rb_simple_view_finalize):
12229         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
12230         (rb_song_display_box_init), (rb_song_display_box_finalize):
12231         * widgets/rb-song-info.c: (rb_song_info_class_init),
12232         (rb_song_info_init), (rb_song_info_finalize):
12233         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
12234         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
12236 2005-11-30  James Livingston  <jrl@ids.org.au>
12238         * iradio/rb-station-properties-dialog.c:
12239         (rb_station_properties_dialog_init),
12240         (rb_station_properties_dialog_new):
12241         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
12242         * lib/rb-glade-helpers.h:
12243         * podcast/rb-feed-podcast-properties-dialog.c:
12244         (rb_feed_podcast_properties_dialog_init),
12245         (rb_feed_podcast_properties_dialog_new):
12246         * podcast/rb-podcast-properties-dialog.c:
12247         (rb_podcast_properties_dialog_init),
12248         (rb_podcast_properties_dialog_new):
12249         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
12250         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
12251         * sources/rb-library-source.c: (impl_get_config_widget):
12252         * sources/rb-playlist-source-recorder.c:
12253         (rb_playlist_source_recorder_init):
12254         * widgets/rb-song-info.c: (rb_song_info_construct_single),
12255         (rb_song_info_constructor): create a single rb_glade_boldify_label()
12256         in rb-glade-helpers, rather than having eight implementation
12257         throughout the code.
12259 2005-11-30  James Livingston  <jrl@ids.org.au>
12261         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
12262         * lib/rb-util.h:
12263         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
12264         move the duration->string function into rb-utils, as it gets used in a
12265         few places.
12267         patch by: William Jon McCann <mccann@jhu.edu>
12269         * data/glade/podcast-properties.glade:
12270         * podcast/rb-podcast-properties-dialog.c:
12271         (rb_podcast_properties_dialog_init),
12272         (rb_podcast_properties_dialog_update),
12273         (rb_podcast_properties_dialog_update_title),
12274         (rb_podcast_properties_dialog_update_feed),
12275         (rb_podcast_properties_dialog_update_duration),
12276         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
12277         info dialog look more like the song info dialog. Use the same "Feed"
12278         value that is displayed in the treeview (ie. the album field), displays
12279         the duration, uses units in the bitrate field, and sort the fields in
12280         the same order.
12282 2005-11-29  James Livingston  <jrl@ids.org.au>
12284         * rhythmdb/rhythmdb-marshal.list:
12285         * rhythmdb/rhythmdb.h:
12286         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
12287         (emit_load_error_idle), (rhythmdb_process_metadata_load),
12288         (entry_to_rb_metadata), (emit_save_error_idle),
12289         (action_thread_main): emit error signal when metadata write fails.
12291         * shell/rb-shell.c: (rb_shell_constructor),
12292         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
12293         "metadata save" error and display it to the user.
12295 2005-11-29  James Livingston  <jrl@ids.org.au>
12297         * data/ui/rhythmbox-ui.xml:
12298         * sources/rb-podcast-source.c:
12299         (rb_podcast_source_songs_show_popup_cb),
12300         (rb_podcast_source_cmd_download_post),
12301         (rb_podcast_source_cmd_cancel_download): split download and cancel
12302         download commands. Replace usage of "Post" with "Esisode". Fixes bug
12303         321653.
12305 2005-11-18  William Jon McCann  <mccann@jhu.edu>
12307         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
12308         title on alert dialogs per the HIG.
12310         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
12311         the term Burn.
12312         (free_song_list): Routine to free song list.
12313         (rb_playlist_source_recorder_finalize): Use free_song_list.
12314         (rb_playlist_source_recorder_add_from_model): Return FALSE
12315         if unable to add all songs.  Check that duration of all
12316         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
12317         Fixes #321753.
12319         * sources/rb-playlist-source-recorder.c (check_media_length)
12320         (rb_playlist_source_recorder_start): Only check the duration
12321         and current media if the playlist length is longer than a
12322         standard CD (74 min).  Otherwise, just let the Recorder do the
12323         check.
12324         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
12325         drive at init.
12326         (rb_recorder_set_device): Don't leak drives.
12327         (rb_recorder_get_media_length): Use drive that was already set.
12328         (rb_recorder_burn): Let the recorder handle checking media type/size.
12329         Fixes bug 321754.
12331 2005-11-29  James Livingston  <jrl@ids.org.au>
12333         * rhythmdb/rhythmdb-query-model.c:
12334         (rhythmdb_query_model_set_sort_order):
12335         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
12336         emitting the tree-model "resorted" signal.
12338         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12339         (rb_entry_view_finalize), (rb_entry_view_set_property),
12340         (rb_entry_view_constructor), (rb_entry_view_resort_model):
12341         * widgets/rb-entry-view.h: add a function to resort the entry view,
12342         using the above function.
12344         * sources/rb-iradio-source.c:
12345         (rb_iradio_source_songs_view_sort_order_changed_cb):
12346         * sources/rb-library-source.c: (rb_library_source_finalize),
12347         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
12348         * sources/rb-playlist-source.c:
12349         (rb_playlist_source_songs_sort_order_changed_cb):
12350         * sources/rb-podcast-source.c:
12351         (rb_podcast_source_posts_view_sort_order_changed_cb),
12352         (rb_podcast_source_do_query): use the above function instead of
12353         re-creating the query model. This makes changing the sorting an order
12354         of magnitude faster, as it uses a single resorted signal rather than
12355         deleting and re-adding everything (which emits 2N signals). Closes bug
12356         315389.
12358 2005-11-29  James Livingston  <jrl@ids.org.au>
12360         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
12361         autosizing, which results in large speedups. Closes bug 312122.
12363         * po/ja.po: change the date format, so that it is a constant width
12365         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
12366         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
12367         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
12368         (rb_entry_view_constructor): make columns use fixed widths,
12369         disable column autosizing, and enable fixed-height mode.
12371         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
12372         (rb_entry_view_get_time_date_column_sample):
12373         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
12374         and get the canonical date format for the locale.
12376 ============ Version 0.9.2
12378 2005-11-28  James Livingston  <jrl@ids.org.au>
12380         * configure.ac: bump version to 0.9.2
12381         * NEWS: update with changes for 0.9.2
12383 2005-11-28  James Livingston  <jrl@ids.org.au>
12385         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12387         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
12388         Disable saving, renaming and delting for DAAP playlists.
12389         Fixes bug 322627.
12391 2005-11-28  James Livingston  <jrl@ids.org.au>
12393         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
12394         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
12395         prevent bug 322619.
12397         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12398         * sources/rb-removable-media-source.c:
12399         (rb_removable_media_source_class_init): fix ipod browser visibility
12400         problem.
12402 2005-11-28  James Livingston  <jrl@ids.org.au>
12404         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
12405         Avahi 0.6 support actually work. Fixes bug 322519.
12407 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
12409         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
12410         avahi is specified in --with-mdns
12412 2005-11-27  James Livingston  <jrl@ids.org.au>
12414         patch by: Bastien Nocera <hadess@hadess.net>
12416         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
12417         not the private one. Fixes bug 322485.
12419 2005-11-26  James Livingston  <jrl@ids.org.au>
12421         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
12422         Avahi 0.6, as well as 0.5.
12424         * configure.ac:
12425         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
12426         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
12427         (add_service):
12429 2005-11-25  James Livingston  <jrl@ids.org.au>
12431         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
12432         321926.
12434 2005-11-25  James Livingston  <jrl@ids.org.au>
12436         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
12437         correct type for checking the date against 0. Stops a warning when
12438         saving metadata.
12440 2005-11-25  James Livingston  <jrl@ids.org.au>
12442         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
12443         adjustment to be inside the element's limits. Without this songs that
12444         have large ReplayGain values will recieve no increase because they are
12445         outside the acceptable range, causing them to remain quiet.
12447 2005-11-25  James Livingston  <jrl@ids.org.au>
12449         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12450         * sources/rb-daap-source.c: (rb_daap_source_class_init):
12451         * sources/rb-ipod-source.c:
12452         * sources/rb-source.h:
12453         * sources/rb-library-source.h:
12454         * sources/rb-library-source.c: (rb_library_source_class_init),
12455         (rb_library_source_constructor),
12456         (rb_library_source_has_first_added_column),
12457         (rb_library_source_has_drop_support):
12458         * sources/rb-removable-media-source.c:
12459         (rb_removable_media_source_class_init): Make library-derived sources
12460         not show the Date Added column, as it doesn't make sense. Fixes bug
12461         322269.
12462         Move some of the feature funcs from the ipod and audio cd sources up to
12463         the removable media source.
12465 2005-11-24  James Livingston  <jrl@ids.org.au>
12467         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
12468         errors. oops.
12470 2005-11-24  James Livingston  <jrl@ids.org.au>
12472         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12473         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
12474         (rb_iradio_source_constructor): Chain up dispose method and use
12475         G_DEFINE_TYPE
12477 2005-11-24  James Livingston  <jrl@ids.org.au>
12479         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
12480         mistake in the last commit that can cause crashes.
12482 2005-11-24  James Livingston  <jrl@ids.org.au>
12484         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
12485         instead of g_printerr.
12487         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
12488         rb_debug instead of g_warning. The message happens every time for
12489         removable media/daap shares, so it's not unusual.
12491 2005-11-24  James Livingston  <jrl@ids.org.au>
12493         patch by: Tom Parker <palfrey@tevp.net>
12495         * configure.ac: fix libsoup test for enabling daap
12497 2005-11-23  James Livingston  <jrl@ids.org.au>
12499         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
12500         (rb_query_creator_init), (rb_query_creator_constructor),
12501         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
12502         empty row to queries with no criteria. Fixes bug 322078. use
12503         G_DEFINE_TYPE.
12505 2005-11-23  James Livingston  <jrl@ids.org.au>
12507         patch by:  <baptiste.millemathias@gmail.com>
12509         * help/C/quick-reference.xml: update the quick reference to have the
12510         correct key bindings.
12512 2005-11-22  James Livingston  <jrl@ids.org.au>
12514         * sources/rb-library-source.c: (genres_selection_reset_cb),
12515         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
12516         reset the query when all browser selections are removed.
12518 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
12520         * podcast/rb-podcast-manager.c:
12521         (rb_podcast_manager_db_entry_deleted_cb):
12522         Use a custom loop to remove podcast posts, rather than
12523         gtk_tree_model_foreach(), as deleting the entries within
12524         that loop causes the iterator to return the first entry
12525         twice.  Instead, we need to find the next entry before
12526         removing the current one. Fixes bug 321956.
12527         (rb_podcast_manager_entry_remove_cb): No longer needed.
12529 2005-11-22  James Livingston  <jrl@ids.org.au>
12531         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12532         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
12533         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
12535 2005-11-22  James Livingston  <jrl@ids.org.au>
12537         * sources/rb-podcast-source.c:
12538         (rb_podcast_source_post_date_cell_sort_func),
12539         (rb_podcast_source_post_status_cell_sort_func),
12540         (rb_podcast_source_post_feed_cell_sort_func):
12541         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
12542         (rb_entry_view_album_sort_func),
12543         (rb_entry_view_double_ceiling_sort_func),
12544         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
12545         the entry's location as a last resort when sorting, so the sort order
12546         is stable. This will stop entries moving around when two entries have
12547         the same sorting, and one of them gets played.
12549 2005-11-22  James Livingston  <jrl@ids.org.au>
12551         * daapsharing/rb-daap-connection.c:
12552         (rb_daap_connection_class_init), (rb_daap_connection_init),
12553         (connection_get_password), (build_message),
12554         (http_response_handler), (http_get), (handle_server_info),
12555         (handle_login), (handle_update), (handle_database_info),
12556         (handle_song_listing), (handle_playlists),
12557         (handle_playlist_entries), (rb_daap_connection_new),
12558         (rb_daap_connection_constructor), (rb_daap_connection_logout),
12559         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
12560         (rb_daap_connection_get_headers),
12561         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
12562         (rb_daap_connection_set_property),
12563         (rb_daap_connection_get_property):
12564         * daapsharing/rb-daap-connection.h:
12565         * sources/rb-daap-source.c: (rb_daap_source_dispose),
12566         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
12567         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
12568         of destroying the object when it is going to be used by a callback and
12569         fixes a double-free. Fixes bugs 321930 and 322007.
12571 2005-11-22  James Livingston  <jrl@ids.org.au>
12573         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
12574         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
12575         notification if there aren't any. Fixes bug 321968.
12577 2005-11-22  James Livingston  <jrl@ids.org.au>
12579         * rhythmdb/rhythmdb-property-model.c:
12580         (rhythmdb_property_model_set_property),
12581         (rhythmdb_property_model_finalize),
12582         (rhythmdb_property_model_compare),
12583         (rhythmdb_property_model_insert),
12584         (rhythmdb_property_model_delete_prop): Fix property model sorting
12585         where the display and sort keys are different. Fixes bug 321980.
12587 2005-11-22  James Livingston  <jrl@ids.org.au>
12589         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
12590         when import as a file or passed on the command line, and load them as
12591         playlists.
12593 2005-11-22  James Livingston  <jrl@ids.org.au>
12595         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
12597         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
12598         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
12599         a broken daap server. Fixes bug 321919.
12601 2005-11-22  James Livingston  <jrl@ids.org.au>
12603         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
12604         drag-and-drop for both the episodes and feeds list.
12605         
12606         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
12607         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
12608         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
12610         * widgets/rb-property-view.c: (rb_property_view_class_init),
12611         (rb_property_view_set_property), (rb_property_view_get_property),
12612         (rb_property_view_new), (rb_property_view_constructor):
12613         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12614         (rb_simple_view_new), (rb_simple_view_constructor):
12615         * widgets/rb-simple-view.h: add a "draggable" property to property
12616         views and set it to false for the feed list. Fixes bug 321284.
12618 2005-11-22  James Livingston  <jrl@ids.org.au>
12620         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
12622         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
12623         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12624         * sources/rb-ipod-source.c: (add_rb_playlist):
12625         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12626         (rb_playlist_source_set_property),
12627         (rb_playlist_source_get_property), (rb_playlist_source_new),
12628         (impl_receive_drag), (rb_playlist_source_add_location),
12629         (rb_playlist_source_new_from_xml):
12630         * sources/rb-playlist-source.h: give playlists and (optional)
12631         entry-type, and reject entries that don't match. Fixes bug 322006.
12633 2005-11-21  James Livingston  <jrl@ids.org.au>
12635         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
12636         (rb_source_header_finalize): remove the weak references when the
12637         source header is finalised. Stops the callbacks being called after the
12638         object is destroyed.
12640 2005-11-21  James Livingston  <jrl@ids.org.au>
12642         * shell/main.c: (main): don't try to acquite bonobo/dbus when
12643         --no-registration was passed. It causes warnings that make it
12644         impossible to run with --no-registration --g-fatal-warnings
12646 2005-11-21  James Livingston  <jrl@ids.org.au>
12648         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
12649         of strings when they are still in use. Fixes bug 321547.
12651         (rb_daap_connection_destroy): fix memory leak
12653 2005-11-21  James Livingston  <jrl@ids.org.au>
12655         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12656         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
12657         (rb_daap_mdns_resolve_cancel), (publish_cb),
12658         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
12659         support.
12661 2005-11-21  James Livingston  <jrl@ids.org.au>
12663         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
12664         sorting by genre
12666 2005-11-20  James Livingston  <jrl@ids.org.au>
12668         * podcast/rb-podcast-manager.c:
12669         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
12670         that we don't leak thread structures. Fixes bug 321636, and probably
12671         321775.
12673 2005-11-20  James Livingston  <jrl@ids.org.au>
12675         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
12676         (lookup_cd):
12677         * podcast/rb-podcast-manager.c: (start_job),
12678         (rb_podcast_manager_db_entry_deleted_cb),
12679         (rb_podcast_manager_entry_remove_cb):
12680         * podcast/rb-podcast-parse.c: (rb_insert_item),
12681         (rb_podcast_parse_load_feed):
12682         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
12683         * shell/rb-removable-media-manager.c:
12684         (rb_removable_media_manager_append_media_source):
12685         * shell/rb-shell.c: (add_to_library_response_cb):
12686         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
12687         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
12688         * sources/rb-iradio-source.c:
12689         (stations_view_drag_data_received_cb):
12690         * sources/rb-library-source.c: (string_list_equal),
12691         (impl_get_extra_views), (impl_receive_drag):
12692         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
12693         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
12694         (impl_receive_drag):
12695         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
12696         (rb_entry_view_append_column_custom), (harvest_entries):
12697         * widgets/rb-property-view.c:
12698         (rb_property_view_selection_changed_cb):
12699         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
12700         switch from using g_list_append to g_list_prepend. This changes
12701         operations from O(n^2) to O(n), which in cases like deleting a lot of
12702         tracks can give huge improvements in speed. Closes bug 321696.
12704 2005-11-20  James Livingston  <jrl@ids.org.au>
12706         * sources/rb-sourcelist.c: (rb_sourcelist_init),
12707         (rb_sourcelist_update_expander_visibility): fix indenting of child
12708         sources.
12710 2005-11-20  James Livingston  <jrl@ids.org.au>
12712         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12713         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
12714         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
12715         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
12716         (add_service), (entry_group_cb): dynamically allocate memory, rather
12717         than using static variables.
12719         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
12720         re-enable the daap share if the name hasn't changed.
12721         * shell/rb-shell-preferences.c:
12722         (share_name_entry_focus_out_event_cb): don't ask the daap share to
12723         change it's name when the checkbox is disabled. Fixed bug 321748.
12725 2005-11-18  James Livingston  <jrl@ids.org.au>
12727         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
12728         as hidden if it is on the current workspace.
12730 2005-11-17  William Jon McCann  <mccann@jhu.edu>
12732         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
12733         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
12734         (rb_podcast_properties_dialog_parse_time): 
12735         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
12736         (rb_feed_podcast_properties_dialog_parse_time):
12737         Rework the way the last mod time strings are created.  It was using
12738         thread unsafe functions, not creating value UTF, and not not checking
12739         the value of the result before modifying it.  This new method fixes
12740         these problems.
12742 2005-11-18  James Livingston  <jrl@ids.org.au>
12744         Don't reset the search box when viewing a different source, because it
12745         will change what is being played. Closes 321593.
12747         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
12748         the search box
12750         * shell/rb-source-header.c: (rb_source_header_class_init),
12751         (rb_source_header_init), (rb_source_header_finalize): use
12752         G_DEFINE_TYPE.
12754         (rb_source_header_set_property),
12755         (rb_source_header_source_weak_destroy_cb),
12756         (rb_source_header_search_cb): store the search text when leaving a
12757         source and put it in the search box when viewing it again.
12759 2005-11-18  James Livingston  <jrl@ids.org.au>
12761         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
12762         (save_entry):
12763         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
12764         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
12765         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
12766         time stamp.
12768         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
12769         last-seen as the timestamp of the last update of the feed. Don't
12770         re-add episodes that have been deleted. Closes 319759.
12772 2005-11-18  James Livingston  <jrl@ids.org.au>
12774         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
12775         that don't have the day name at the start. Closes 321645.
12777 2005-11-18  James Livingston  <jrl@ids.org.au>
12779         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
12780         (rb_podcast_manager_copy_post),
12781         (rb_podcast_manager_get_podcast_dir):
12782         * podcast/rb-podcast-manager.h:
12783         * sources/rb-podcast-source.c: (impl_get_config_widget),
12784         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
12785         download location switching to / if the prefs were opened before
12786         downloading an episode. Closes 321611.
12788 2005-11-18  James Livingston  <jrl@ids.org.au>
12790         * data/glade/podcast-new.glade:
12791         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12792         (rb_new_podcast_dialog_set_property),
12793         (rb_new_podcast_dialog_get_property),
12794         (rb_new_podcast_dialog_response_cb),
12795         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
12796         for entering new podcast urls in. Closes bug 321610.
12798 2005-11-18  James Livingston  <jrl@ids.org.au>
12800         * sources/rb-podcast-source.c: (construct_query_from_selection),
12801         (rb_podcast_source_do_query): allow podcast list to be re-sorted
12802         without restarting RB. Closes bug 321612.
12804 2005-11-18  James Livingston  <jrl@ids.org.au>
12806         * widgets/rb-entry-view.c: (set_column_visibility),
12807         (rb_entry_view_sync_columns_visible): when changing visibility of one
12808         column, don't hide and re-show all the others. Makes a show/hide
12809         column operation a lot faster.
12811 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
12813         Closes bug 321702.
12815         * iradio/rb-station-properties-dialog.c
12816          (rb_station_properties_dialog_update_bitrate):
12817         Mark the bitrate value as being kbps, using the same
12818         translatable format string as rb-song-info.c
12820         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
12821          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
12823         * shell/rb-shell-player.c (info_available_cb):
12824          Use RB_METADATA_FIELD_BITRATE to update the iradio
12825          station's bitrate value.
12827 2005-11-17  James Livingston  <jrl@ids.org.au>
12829         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
12831         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
12832         free a NULL date.
12834 2005-11-17  James Livingston  <jrl@ids.org.au>
12836         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
12838         * lib/rb-stock-icons.c: emit a single warning rather than multiple
12839         assertions. Lookup the icon size correctly.
12841 2005-11-16  William Jon McCann  <mccann@jhu.edu>
12843         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
12844         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
12845         Fix build errors.
12847 2005-11-16  James Livingston  <jrl@ids.org.au>
12849         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
12850         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
12851         (rb_shell_preferences_sync_column_button): block the toggle signal of
12852         the column checkboxes while setting their initial state. This stops
12853         the visibility being re-set, which causes a lot of time being spent
12854         measuring the columns aagin when opening the prefs window.
12856         Use G_DEFINE_TYPE.
12858 2005-11-16  James Livingston  <jrl@ids.org.au>
12860         * sources/rb-sourcelist.c: (rb_sourcelist_init),
12861         (rb_sourcelist_edit_source_name): don't assume that the editable
12862         source name is in the first column, because it isn't. Fixes bug
12863         320137.
12865 2005-11-16  James Livingston  <jrl@ids.org.au>
12867         * daapsharing/rb-daap-mdns.h:
12868         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
12869         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
12870         parts can know why operations failed. Avahi can report that the daemon
12871         was not running. Howl doesn't do this (yet).
12872         
12873         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
12874         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
12875         (browse_cb): don't display mdns errors to the user, if it wa because
12876         the daemon was not running.
12878 2005-11-16  James Livingston  <jrl@ids.org.au>
12880         * rhythmdb/rhythmdb-property-model.c:
12881         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
12882         (rhythmdb_property_model_compare),
12883         (rhythmdb_property_model_insert),
12884         (rhythmdb_property_model_insert_prop),
12885         (rhythmdb_property_model_delete),
12886         (rhythmdb_property_model_delete_prop),
12887         (rhythmdb_property_model_get_value): use RBRefStrings rather than
12888         copying the string and re-creating the sort key. Saves a little bit of
12889         memory and time.
12891         (rhythmdb_property_model_perform_sync),
12892         (rhythmdb_property_model_sync): perform the count sync in an idle
12893         callback, so that it doesn't have to be re-run once per value when
12894         loading.
12896 2005-11-16  James Livingston  <jrl@ids.org.au>
12898         * rhythmdb/rhythmdb-query-model.c:
12899         (rhythmdb_query_model_entry_deleted_cb),
12900         (rhythmdb_query_model_remove_entry): remove deleted entries from the
12901         limited list. Stops problems if they are deleted, and then things on
12902         the main list are
12904 2005-11-16  James Livingston  <jrl@ids.org.au>
12906         * NEWS: update NEWS
12908         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
12909         button's minimise-to-tray action
12911 2005-11-16  James Livingston  <jrl@ids.org.au>
12913         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
12914         leak. Disable adding newly created files for now, because it doesn't
12915         work properly.
12917         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12918         (rb_sourcelist_model_finalize):
12919         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12920         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
12922 2005-11-16  James Livingston  <jrl@ids.org.au>
12924         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
12925         problem where a GError* wasn't being set to NULL. Actually check the
12926         result.
12928 2005-11-16  James Livingston  <jrl@ids.org.au>
12930         * doc/reference/tmpl/rb-entry-view.sgml:
12931         * doc/reference/tmpl/rhythmbox-unused.sgml:
12932         * doc/reference/tmpl/rhythmdb-query-model.sgml:
12933         * doc/reference/tmpl/rhythmdb.sgml:
12934         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
12935         docs, including the patch that was on bug 
12937         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
12938         API, because it should only be used by RhythmDB itself.
12940 2005-11-16  James Livingston  <jrl@ids.org.au>
12942         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
12943         pausing by middle clicking on the tray icon.
12945 2005-11-15  James Livingston  <jrl@ids.org.au>
12947         * configure.ac: enable audioscrobbler support by default, if libsoup
12948         is present.
12950 2005-11-15  James Livingston  <jrl@ids.org.au>
12952         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12953         Closes bug 321157.
12955         * configure.ac:
12956         * daapsharing/rb-daap-connection.c: (build_message),
12957         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
12958         support gzip encoded daap connections.
12960         (handle_song_listing): fix leak
12962 2005-11-15  James Livingston  <jrl@ids.org.au>
12964         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
12965         * sources/rb-podcast-source.c:
12966         (rb_podcast_source_post_date_cell_data_func): make the date format
12967         translatable again, so that translators can choose the best format for
12968         their locale (%x is huge in some locales)
12970 2005-11-15  James Livingston  <jrl@ids.org.au>
12972         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
12973         (end_job): mark podcast episodes as failed, if the metadata load
12974         fails. This will prevent people playing non-audio enclosures, helping
12975         stop bug 320366.
12977 2005-11-14  James Livingston  <jrl@ids.org.au>
12979         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
12980         video sink to fakesink. This will stop problems (potentially crashers)
12981         that will occur if the file contains a video stream.
12983         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
12984         rather than using magic numbers everywhere.
12986         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
12987         * sources/rb-podcast-source.c:
12988         (rb_podcast_source_songs_show_popup_cb),
12989         (rb_podcast_source_cmd_download_post),
12990         (rb_podcast_source_post_status_cell_data_func),
12991         (rb_podcast_source_entry_activated_cb): use the above constants.
12993         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
12994         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
12995         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
12996         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
12997         (cancel_job), (download_progress_cb),
12998         (rb_podcast_manager_cancel_download),
12999         (rb_podcast_manager_insert_feed): use the constants, and fix a
13000         trhead-safety issue.
13002 2005-11-14  Bastien Nocera  <hadess@hadess.net>
13004         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
13005         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
13006         entry-changed events after stats on startup, fixes entry deleted from
13007         filtered views not disappearing
13009 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
13011         Fix rhythmdb query model refcount and polling problems. Closes bug
13012         321410.
13014         * rhythmdb/rhythmdb-property-model.c:
13015         (rhythmdb_property_model_finalize):
13016          Unref the query model if we have one.
13018         * rhythmdb/rhythmdb-query-model.h:
13019          Remove poll and cancel methods.  Query cancellation
13020          never did anything anyway.
13022         * rhythmdb/rhythmdb-query-model.c:
13023         (rhythmdb_query_model_init): Remove GAsyncQueues.
13024          Replace the GAsyncQueue-based update processing
13025          with a simpler g_idle_add approach; still has the
13026          same queueing properties, but now we don't poll the
13027          model forever and updates are processed immediately.
13029         (_unref_entry), (rhythmdb_query_model_finalize):
13030          Unref DB entries when finalized
13032         (rhythmdb_query_model_has_pending_changes):
13033          Use our own counter to decide if there are updates pending
13035         (rhythmdb_query_model_process_update), (idle_process_update):
13036          Process updates using g_idle_add, or directly if possible
13038         (rhythmdb_query_model_signal_complete),
13039         (rhythmdb_query_model_add_entries):
13040          Change to new update processing method
13042         (idle_poll_model), (rhythmdb_query_model_poll):
13043          Remove GAsyncQueue-based update processing.
13045         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
13046          No need to poll the model any more - updates are processed
13047          directly for synchronous queries.
13049         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
13050          Property model needs to be unref'd here
13052         * sources/rb-library-source.c: (rb_library_source_do_query):
13053          Don't try to cancel the active query (it never worked anyway),
13054          remove obsolete poll call, unref property models as required,
13055          and don't unref the cached 'all' query, since hold on to it.
13056          We unref it when the sort order changes, which forces the query
13057          to be rerun.
13059         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13060          Unref the property model as required
13062         (rb_podcast_source_do_query):
13063          Treat any query with no selected feeds and no search text as
13064          an 'all' query.  Unref query models except for the cached
13065          'all' query, since we hold on to that.
13067         (rb_podcast_source_cmd_update_all):
13068          Unref the property model as required.
13070         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
13071          Don't try to cancel the query (it never worked anyway)
13073         (rb_entry_view_poll_model):
13074          No need for this any more.
13076         * widgets/rb-entry-view.h:
13077          Remove obsolete function rb_entry_view_poll_model
13079         * widgets/rb-property-view.c: (rb_property_view_set_property):
13080          Ref and unref the property model as required.
13082 2005-11-14  James Livingston  <jrl@ids.org.au>
13084         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13086         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
13087         for error. Closes bug 321416.
13089 2005-11-14  James Livingston  <jrl@ids.org.au>
13091         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13093         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
13094         a crasher if a feed's last-post value isn't set. Closes bug 321353.
13096 2005-11-14  James Livingston  <jrl@ids.org.au>
13098         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
13099         * shell/rb-removable-media-manager.c:
13100         (rb_removable_media_manager_set_uimanager):
13101         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
13102         translation domain for GTK action groups.
13104 2005-11-12  James Livingston  <jrl@ids.org.au>
13106         * po/POTFILES.in: remove the old station-new files
13108 2005-11-12  James Livingston  <jrl@ids.org.au>
13110         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13111         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
13112         (save_entry): cause Rhythmbox to re-read the metadata from a file,
13113         when upgrading from a pre-Date-supporting version to a version that
13114         supports Date metadata. Closes bug 320760.
13116 2005-11-12  James Livingston  <jrl@ids.org.au>
13118         Add "update all podcast feeds" command. Closes bug 319954.
13120         * data/ui/rhythmbox-ui.xml: add to source context menu.
13122         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13123         (register_action_group), (rb_podcast_source_cmd_download_post),
13124         (rb_podcast_source_cmd_delete_feed),
13125         (rb_podcast_source_cmd_properties_feed),
13126         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
13127         rather than the shell.
13129         (rb_podcast_source_update_feed_func),
13130         (rb_podcast_source_cmd_update_all): update every feed.
13132 2005-11-11  James Livingston  <jrl@ids.org.au>
13134         * shell/rb-shell-player.c: (rb_shell_player_class_init),
13135         (rb_shell_player_constructor), (rb_shell_player_finalize):
13136         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
13137         others follow the HIG recommentations.
13139 2005-11-11  James Livingston  <jrl@ids.org.au>
13141         * podcast/rb-podcast-manager.c:
13142         (rb_podcast_manager_subscribe_feed): check that the url is valid,
13143         before trying to use it.
13145 2005-11-11  James Livingston  <jrl@ids.org.au>
13147         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
13148         (rb_entry_view_append_column): When sorting by year, sort by album
13149         within a particular year.
13151 2005-11-11  James Livingston  <jrl@ids.org.au>
13153         * NEWS: updates
13155 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
13156         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
13157         spelling of "Language."
13159 2005-11-11  James Livingston  <jrl@ids.org.au>
13161         * rhythmdb/rhythmdb-property-model.c:
13162         (rhythmdb_property_model_row_inserted_cb),
13163         (rhythmdb_property_model_prop_changed_cb),
13164         (rhythmdb_property_model_entry_removed_cb),
13165         (rhythmdb_property_model_insert_prop),
13166         (rhythmdb_property_model_sync): display the count after the "All"
13167         entry of a property model.
13169         * widgets/rb-property-view.c: (rb_property_view_class_init),
13170         (rb_property_view_finalize), (rb_property_view_constructor): use
13171         G_DEFINE_TYPE
13173 2005-11-10  James Livingston  <jrl@ids.org.au>
13175         * rhythmdb/rhythmdb-query-model.c:
13176         (rhythmdb_query_model_remove_entry):
13177         * rhythmdb/rhythmdb-query-model.h: make
13178         rhythmdb_query_model_remove_entry return whether the entry was in the
13179         model.
13181         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
13182         don't add non-SONG entries, as it doesn't really work and can cause
13183         crashes.
13185         (rb_playlist_source_remove_location): assert if the playlist and model
13186         differ on whether the entry is in the playlist
13188 2005-11-10  James Livingston  <jrl@ids.org.au>
13190         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13191         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
13192         (rb_podcast_manager_thread_parse_feed),
13193         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
13194         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
13195         emulating one with a list and mutex. Fixes a couple of threading
13196         issues.
13197         
13198         (rb_podcast_manager_insert_feed): fix some problems with ignoring
13199         updated feeds.
13200         
13201         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
13202         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
13203         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
13204         * podcast/rb-podcast-parse.c: (rb_insert_item),
13205         (rb_podcast_parse_channel_free):
13206         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
13207         fix some typos, and make a bit of code clearer.
13209 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
13211         Make the "delete podcast" dialog better. Closes bug 320899.
13213         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
13214         Add PROP_WINDOW for rb_shell_get_property so we can access the
13215         GtkWindow widget of the main window. 
13216         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
13217         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
13218         podcast feed delete dialog less confusing as well.
13220 2005-11-09  James Livingston  <jrl@ids.org.au>
13222         * shell/rb-removable-media-manager.c:
13223         (rb_removable_media_manager_mount_volume),
13224         (rb_removable_media_manager_scan): Fix a crasher where we were getting
13225         NULL for a cd volume.
13227 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13229         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
13230         method return a gboolean indicating whether the changes
13231         to the entry have already been applied.
13233         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
13234         only modify the entry if impl_entry_set returns FALSE.
13236         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
13237         When setting the location of an entry, update the
13238         hash table mapping locations to entries.
13240 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13242         * data/glade/Makefile.am:
13243         * iradio/Makefile.am:
13244           Remove 'new station' dialog.
13246         * iradio/rb-station-properties-dialog.h:
13247         * sources/rb-iradio-source.c: (impl_song_properties):
13248         * shell/rb-shell.c: (rb_shell_cmd_new_station):
13249          Add 'new station' mode parameter to
13250          rb_station_properties_dialog_new.
13252         * (rb_station_properties_dialog_response_cb),
13253         (rb_station_properties_dialog_create_station):
13254          When in 'new station' mode, create the station
13255          when OK button is pressed.
13257         * iradio/rb-station-properties-dialog.c:
13258         (rb_station_properties_dialog_location_changed_cb):
13259          Only enable OK button if a location is specified
13260         (rb_station_properties_dialog_init),
13261         (rb_station_properties_dialog_new),
13262         (rb_station_properties_dialog_update),
13263         (rb_station_properties_dialog_update_title),
13264         (rb_station_properties_dialog_rated_cb),
13265         (rb_station_properties_dialog_update_play_count),
13266         (rb_station_properties_dialog_update_bitrate),
13267         (rb_station_properties_dialog_update_last_played),
13268         (rb_station_properties_dialog_update_rating),
13269         (rb_station_properties_dialog_update_playback_error),
13270         (rb_station_properties_dialog_show):
13271          Handle 'new station' mode, where there's no current
13272          station to edit.
13274 2005-11-08  James Livingston  <jrl@ids.org.au>
13276         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
13277         keybinding for track columns consistent between library and playlist
13278         sources.
13280 2005-11-07  James Livingston  <jrl@ids.org.au>
13282         * data/ui/rhythmbox-ui.xml:
13283         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
13284         "Edit" item to playlist menu. Closes bug 311470.
13286 2005-11-07  James Livingston  <jrl@ids.org.au>
13288         patch by: Jaap A. Haitsma <jaap@haitsma.org>
13290         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
13291         confirmation to save dialogs, with gtk 2.8 or higher.
13293 2005-11-07 James Livingston  <jrl@ids.org.au>
13294         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
13295         requirement to a general on, because people are going to have it for
13296         the other dependencies.
13298 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
13300         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
13301         delete dialog less confusing.  Use HIG recommended button order.
13302         Closes bug 320840.
13304 2005-11-06  James Livingston  <jrl@ids.org.au>
13306         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
13307         drag-and-drop error.
13308         
13309         * sources/rb-library-source.c: (rb_library_source_constructor): only
13310         add drag-and-drop for the Library itself, subclasses can add support
13311         themselves if they want it.
13313         * sources/rb-removable-media-source.c:
13314         (rb_removable_media_source_class_init): by default removable media
13315         sources do not support dnd
13317 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
13319         * data/glade/station-properties.glade:
13320          Add box containing error icon and error message label
13321         * iradio/rb-station-properties-dialog.c:
13322         (rb_station_properties_dialog_class_init),
13323         (rb_station_properties_dialog_finalize):
13324          Change this class to use G_DEFINE_TYPE
13325         (rb_station_properties_dialog_init),
13326         (rb_station_properties_dialog_update),
13327         (rb_station_properties_dialog_update_playback_error):
13328          Display error icon and message when there is one, and hide the error
13329          box otherwise.
13330         (rb_station_properties_dialog_show): Hack widget show
13331          method to update the visibility of the error info box when showing
13332          the widget.  Otherwise the icon is displayed all the time (same thing
13333          is done in rb-song-info). Closes bug 320749.
13335 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
13337         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
13338         parsing of the duration of podcast episodes from the feed. Closes bug
13339         320748.
13341 2005-11-05  James Livingston  <jrl@ids.org.au>
13343         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
13344         release date metadata ("Year"). Closes bug 166093.
13346         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
13347         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
13348         (rb_metadata_gst_add_tag_data):
13349         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13350         (save_entry):
13351         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
13352         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
13353         (set_props_from_metadata), (rhythmdb_entry_set_internal),
13354         (rhythmdb_prop_get_type):
13355         * rhythmdb/rhythmdb.h: add support for "date" property
13356         
13357         * data/glade/general-prefs.glade:
13358         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
13359         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
13360         (rb_entry_view_append_column):
13361         * widgets/rb-entry-view.h:
13362         * sources/rb-library-source.c: (rb_library_source_constructor):
13363         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
13364         "Year" colums
13366         * data/glade/song-info.glade:
13367         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
13368         (rb_song_info_construct_single), (rb_song_info_constructor),
13369         (rb_song_info_populate_dialog), (rb_song_info_update_year),
13370         (rb_song_info_sync_entry_single): Add "Year" to song info window
13372         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
13373         sorted by year.
13375 2005-11-05  James Livingston  <jrl@ids.org.au>
13377         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
13378         description if it's very long.
13380 2005-11-05  James Livingston  <jrl@ids.org.au>
13382         pathc by: Artem Baguinski <femistofel@gmail.com>
13384         * help/C/Makefile.am:
13385         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
13386         Closes bug 320613.
13388 2005-11-05  James Livingston  <jrl@ids.org.au>
13390         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13392         * daapsharing/rb-daap-share.c: (write_next_chunk),
13393         (message_finished), (databases_cb): Use chunked file loading and
13394         sending in the DAAP server. This should reduce the amount of memory
13395         required to send files to the client.
13397 2005-11-05  James Livingston  <jrl@ids.org.au>
13399         * configure.ac: make the nautilus_burn_drive_door_is_open detection
13400         work better on some systems. Closes 320622.
13402 2005-11-05  James Livingston  <jrl@ids.org.au>
13404         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
13405         homepage, so that users can find out what AudioScrobbler is. Add
13406         access keys.
13408         * data/glade/daap-prefs.glade:
13409         * data/glade/general-prefs.glade:
13410         * data/glade/library-prefs.glade: make the indent be more consistent
13412         * data/glade/podcast-prefs.glade: 
13413         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13414         (impl_get_config_widget): move thing out of code into glade, where
13415         they belong
13417 2005-11-05  James Livingston  <jrl@ids.org.au>
13419         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
13420         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
13422 2005-11-04  James Livingston  <jrl@ids.org.au>
13424         * configure.ac: don't print DAAP configure info twice
13426 2005-11-04  James Livingston  <jrl@ids.org.au>
13428         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13429         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
13430         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
13431         #ifdefs, since we removed the symbol. Oops
13433 2005-11-04  James Livingston  <jrl@ids.org.au>
13435         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
13436         after the connect line, not before. Oops.
13438 2005-11-04  James Livingston  <jrl@ids.org.au>
13440         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
13441         fix some warnings
13443 2005-11-03  James Livingston  <jrl@ids.org.au>
13445         * NEWS: update the news file
13447         * data/glade/general-prefs.glade: make the prefs refer to "time" not
13448         "duration" column.
13450         * data/ui/rhythmbox-ui.xml:
13451         * shell/rb-playlist-manager.c:
13452         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13453         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
13454         and "delete" for feeds.
13456 2005-11-03  James Livingston  <jrl@ids.org.au>
13458         * sources/rb-podcast-source.c: (impl_delete),
13459         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
13460         feed. Closes 319760.
13462 2005-11-03  James Livingston  <jrl@ids.org.au>
13464         Don't start playing from the remote site when a un-downloaded podcast
13465         is activated. Closes 319983.
13466         
13468         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13469         (write_job_data), (download_progress_cb): write the local location as
13470         soon as any data is recieved
13472         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
13473         the mountpoint to NULL for podcast episodes that haven't yet been
13474         downloaded.
13475         
13476         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
13477         start playing a podcast if it hasn't been downloaded.
13478         
13479         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13480         (rb_podcast_source_entry_activated_cb): begin downloading when the
13481         podcast is activated.
13483 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
13485         * data/glade/general-prefs.glade:  Fix capitalization.
13486         * shell/rb-removable-media-manager.c:  Add a mnemonic.
13487         * sources/rb-podcast-source.c:
13488         (rb_podcast_source_songs_show_popup_cb),
13489         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
13491 2005-11-03  James Livingston  <jrl@ids.org.au>
13493         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
13495         * shell/rb-removable-media-manager.c:
13496         (rb_removable_media_manager_mount_volume): don't check network or
13497         autofs mounts, as they're not going to be removable media. Stops
13498         sending lots of warnings to syslog. Closes 320571.
13500         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
13501         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
13502         320570.
13504 2005-11-03  James Livingston  <jrl@ids.org.au>
13506         Add support for playing audio CDs. Metadata lookup is done using
13507         SoundJuicer's MusicBrainz lookup code, which can be switched to using
13508         the library when it gets broken out of S-J.
13509         
13510         Add a "rescan media" menu item, and commands for ejecting removable
13511         media.
13513         Move nautilus-cd-burner from optional to required depenency.
13515         * configure.ac:
13516         * data/ui/rhythmbox-ui.xml:
13517         * metadata/Makefile.am:
13518         + metadata/sj-error.c:
13519         + metadata/sj-error.h:
13520         + metadata/sj-metadata-marshal.list:
13521         + metadata/sj-metadata-musicbrainz.c:
13522         + metadata/sj-metadata-musicbrainz.h:
13523         + metadata/sj-metadata.c:
13524         + metadata/sj-metadata.h:
13525         + metadata/sj-structures.c:
13526         + metadata/sj-structures.h:
13527         * player/Makefile.am:
13528         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
13529         * po/POTFILES.in:
13530         * shell/Makefile.am:
13531         * shell/rb-removable-media-manager.c:
13532         (rb_removable_media_manager_dispose), (poll_tray_opened),
13533         (end_cd_drive_monitor), (begin_cd_drive_monitor),
13534         (rb_removable_media_manager_load_media),
13535         (rb_removable_media_manager_mount_volume),
13536         (rb_removable_media_manager_cmd_eject_medium),
13537         (rb_removable_media_manager_cmd_scan_media),
13538         (rb_removable_media_manager_check_volume),
13539         (rb_removable_media_manager_unmount_volume_swap),
13540         (rb_removable_media_manager_scan):
13541         * sources/Makefile.am:
13542         + sources/rb-audiocd-source.c:
13543         + sources/rb-audiocd-source.h:
13544         * tests/Makefile.am:
13546 2005-11-02  James Livingston  <jrl@ids.org.au>
13548         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13550         * sources/rb-iradio-source.c:
13551         (stations_view_drag_data_received_cb):
13552         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
13553         don't crash when the second uri is missing frm the drop, which
13554         browsers sometimes do.
13556 2005-11-01  James Livingston  <jrl@ids.org.au>
13558         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13559         (rb_podcast_manager_insert_feed):
13560         * podcast/rb-podcast-manager.h:
13561         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
13562         (rb_set_item_value), (rb_validate_item_propert),
13563         (rb_podcast_parse_date), (rb_podcast_parse_time):
13564         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
13565         from the feed.
13567 2005-10-31  James Livingston  <jrl@ids.org.au>
13569         * ChangeLog:
13570         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
13571         huge
13573 2005-10-31  James Livingston  <jrl@ids.org.au>
13575         * sources/rb-podcast-source.c:
13576         (rb_podcast_source_post_date_cell_data_func): generate the date string
13577         in a way that is correct in all locales.
13578         
13579         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
13580         (rhythmdb_entry_sync_mirrored): make the last played/date added
13581         columns use the same format.
13583 2005-10-30  James Livingston  <jrl@ids.org.au>
13586         * podcast/rb-podcast-manager.c:
13587         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
13588         
13589         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
13590         iradio errors better.
13592 2005-10-30  James Livingston  <jrl@ids.org.au>
13594         patch by: Artem Baguinski <femistofel@gmail.com>
13596         * metadata/rb-metadata-gst.c: (rb_metadata_init):
13598 2005-10-30  James Livingston  <jrl@ids.org.au>
13600         * podcast/rb-podcast-manager.c:
13601         (rb_podcast_manager_subscribe_feed),
13602         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
13603         already been added, usually as a radio station. Closes 319434.
13605 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
13607         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
13608         mnemonics & resize issues)
13609         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
13610         & mnemonics)
13611         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
13612         widget for the "download location" label.
13614         Closes bug 320184.
13616 2005-10-29  James Livingston  <jrl@ids.org.au>
13618         Allow the search box to match words from multiple properties. Closes
13619         bug 139196. Thanks to the person from IRC who did a lot of the initial
13620         work.
13623         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
13624         * lib/rb-util.h: Add functions to split a string into words, and one
13625         to perform "search folding" which is currently like casefolding but
13626         also strips punctuation
13627         
13628         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
13629         (rhythmdb_query_preprocess):
13630         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
13631         against title, artist, album and genre (for the search box)
13632         
13633         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
13634         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13635         (save_entry), (search_match_properties),
13636         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
13637         splitting into words and matching across multiple properties.
13638         
13639         * sources/rb-library-source.c: (construct_query_from_selection): use
13640         the new SEARCH_MATCH property for the search box
13641         
13642         * widgets/rb-entry-view.c: (type_ahead_search_func):
13644 2005-10-29  James Livingston  <jrl@ids.org.au>
13646         * lib/rb-stock-icons.c: (rb_stock_icons_init):
13647         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
13648         
13649         * shell/rb-playlist-manager.c:
13650         * shell/rb-shell.c: use the above stock ids, so that the icons get set
13651         correctly.
13652         
13653         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
13654         initial state of the shuffle/repeat menu items correctly. Patch from
13655         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
13657 2005-10-29  James Livingston  <jrl@ids.org.au>
13659         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
13660         double-free.
13661         
13662         * widgets/rb-cell-renderer-pixbuf.c:
13663         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
13664         icon go black when row is not selected
13665         
13666         * doc/reference/tmpl/rb-daap-connection.sgml:
13667         * doc/reference/tmpl/rhythmdb.sgml: doc updates
13669 2005-10-29  James Livingston  <jrl@ids.org.au>
13671         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
13672         silly mistake, where it could think partial downloads has been
13673         completed.
13675 2005-10-29  James Livingston  <jrl@ids.org.au>
13677         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13679         * data/glade/song-info.glade:
13680         * widgets/rb-song-info.c: (rb_song_info_construct_single),
13681         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
13682         (rb_song_info_sync_entry_single): show the disc number in the song
13683         info window. From bug 311199.
13685 2005-10-29  James Livingston  <jrl@ids.org.au>
13687         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
13688         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
13689         regularly. Closes 155306.
13691 2005-10-29  James Livingston  <jrl@ids.org.au>
13693         * podcast/rb-podcast-manager.c:
13694         (rb_podcast_manager_download_entry),
13695         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13696         (rb_podcast_manager_insert_feed):
13697         * podcast/rb-podcast-manager.h:
13698         * podcast/rb-podcast-parse.c: (rb_set_item_value),
13699         (rb_podcast_parser_start_element):
13700         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
13701         don't download them again. However, it can't resume
13702         partially-downloaded ones.
13704 2005-10-28  James Livingston  <jrl@ids.org.au>
13706         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
13707         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
13708         work. Don't attempt to write duration as a tag.
13710         Thanks to Artem Baguinski <femistofel@gmail.com>
13712 2005-10-28  James Livingston  <jrl@ids.org.au>
13714         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
13715         don't disable the status-bar menu item when the current source doesn't
13716         use the search box.
13718 2005-10-28  James Livingston  <jrl@ids.org.au>
13720         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
13721         crash if the file has unknown length
13723 2005-10-27  James Livingston  <jrl@ids.org.au>
13725         * daapsharing/rb-daap-connection.c:
13726         (rb_daap_connection_state_done): don't assert when a daap server
13727         doesn't have any playlists
13729 2005-10-27  James Livingston  <jrl@ids.org.au>
13731         * sources/rb-sourcelist-model.c:
13732         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
13733         source for the sourcelist. Closes bug 319817.
13735 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
13737         Patch by: Renato Araujo <renatox@gmail.com>
13739         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
13740           Fix for a crasher caused by previous patch.
13742 2005-10-26  James Livingston  <jrl@ids.org.au>
13744         * data/glade/podcast-prefs.glade:
13745         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
13746         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
13747         * sources/rb-podcast-source.c: (rb_podcast_source_new):
13748         * podcast/rb-podcast-manager.c:
13749         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13750         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
13751         * shell/rb-shell.c: Change some strings to make them more consistent.
13752         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
13753         makes it clearer which is which. "Episode" may not be the best term,
13754         but it seems to be widely used.
13755         
13756         Also fix some strings that weren't marked as translatable.
13757         
13758         * podcast/rb-feed-podcast-properties-dialog.c:
13759         (rb_feed_podcast_properties_dialog_class_init),
13760         (rb_feed_podcast_properties_dialog_finalize):
13761         * podcast/rb-new-podcast-dialog.c:
13762         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
13763         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13764         (rb_simple_view_finalize), (rb_simple_view_constructor):
13765         * podcast/rb-podcast-properties-dialog.c:
13766         (rb_podcast_properties_dialog_class_init),
13767         (rb_podcast_properties_dialog_finalize):
13768         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
13769         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
13770         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
13771         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
13772         use G_DEFINE_TYPE, instead of doing it manually.
13774 2005-10-26  James Livingston  <jrl@ids.org.au>
13776         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
13777         <jrl@ids.org.au>
13779         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
13780         (rb_metadata_init): Check that the necessary plugins are present to do
13781         id3 editing.
13782         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
13783         corrupted before replacing the original.
13785 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
13787         reviewed by: James Livingston <jrl@ids.org.au>
13789         Assign sequential IDs to playlists for DAAP rather than using the
13790         address of the playlist object.  Less flaky, and should work on 64bit
13791         platforms. Closes bug 319304.
13793         * daapsharing/rb-daap-share.c: 
13794         (rb_daap_share_set_property): watch for playlist creation
13795         (_find_by_id), (_find_by_source): playlist list search functions
13796         (rb_daap_share_playlist_created),
13797         (rb_daap_share_process_playlist),
13798         (rb_daap_share_playlist_destroyed):
13799          update playlist list as it changes, use weak refs on 
13800          playlists to get notified on destroy.
13801         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
13802          destroy playlist list on shutdown
13803         (add_playlist_to_mlcl): use playlist ID rather than pointer in
13804          DAAP response
13805         (databases_cb): search for playlist ID in list rather than just
13806          converting it to a pointer; return HTTP 404 if playlist not 
13807          found.
13808         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
13809          is already used for the main library
13811 2005-10-26  James Livingston  <jrl@ids.org.au>
13813         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13815         * daapsharing/rb-daap-connection.c: (build_message),
13816         (http_response_handler), (http_get), (handle_server_info),
13817         (handle_login), (handle_update), (handle_database_info),
13818         (handle_song_listing), (handle_playlists),
13819         (handle_playlist_entries), (handle_logout),
13820         (rb_daap_connection_new), (rb_daap_connection_logout),
13821         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
13822         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
13823         * daapsharing/rb-daap-connection.h:
13824         * sources/rb-daap-source.c: (rb_daap_source_activate),
13825         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
13826         (rb_daap_source_disconnect): Make connecting to DAAP sources
13827         asynchronous, so that non-responsive servers don't hang the UI. Closes
13828         316225.
13830 2005-10-26  James Livingston  <jrl@ids.org.au>
13832         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13834         * rhythmdb/rhythmdb-query-model.c:
13835         (rhythmdb_query_model_do_reorder): generate the row re-order map
13836         correctly.
13837         
13838         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
13839         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
13840         Update selection when rows get re-ordered. Closes 319718.
13842 2005-10-26  James Livingston  <jrl@ids.org.au>
13844         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
13846         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
13847         actually set the db pointer in play orders. Closes 319818.
13849 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
13851         Patch by: Renato Araujo <renatox@gmail.com>
13853         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13854         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
13855         (rb_podcast_manager_update_synctime),
13856         (rb_podcast_manager_config_changed),
13857         (rb_podcast_manager_insert_feed):
13858         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13859         (save_entry):
13860         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13861         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13862         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
13864 2005-10-25  James Livingston  <jrl@ids.org.au>
13866         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
13867         (db_entry_deleted_cb): don't share tracks that are hidden because the
13868         file is missing.
13870 2005-10-22  James Livingston  <jrl@ids.org.au>
13872         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
13873         crash if an entry couldn't be playerd, without streamer setting an
13874         error.
13876         
13877         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
13879         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13880         (rb_new_podcast_dialog_text_changed): enable the add button when a url
13881         is pasted into the dialog.
13882         
13883         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
13884         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
13885         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
13886         (rb_podcast_parse_channel_free):
13887         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
13888         feeds
13890 2005-10-22  James Livingston  <jrl@ids.org.au>
13892         * sources/rb-iradio-source.c:
13893         (rb_iradio_source_first_time_changed): Make merging the default
13894         stations actually work.
13895         
13896         * sources/rb-podcast-source.c:
13897         (rb_podcast_source_post_status_cell_data_func): fix problem where some
13898         people weren't seing the percentages in the stats column.
13900 2005-10-21  James Livingston  <jrl@ids.org.au>
13902         Patch from Caio Marcelo <cmarcelo@gmail.com>
13904         * shell/rb-shell.c: (rb_shell_window_state_cb),
13905         (rb_shell_get_visibility), (idle_hide_mainwindow),
13906         (rb_shell_set_visibility): Make the "show window" item in the tray
13907         icon menu show the toggle state correctly. Use a better policy on
13908         deciding whether the window is "visible" or not. Closes bug 308053.
13910 2005-10-21  James Livingston  <jrl@ids.org.au>
13912         * doc/reference/tmpl/rb-shell-preferences.sgml:
13913         * shell/Makefile.am: fix building with gtk-doc
13915         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
13916         don't submit podcasts to audioscrobbler
13917         
13918         
13919         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
13920         
13921         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
13922         (rb_set_item_value): strip spaces surrounding podcast urls
13923         
13925         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
13926         
13927         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
13929 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
13931         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
13932          Audioscrobbler/Last.fm support
13934         * configure.ac:
13935         * data/glade/Makefile.am:
13936         * data/glade/audioscrobbler-prefs.glade:
13937         * data/rhythmbox.schemas:
13938         * lib/Makefile.am:
13939         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
13940         * lib/md5.h:
13941         * lib/rb-preferences.h:
13942         * po/POTFILES.in:
13943         * shell/Makefile.am:
13944         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
13945         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
13946         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
13947         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
13948         (rb_audioscrobbler_timeout_cb), (mkmd5),
13949         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
13950         (rb_audioscrobbler_do_handshake),
13951         (rb_audioscrobbler_do_handshake_cb),
13952         (rb_audioscrobbler_submit_queue),
13953         (rb_audioscrobbler_submit_queue_cb),
13954         (rb_audioscrobbler_import_settings),
13955         (rb_audioscrobbler_preferences_sync),
13956         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
13957         (rb_audioscrobbler_gconf_changed_cb),
13958         (rb_audioscrobbler_song_changed_cb),
13959         (rb_audioscrobbler_username_entry_changed_cb),
13960         (rb_audioscrobbler_username_entry_activate_cb),
13961         (rb_audioscrobbler_password_entry_changed_cb),
13962         (rb_audioscrobbler_password_entry_activate_cb),
13963         (rb_audioscrobbler_enabled_check_changed_cb),
13964         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
13965         (rb_audioscrobbler_load_entry_from_string),
13966         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
13967         (rb_audioscrobbler_print_queue),
13968         (rb_audioscrobbler_free_queue_entries):
13969         * shell/rb-audioscrobbler.h:
13970         * shell/rb-shell-preferences.c:
13971         (rb_shell_preferences_append_audioscrobbler_config):
13972         * shell/rb-shell-preferences.h:
13973         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
13974         (rb_shell_select_source), (rb_shell_cmd_preferences):
13975         * sources/Makefile.am:
13977 2005-10-21  James Livingston  <jrl@ids.org.au>
13979         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
13981         * Makefile.am:
13982         * NEWS:
13983         * configure.ac:
13984         * data/art/Makefile.am:
13985         * data/glade/Makefile.am:
13986         * data/rhythmbox.schemas:
13987         * data/ui/rhythmbox-ui.xml:
13988         * doc/reference/Makefile.am:
13989         * doc/reference/tmpl/rhythmdb.sgml:
13990         * lib/rb-stock-icons.c: (rb_stock_icons_init):
13991         * lib/rb-stock-icons.h:
13992         * po/POTFILES.in:
13993         * podcast/Makefile.am:
13994         + podcast/rb-feed-podcast-properties-dialog.c:
13995         + podcast/rb-feed-podcast-properties-dialog.h:
13996         + podcast/rb-new-podcast-dialog.c:
13997         + podcast/rb-new-podcast-dialog.h:
13998         + podcast/rb-podcast-manager.c:
13999         + podcast/rb-podcast-manager.h:
14000         + podcast/rb-podcast-marshal.list:
14001         + podcast/rb-podcast-parse.c:
14002         + podcast/rb-podcast-parse.h:
14003         + podcast/rb-podcast-properties-dialog.c:
14004         + podcast/rb-podcast-properties-dialog.h:
14005         * rhythmdb/rhythmdb-property-model.c:
14006         (rhythmdb_property_model_set_property),
14007         (rhythmdb_property_model_enable_drag):
14008         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
14009         (rhythmdb_tree_parser_end_element), (save_entry),
14010         (rhythmdb_tree_save):
14011         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14012         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
14013         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
14014         (rhythmdb_entry_podcast_feed_get_type):
14015         * rhythmdb/rhythmdb.h:
14016         * shell/Makefile.am:
14017         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
14018         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14019         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
14020         (rb_shell_quit):
14021         * sources/Makefile.am:
14022         + sources/rb-podcast-source.c:
14023         + sources/rb-podcast-source.h:
14024         * widgets/Makefile.am:
14025         * widgets/rb-property-view.c: (rb_property_view_class_init),
14026         (rb_property_view_constructor),
14027         (rb_property_view_selection_changed_cb),
14028         (rb_property_view_get_treeview):
14029         * widgets/rb-property-view.h:
14030         + widgets/rb-simple-view.c:
14031         + widgets/rb-simple-view.h:
14033 2005-10-20  James Livingston  <jrl@ids.org.au>
14035         * NEWS: update with changes since 0.9.1
14037         * configure.ac: check whether collate_key_for_filename is available
14038         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
14039         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
14040         it if it isn't available in glib (i.e. building against 2.6)
14041         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
14042         collation to get "natural sorting". Closes bug 158599.
14044 2005-10-20  James Livingston  <jrl@ids.org.au>
14046         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14048         * doc/reference/tmpl/rb-shell-player.sgml:
14049         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14050         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
14051         (rb_shell_player_get_playing),
14052         (rb_shell_player_get_playing_time_string),
14053         (rb_shell_player_get_playing_time),
14054         (rb_shell_player_set_playing_time), (tick_cb),
14055         (rb_shell_player_get_playing_path), (filter_mmkeys):
14056         * shell/rb-shell-player.h:
14057         * shell/rb-shell-player.xml:
14058         * shell/rb-shell.c: (rb_shell_constructor),
14059         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
14060         (rb_shell_set_window_title), (rb_shell_playing_impl),
14061         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
14062         Merge the duration_changed and elapsed_changed DBUS signals into one
14063         elapsed_changed signal. Check that the output argument isn't NULL
14064         before trying to put things in it.
14066 2005-10-20  James Livingston  <jrl@ids.org.au>
14068         * rhythmdb/rhythmdb-query-model.c:
14069         (rhythmdb_query_model_entry_added_cb),
14070         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
14071         problem where hidden entries could be shown in playlists.
14072         
14073         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
14074         issues when switching in and out of small mode.
14076 2005-10-19  James Livingston  <jrl@ids.org.au>
14078         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
14079         (rb_shell_constructor), (rb_shell_window_state_cb),
14080         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
14081         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
14082         (rb_shell_view_smalldisplay_changed_cb),
14083         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
14084         (rb_shell_sync_paned): remove gconf window-state races, prevent
14085         changing small mode too often, fix window event races. Closes 122806.
14087         
14088         Patch from Caio Marcelo <cmarcelo@gmail.com>
14090         * data/rhythmbox.schemas:
14091         * shell/rb-shell.c: (rb_shell_window_state_cb),
14092         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
14093         Remember the position of the window. Closes 315289.
14095 2005-10-19  James Livingston  <jrl@ids.org.au>
14097         Patch from Christophe Fergeau  <teuf@gnome.org>
14099         * configure.ac: determine whether libgpod is present when neither
14100         --with-ipod nor --without-ipod is passed
14102 2005-10-19  James Livingston  <jrl@ids.org.au>
14104         Patch from Caio Marcelo <cmarcelo@gmail.com>
14106         * shell/rb-shell-player.c: (do_next_idle),
14107         (rb_shell_player_do_previous), (rb_shell_player_do_next),
14108         (rb_shell_player_do_previous_or_seek),
14109         (rb_shell_player_previous_button_cb),
14110         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14111         (rb_shell_player_cmd_next), (eos_cb):
14112         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
14113         end of the playlist is reached.
14115 2005-10-19  Christopher Aillon  <caillon@redhat.com>
14117         * lib/rb-thread.c: fix a few GSource leaks
14119 2005-10-19  James Livingston  <jrl@ids.org.au>
14121         * doc/reference/tmpl/bacon-volume.sgml:
14122         * doc/reference/tmpl/disclosure-widget.sgml:
14123         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14124         * doc/reference/tmpl/eggnotificationbubble.sgml:
14125         * doc/reference/tmpl/eggtrayicon.sgml:
14126         * doc/reference/tmpl/gsequence.sgml:
14127         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14128         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14129         * doc/reference/tmpl/rb-daap-connection.sgml:
14130         * doc/reference/tmpl/rb-daap-dialog.sgml:
14131         * doc/reference/tmpl/rb-daap-mdns.sgml:
14132         * doc/reference/tmpl/rb-daap-share.sgml:
14133         * doc/reference/tmpl/rb-daap-sharing.sgml:
14134         * doc/reference/tmpl/rb-daap-source.sgml:
14135         * doc/reference/tmpl/rb-daap-src.sgml:
14136         * doc/reference/tmpl/rb-daap-structure.sgml:
14137         * doc/reference/tmpl/rb-debug.sgml:
14138         * doc/reference/tmpl/rb-dialog.sgml:
14139         * doc/reference/tmpl/rb-druid.sgml:
14140         * doc/reference/tmpl/rb-entry-view.sgml:
14141         * doc/reference/tmpl/rb-enums.sgml:
14142         * doc/reference/tmpl/rb-file-helpers.sgml:
14143         * doc/reference/tmpl/rb-glade-helpers.sgml:
14144         * doc/reference/tmpl/rb-header.sgml:
14145         * doc/reference/tmpl/rb-history.sgml:
14146         * doc/reference/tmpl/rb-ipod-source.sgml:
14147         * doc/reference/tmpl/rb-iradio-source.sgml:
14148         * doc/reference/tmpl/rb-library-source.sgml:
14149         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14150         * doc/reference/tmpl/rb-metadata.sgml:
14151         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14152         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14153         * doc/reference/tmpl/rb-play-order-linear.sgml:
14154         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14155         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14156         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14157         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14158         * doc/reference/tmpl/rb-play-order-random.sgml:
14159         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14160         * doc/reference/tmpl/rb-play-order.sgml:
14161         * doc/reference/tmpl/rb-player.sgml:
14162         * doc/reference/tmpl/rb-playlist-manager.sgml:
14163         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14164         * doc/reference/tmpl/rb-playlist-source.sgml:
14165         * doc/reference/tmpl/rb-preferences.sgml:
14166         * doc/reference/tmpl/rb-property-view.sgml:
14167         * doc/reference/tmpl/rb-query-creator-private.sgml:
14168         * doc/reference/tmpl/rb-query-creator.sgml:
14169         * doc/reference/tmpl/rb-rating-helper.sgml:
14170         * doc/reference/tmpl/rb-rating.sgml:
14171         * doc/reference/tmpl/rb-recorder.sgml:
14172         * doc/reference/tmpl/rb-refstring.sgml:
14173         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14174         * doc/reference/tmpl/rb-removable-media-source.sgml:
14175         * doc/reference/tmpl/rb-search-entry.sgml:
14176         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14177         * doc/reference/tmpl/rb-shell-glue.sgml:
14178         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14179         * doc/reference/tmpl/rb-shell-player.sgml:
14180         * doc/reference/tmpl/rb-shell-preferences.sgml:
14181         * doc/reference/tmpl/rb-shell.sgml:
14182         * doc/reference/tmpl/rb-song-display-box.sgml:
14183         * doc/reference/tmpl/rb-song-info.sgml:
14184         * doc/reference/tmpl/rb-source-header.sgml:
14185         * doc/reference/tmpl/rb-source.sgml:
14186         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14187         * doc/reference/tmpl/rb-sourcelist.sgml:
14188         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14189         * doc/reference/tmpl/rb-statusbar.sgml:
14190         * doc/reference/tmpl/rb-stock-icons.sgml:
14191         * doc/reference/tmpl/rb-string-helpers.sgml:
14192         * doc/reference/tmpl/rb-thread.sgml:
14193         * doc/reference/tmpl/rb-tray-icon.sgml:
14194         * doc/reference/tmpl/rb-tree-dnd.sgml:
14195         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14196         * doc/reference/tmpl/rb-util.sgml:
14197         * doc/reference/tmpl/rhythmbox-unused.sgml:
14198         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14199         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14200         * doc/reference/tmpl/rhythmdb-tree.sgml:
14201         * doc/reference/tmpl/rhythmdb.sgml: update for changes
14202         
14203         * doc/reference/Makefile.am: make docs build with changed ipod support
14204         
14205         * po/POTFILES.in: remove sources/itunesdb
14207 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
14209         * sources/itunesdb.c:
14210         * sources/itunesdb.h: removed now useless files
14212 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
14214         * configure.ac:
14215         * shell/Makefile.am:
14216         * sources/Makefile.am:
14217         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
14218         code
14219         [1]: http://www.gtkpod.org/libgpod.html
14222 2005-10-18  James Livingston  <jrl@ids.org.au>
14224         patch from Funda Wang <fundawang@linux.net.cn>
14226         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
14227         the notification bubble string translatable.
14229 ============ Version 0.9.1
14231 2005-10-16  James Livingston  <jrl@ids.org.au>
14233         * configure.ac: bump version to 0.9.1
14234         * NEWS: update translation credits
14236 2005-10-16  James Livingston  <jrl@ids.org.au>
14238         * rhythmdb/rhythmdb-query-model.c:
14239         (rhythmdb_query_model_class_init),
14240         (rhythmdb_query_model_drag_data_received): 
14241         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
14242         notified when things are dropped into the entry view.
14243         
14244         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
14245         (rb_playlist_source_add_location_swapped),
14246         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
14247         (rb_playlist_source_non_entry_dropped),
14248         (rb_playlist_source_row_inserted): Use the new signal so that dropping
14249         things onto a playlist's entry view work correctly, and doesn't cause
14250         crashes. Allow folders to be dropped as well. (Closes 318308)
14252 2005-10-16  James Livingston  <jrl@ids.org.au>
14254         * NEWS: Update some more
14256         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14257         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
14258         with the paned size, so that it doesn't move when the window is
14259         maximised/restored. Closes bug 315852.
14261         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
14262         display the playcount column, as it's useless (it never get changed).
14264 2005-10-14  James Livingston  <jrl@ids.org.au>
14266         * Makefile.am:
14267         * data/Makefile.am:
14268         * doc/reference/Makefile.am: get "make distcheck" to pass again
14270 2005-10-11  James Livingston  <jrl@ids.org.au>
14272         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
14273         destroy the connection when retrieving the playlists fails, because
14274         tracks have already been added. Closes 318380.
14276 2005-10-11  James Livingston  <jrl@ids.org.au>
14278         * sources/rb-sourcelist.c: (rb_sourcelist_append),
14279         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
14280         (source_name_edited_cb): Ask for the columns to be resized when a
14281         source is added, deleted or changes name.
14283 2005-10-11  James Livingston  <jrl@ids.org.au>
14285         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
14286         create a thread when processing a directory. This stops up created one
14287         thread for each file in a playlist we're trying to load. Closes
14288         317850.
14290         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
14291         typo that made sort-by-artist not work correctly.
14293 2005-10-11  James Livingston  <jrl@ids.org.au>
14295         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
14296         support is enabled
14298 2005-10-11  James Livingston  <jrl@ids.org.au>
14300         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
14301         * lib/rb-file-helpers.h: add a function to turn uris into our
14302         canonical path-escaped form
14303         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
14304         above function when import playlists. This will fix the problem of
14305         duplicate entries due to different representations of the uri (bug
14306         158211).
14308 2005-10-11  James Livingston  <jrl@ids.org.au>
14310         * shell/rb-shell.c: (rb_shell_get_visibility),
14311         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
14312         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
14313         window hiding so that Alt-F4 works again.
14315         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
14316         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
14317         (rb_entry_view_string_sort_func): Stop some crashes where a string
14318         property was set to NULL.
14320 2005-10-10  James Livingston  <jrl@ids.org.au>
14322         * doc/reference/rhythmbox.types: fix gtk-doc generation
14324 2005-10-09  James Livingston  <jrl@ids.org.au>
14326         * sources/rb-sourcelist.c: (rb_sourcelist_init):
14327         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
14328         accelerators, so that we don't have as many conflicting keys.
14330 2005-10-08  James Livingston  <jrl@ids.org.au>
14332         * data/iradio-initial.pls: Update the list of radio stations. Thanks
14333         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
14334         bug 129285.
14336 2005-10-07  James Livingston  <jrl@ids.org.au>
14338         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
14339         local path names in the same way as every other URI. This should stop
14340         duplicates occurring due to different escapings. Closes bug 158211.
14342 2005-10-06  James Livingston  <jrl@ids.org.au>
14344         * NEWS: more updates
14345         
14346         patch from Jaap Haitsma <jaap@haitsma.org>:
14348         * configure.ac:
14349         * data/Makefile.am:
14350         * data/art/Makefile.am:
14351         - data/art/rhythmbox-paused.png:
14352         - data/art/rhythmbox-playback-error.png:
14353         - data/art/rhythmbox-playing.png:
14354         - data/art-clearlooks/:
14355         * lib/rb-file-helpers.c: (rb_file):
14356         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14357         * lib/rb-stock-icons.h:
14358         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
14359         * widgets/rb-cell-renderer-pixbuf.c:
14360         (rb_cell_renderer_pixbuf_render):
14361         * widgets/rb-entry-view.c: (rb_entry_view_init),
14362         (rb_entry_view_set_playing):
14363         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
14364         stock icons instead of custom art. Drop remanents of art-clearlooks.
14366 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
14368         * configure.ac: Added ne in ALL_LINGUAS
14370 2005-10-02  James Livingston  <jrl@ids.org.au>
14372         * data/glade/Makefile.am: actually install the daap prefs glade file
14374 2005-09-30  James Livingston  <jrl@ids.org.au>
14376         * po/POTFILES.in: mremove rb-string-helper.c from the list of
14377         translatable files, so that make check works and we don't annoy the
14378         translators.
14379         
14380         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
14381         sanity checking, in case a db entry is missing some properties.
14383 2005-09-29  James Livingston  <jrl@ids.org.au>
14385         - lib/rb-string-helpers.c:
14386         - lib/rb-string-helpers.h:
14387         * lib/Makefile.am:
14388         * rhythmdb/rhythmdb-tree.c:
14389         * rhythmdb/rhythmdb.c:
14390         * shell/main.c: (main):
14391         * shell/rb-shell.c:
14392         * widgets/rb-entry-view.c:
14393         * widgets/rb-property-view.c: remove rb-string-helpers, as they
14394         utility functions haven't been used in a while.
14396 2005-09-27  James Livingston  <jrl@ids.org.au>
14398         * data/art-clearlooks/Makefile.am:
14399         - data/art-clearlooks/rhythmbox-album.png:
14400         - data/art-clearlooks/rhythmbox-audiocd.png:
14401         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
14402         - data/art-clearlooks/rhythmbox-dnd.png:
14403         - data/art-clearlooks/rhythmbox-ipod.png:
14404         - data/art-clearlooks/rhythmbox-iradio.png:
14405         - data/art-clearlooks/rhythmbox-library.png:
14406         - data/art-clearlooks/rhythmbox-next.png:
14407         - data/art-clearlooks/rhythmbox-pause.png:
14408         - data/art-clearlooks/rhythmbox-play.png:
14409         - data/art-clearlooks/rhythmbox-playlist-menu.png:
14410         - data/art-clearlooks/rhythmbox-playlist.png:
14411         - data/art-clearlooks/rhythmbox-previous.png:
14412         - data/art-clearlooks/rhythmbox-repeat.png:
14413         - data/art-clearlooks/rhythmbox-rewind.png:
14414         - data/art-clearlooks/rhythmbox-shuffle.png:
14415         - data/art-clearlooks/rhythmbox-stop.png:
14416         - data/art-clearlooks/rhythmbox-visuals.png:
14417         - data/art-clearlooks/rhythmbox-volume-max.png:
14418         - data/art-clearlooks/rhythmbox-volume-medium.png:
14419         - data/art-clearlooks/rhythmbox-volume-min.png:
14420         - data/art-clearlooks/rhythmbox-volume-mute.png:
14421         - data/art-clearlooks/rhythmbox-volume-zero.png:
14422         * data/art/Makefile.am:
14423         - data/art/rhythmbox-album.png:
14424         - data/art/rhythmbox-audiocd.png:
14425         - data/art/rhythmbox-automatic-playlist.png:
14426         - data/art/rhythmbox-dnd.png:
14427         - data/art/rhythmbox-ipod.png:
14428         - data/art/rhythmbox-iradio.png:
14429         - data/art/rhythmbox-library.png:
14430         - data/art/rhythmbox-next.png:
14431         - data/art/rhythmbox-pause.png:
14432         - data/art/rhythmbox-play.png:
14433         - data/art/rhythmbox-playlist-menu.png:
14434         - data/art/rhythmbox-playlist.png:
14435         - data/art/rhythmbox-previous.png:
14436         - data/art/rhythmbox-repeat.png:
14437         - data/art/rhythmbox-rewind.png:
14438         - data/art/rhythmbox-shuffle.png:
14439         - data/art/rhythmbox-stop.png:
14440         - data/art/rhythmbox-visuals.png:
14441         - data/art/rhythmbox-volume-max.png:
14442         - data/art/rhythmbox-volume-medium.png:
14443         - data/art/rhythmbox-volume-min.png:
14444         - data/art/rhythmbox-volume-mute.png:
14445         - data/art/rhythmbox-volume-zero.png:
14446         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14447         * lib/rb-stock-icons.h:
14448         * shell/rb-playlist-manager.c:
14449         * shell/rb-shell-player.c:
14450         * sources/rb-daap-source.c: (rb_daap_get_icon):
14451         * sources/rb-ipod-source.c:
14452         * sources/rb-iradio-source.c: (rb_iradio_source_init):
14453         * sources/rb-library-source.c: (rb_library_source_new):
14454         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14455         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
14456         that hasn't been used in a LONG time, and also remove art that are
14457         now stock icons.
14459 2005-09-27  James Livingston  <jrl@ids.org.au>
14461         * README: point to the gnome.org web sites, and update the example
14462         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
14463         
14464         * rhythmdb/rhythmdb-query-model.c:
14465         (rhythmdb_query_model_set_property),
14466         (rhythmdb_query_model_get_property),
14467         (rhythmdb_query_model_finalize):
14468         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
14469         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
14470         * rhythmdb/rhythmdb.h:
14471         * sources/rb-iradio-source.c: (impl_search):
14472         * sources/rb-library-source.c: (impl_search): Add query
14473         "preprocessing", which performs operations such as casefolding any
14474         strings that will be compared to any of the *_FOLDED properties.
14475         Closes bug 316039
14477 2005-09-27  James Livingston  <jrl@ids.org.au>
14479         * data/glade/daap-prefs.glade:
14480         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
14481         file for the daap preferences pane
14482         
14483         * sources/rb-sourcelist.c: (rb_sourcelist_init),
14484         (rb_sourcelist_append), (rb_sourcelist_remove),
14485         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
14486         don't display the column for source expanders unless there is an
14487         expandable source.
14489 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
14491         * .cvsignore:
14492         * Makefile.am:
14493         * configure.ac:
14494         * doc/.cvsignore:
14495         * doc/Makefile.am:
14496         * doc/reference/.cvsignore:
14497         * doc/reference/Makefile.am:
14498         * doc/reference/rhythmbox-docs.sgml:
14499         * doc/reference/rhythmbox-sections.txt:
14500         * doc/reference/rhythmbox.types:
14501         * doc/reference/tmpl/bacon-volume.sgml:
14502         * doc/reference/tmpl/disclosure-widget.sgml:
14503         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14504         * doc/reference/tmpl/eggnotificationbubble.sgml:
14505         * doc/reference/tmpl/eggtrayicon.sgml:
14506         * doc/reference/tmpl/gsequence.sgml:
14507         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14508         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14509         * doc/reference/tmpl/rb-daap-connection.sgml:
14510         * doc/reference/tmpl/rb-daap-dialog.sgml:
14511         * doc/reference/tmpl/rb-daap-mdns.sgml:
14512         * doc/reference/tmpl/rb-daap-share.sgml:
14513         * doc/reference/tmpl/rb-daap-sharing.sgml:
14514         * doc/reference/tmpl/rb-daap-source.sgml:
14515         * doc/reference/tmpl/rb-daap-src.sgml:
14516         * doc/reference/tmpl/rb-daap-structure.sgml:
14517         * doc/reference/tmpl/rb-debug.sgml:
14518         * doc/reference/tmpl/rb-dialog.sgml:
14519         * doc/reference/tmpl/rb-druid.sgml:
14520         * doc/reference/tmpl/rb-entry-view.sgml:
14521         * doc/reference/tmpl/rb-enums.sgml:
14522         * doc/reference/tmpl/rb-file-helpers.sgml:
14523         * doc/reference/tmpl/rb-glade-helpers.sgml:
14524         * doc/reference/tmpl/rb-header.sgml:
14525         * doc/reference/tmpl/rb-history.sgml:
14526         * doc/reference/tmpl/rb-ipod-source.sgml:
14527         * doc/reference/tmpl/rb-iradio-source.sgml:
14528         * doc/reference/tmpl/rb-library-source.sgml:
14529         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14530         * doc/reference/tmpl/rb-metadata.sgml:
14531         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14532         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14533         * doc/reference/tmpl/rb-play-order-linear.sgml:
14534         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14535         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14536         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14537         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14538         * doc/reference/tmpl/rb-play-order-random.sgml:
14539         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14540         * doc/reference/tmpl/rb-play-order.sgml:
14541         * doc/reference/tmpl/rb-player.sgml:
14542         * doc/reference/tmpl/rb-playlist-manager.sgml:
14543         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14544         * doc/reference/tmpl/rb-playlist-source.sgml:
14545         * doc/reference/tmpl/rb-preferences.sgml:
14546         * doc/reference/tmpl/rb-property-view.sgml:
14547         * doc/reference/tmpl/rb-query-creator-private.sgml:
14548         * doc/reference/tmpl/rb-query-creator.sgml:
14549         * doc/reference/tmpl/rb-rating-helper.sgml:
14550         * doc/reference/tmpl/rb-rating.sgml:
14551         * doc/reference/tmpl/rb-recorder.sgml:
14552         * doc/reference/tmpl/rb-refstring.sgml:
14553         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14554         * doc/reference/tmpl/rb-removable-media-source.sgml:
14555         * doc/reference/tmpl/rb-search-entry.sgml:
14556         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14557         * doc/reference/tmpl/rb-shell-glue.sgml:
14558         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14559         * doc/reference/tmpl/rb-shell-player.sgml:
14560         * doc/reference/tmpl/rb-shell-preferences.sgml:
14561         * doc/reference/tmpl/rb-shell.sgml:
14562         * doc/reference/tmpl/rb-song-display-box.sgml:
14563         * doc/reference/tmpl/rb-song-info.sgml:
14564         * doc/reference/tmpl/rb-source-header.sgml:
14565         * doc/reference/tmpl/rb-source.sgml:
14566         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14567         * doc/reference/tmpl/rb-sourcelist.sgml:
14568         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14569         * doc/reference/tmpl/rb-statusbar.sgml:
14570         * doc/reference/tmpl/rb-stock-icons.sgml:
14571         * doc/reference/tmpl/rb-string-helpers.sgml:
14572         * doc/reference/tmpl/rb-thread.sgml:
14573         * doc/reference/tmpl/rb-tray-icon.sgml:
14574         * doc/reference/tmpl/rb-tree-dnd.sgml:
14575         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14576         * doc/reference/tmpl/rb-util.sgml:
14577         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14578         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14579         * doc/reference/tmpl/rhythmdb-tree.sgml:
14580         * doc/reference/tmpl/rhythmdb.sgml:
14581         * macros/.cvsignore:
14582         * shell/Makefile.am:
14583         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
14584         (rb_source_finalize), (rb_source_set_property),
14585         (rb_source_get_property), (default_get_pixbuf),
14586         (_rb_source_show_popup):
14587         * sources/rb-source.h:
14588         Add support for gtk-doc in rhythmbox.
14589         Convert RBSource to use newer glib functions, such as add_private.
14590         Gives RBSource a default get_pixbuf implementation.
14592 2005-09-25  James Livingston  <jrl@ids.org.au>
14594         * NEWS: Update with about a months worth of changes
14596         * data/glade/song-info-multiple.glade:
14597         * data/glade/song-info.glade:
14598         * data/rhythmbox.schemas:
14599         * lib/rb-preferences.h:
14600         * rhythmdb/rhythmdb.h:
14601         * shell/rb-shell-player.c:
14602         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
14603         few remaining parts of autorating.
14605 2005-09-24  James Livingston  <jrl@ids.org.au>
14607         * shell/rb-shell.c: (rb_shell_constructor),
14608         (rb_shell_window_state_cb), (rb_shell_set_visibility),
14609         (rb_shell_window_configure_cb): store window state in the gconf keys,
14610         so that it gets used. Closes bugs 313893 and 137068.
14612 2005-09-20  James Livingston  <jrl@ids.org.au>
14614         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
14615         crash if the entry has a NULL string in a property
14616         
14617         * shell/rb-removable-media-manager.c:
14618         (rb_removable_media_manager_load_media): fix some memory leaks
14619         
14620         (rb_removable_media_manager_mount_volume),
14621         (rb_removable_media_manager_eject_medium_cb),
14622         (rb_removable_media_manager_cmd_eject_medium): use
14623         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14624         
14625         * sources/rb-removable-media-source.c:
14626         (rb_removable_media_source_set_property),
14627         (rb_removable_media_source_get_property): use
14628         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14630 2005-09-18  James Livingston  <jrl@ids.org.au>
14632         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
14633         column
14635         * data/glade/general-prefs.glade:
14636         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
14637         (rb_shell_preferences_column_check_changed_cb),
14638         (rb_shell_preferences_sync): add checkbox to control visibility
14639         of the column
14640         
14641         
14642         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14643         (save_entry):
14644         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
14645         (rhythmdb_prop_get_type):
14646         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
14647         was as "last played" is handled
14648         
14649         * sources/rb-library-source.c: (rb_library_source_constructor):
14650         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14651         Make the column show in the library and playlists
14652         
14653         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
14654         * widgets/rb-entry-view.h: add the column
14655         
14656         * widgets/rb-query-creator-properties.c: allow automatic playlists to
14657         be sorted by the column
14659 2005-09-16  James Livingston  <jrl@ids.org.au>
14661         * shell/rb-shell-player.c: (rb_shell_player_init),
14662         (rb_shell_player_do_previous_or_seek),
14663         (rb_shell_player_previous_button_cb),
14664         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14665         (rb_shell_player_playpause_button_cb): Make the previous button act
14666         the same as the menu item. Fix an inversion of the "previous track or
14667         seek" logic.
14668         
14669         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14670         
14671         (rb_shell_player_playpause): make --play-pause stop source that can't
14672         be paused
14674 2005-09-15  James Livingston  <jrl@ids.org.au>
14676         * configure.ac: increase totem-plparser requirements to 1.1.5
14678         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
14679         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
14680         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
14681         use the newer playlist APIs to save the name of the playlist, and use
14682         the name of a loaded playlist.
14684         Closes bug 309817.
14686 2005-09-15  James Livingston  <jrl@ids.org.au>
14688         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14690         * shell/Makefile.am: stop some linker warnings
14692         * shell/main.c: (main): make --no-registration work with dbus
14694 2005-09-15  James Livingston  <jrl@ids.org.au>
14696         * daapsharing/rb-daap-sharing.c: (create_share):
14697         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
14698         reference sinking and counting issues that I caused.
14700 2005-09-15  James Livingston  <jrl@ids.org.au>
14702         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
14703         playing" icon in the "now playing" column header.
14705 2005-09-14  James Livingston  <jrl@ids.org.au>
14707         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
14708         daap shares, when sharing is turned off.
14710 2005-09-12  Bastien Nocera  <hadess@hadess.net>
14712         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
14713         the GConf value's default, especially for badly installed schema
14714         files
14716 2005-09-12  James Livingston  <jrl@ids.org.au>
14718         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
14720         Patch from Paolo Borelli <pborelli@katamail.com>
14722         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
14723         grip when maximised. Closes bug 316055.
14725 2005-09-11  James Livingston  <jrl@ids.org.au>
14727         Patch from William Jon McCann <mccann@jhu.edu>
14729         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
14730         subclass of GtkStatusbar instead of GtkHBox.
14731         (rb_statusbar_construct): Don't set border width.
14732         (rb_statusbar_init): Use resize grip.  Don't use
14733         markup.
14734         (set_statusbar_tooltip, unset_statusbar_tooltip) 
14735         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
14736         Connect tooltips for actions.
14737         (rb_statusbar_sync_status): Push new message to statusbar.
14738         (rb_statusbar_set_progress): Don't use markup.
14739         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
14740         flag here since it prevents actually showing or hiding.
14741         (rb_statusbar_sync_with_source): Push new message to statusbar.
14743 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14745         * daapsharing/rb-daap-structure.c:
14746         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
14747         around debugging definition.
14749 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14750         
14751         * daapsharing/rb-daap-structure.c:
14752         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
14753         type = version.
14755         * daapsharing/rb-daap-mdns.c/h:
14756         (resolve_cb): Updated mDNS resolve callback to send service-name &
14757         name (read from Machine Name in the TXT data or equal to service-name
14758         if not in TXT).
14760         * daapsharing/rb-daap-source.c:
14761         (rb_daap_source_class_init), (rb_daap_source_set_property), 
14762         (rb_daap_source_get_property), (rb_daap_source_new),
14763         (find_source_by_service_name), (resolve_cb), (browse_cb), 
14764         (stop_resolver), (start_browsing), (stop_browsing), 
14765         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
14766         and added 'host' and 'port' gobject properties.  Updated to use new
14767         mDNS resolve callback sending service-name & name arguments.
14769 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14771         * daapsharing/rb-daap-mdns.c:
14772         (howl_strerror): New function to report errors from Howl
14773         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
14774         (get_sw_discovery), (get_avahi_client): Better error reporting from
14775         Howl & Avahi.
14777         * sources/rb-daap-source.:
14778         (start_browsing), (stop_browsing): Fixed a bug where browsing would
14779         not get started or stopped in some situations.
14780         
14781 2005-09-12  James Livingston  <jrl@ids.org.au>
14783         * shell/rb-removable-media-manager.c: add a missing include, that
14784         would stop compilation if ipod support wasn't turned on
14786 2005-09-11  James Livingston  <jrl@ids.org.au>
14788         * daapsharing/rb-daap-dialog.c: (encode_base64),
14789         (rb_daap_password_dialog_new_run),
14790         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
14791         it is no broken in to two pieces, and remove a use of a goto
14792         
14793         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
14794         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
14795         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
14796         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
14797         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
14798         memory leaks, and some code style things.
14799         
14800         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
14801         (rb_daap_share_init), (rb_daap_share_set_property),
14802         (rb_daap_share_dispose), (rb_daap_share_new),
14803         (rb_daap_share_get_property): make the DB and the playlist manager
14804         gobject properties.
14805         
14806         (message_add_standard_headers),
14807         (message_set_from_rb_daap_structure), (server_info_cb),
14808         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
14809         (server_cb), (add_db_entry), (db_entry_added_cb),
14810         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
14811         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
14812         style and use CONF_PREFIX in the gconf keys
14813         
14814         * daapsharing/rb-daap-sharing.c: (create_share),
14815         (enable_sharing_changed_cb), (share_name_changed_cb),
14816         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
14817         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
14818         (rb_daap_src_instance_init), (rb_daap_src_dispose),
14819         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
14820         (rb_daap_src_get_property), (rb_daap_src_getcaps),
14821         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
14822         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
14823         (rb_daap_src_get_time): Deal with gconf callbacks where the key
14824         hasn't actually changed, fix some memory leaks, code style and release
14825         gconf notifications when the object is destroyed.
14826         
14827         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
14828         (rb_daap_source_class_init), (rb_daap_source_init),
14829         (rb_daap_source_dispose), (rb_daap_source_set_property),
14830         (rb_daap_source_get_property), (rb_daap_source_new),
14831         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
14832         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
14833         (rb_daap_sources_init), (rb_daap_sources_shutdown),
14834         (rb_daap_source_activate), (rb_daap_source_disconnect),
14835         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
14836         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
14837         release gconf notifications, handle gconf callbacks where the key
14838         hasn't changed, make "real name" and "password protected" gobject
14839         properties, fix some code style and fix a memory leak.
14841 2005-09-11  James Livingston  <jrl@ids.org.au>
14843         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14845         * shell/rb-playlist-manager.c:
14846         (rb_playlist_manager_save_playlists),
14847         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
14848         when we aren't supposed to. (Closes bug 315886)
14850 2005-09-11  James Livingston  <jrl@ids.org.au>
14852         * shell/rb-removable-media-manager.c:
14853         (rb_removable_media_manager_class_init),
14854         (rb_removable_media_manager_init),
14855         (rb_removable_media_manager_dispose),
14856         (rb_removable_media_manager_set_property),
14857         (rb_removable_media_manager_get_property),
14858         (rb_removable_media_manager_new),
14859         (rb_removable_media_manager_load_media),
14860         (rb_removable_media_manager_volume_mounted_cb),
14861         (rb_removable_media_manager_volume_unmounted_cb),
14862         (rb_removable_media_manager_mount_volume),
14863         (rb_removable_media_manager_unmount_volume),
14864         (rb_removable_media_manager_source_deleted_cb),
14865         (rb_removable_media_manager_append_media_source),
14866         (rb_removable_media_manager_set_uimanager),
14867         (rb_removable_media_manager_eject_medium_cb),
14868         (rb_removable_media_manager_cmd_eject_medium):
14869         * shell/rb-removable-media-manager.h:
14870         * sources/rb-removable-media-source.c:
14871         (rb_removable_media_source_class_init),
14872         (rb_removable_media_source_init),
14873         (rb_removable_media_source_dispose),
14874         (rb_removable_media_source_set_property),
14875         (rb_removable_media_source_get_property), (impl_get_pixbuf),
14876         (impl_delete_thyself):
14877         * sources/rb-removable-media-source.h: Add the four files that I
14878         somehow managed not to add to cvs in the last commit. Oops.
14880 2005-09-11  James Livingston  <jrl@ids.org.au>
14882         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
14883         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
14884         
14885         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14886         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
14887         removable-media-manager on startup, and handle creation of sources.
14888         
14889         * sources/rb-ipod-source.h:
14890         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
14891         (rb_ipod_source_init), (rb_ipod_source_constructor),
14892         (rb_ipod_source_dispose), (rb_ipod_source_new),
14893         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
14894         the iPod source over to the removable media framework.
14895         
14896         * sources/rb-library-source.c: (paned_size_allocate_cb),
14897         (rb_library_source_get_paned_key): fix a potential bug is a
14898         library-derived source doesn't have a paned-key
14900 2005-09-11  Bastien Nocera  <hadess@hadess.net>
14902         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
14903         mp3 when we can't get the suffix of a file (Closes: #315941)
14905 2005-09-10  James Livingston  <jrl@ids.org.au>
14907         * configure.ac: fix the mdns tests, so that it doesn't complain about
14908         not finding one, if daap support isn't being compiled in
14910 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
14912         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
14914         * daapsharing/rb-daap-dialog.c:
14915         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
14916         HIG compliancy & images.
14918         * daapsharing/rb-daap-mdns.c:
14919         (browse_cb), (resolve_cb): Better detection of local services.  
14920         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
14921         Howl's limitations.  Fix the way collision handling is done under
14922         Avahi.
14924         * daapsharing/rb-daap-share.c:
14925         (publish_cb): Better name collision handling (at least for Avahi).
14927 2005-09-10  James Livingston  <jrl@ids.org.au>
14929         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
14930         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
14931         preferences more HIG compliant (Closes #315889)
14932         
14933         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
14934         list of files to be translated
14936 2005-09-10  James Livingston  <jrl@ids.org.au>
14938         * configure.ac: fix it so that --enable-daap=no works
14939         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
14940         uninstalled
14942 2005-09-10  James Livingston  <jrl@ids.org.au>
14944         Patch from Christophe Fergeau <teuf@gnome.org>
14946         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
14947         the ipod code.
14949 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14950         * README.daap: Updating documentation
14952 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14953         * AUTHORS: Added myself.
14955         * daapsharing/rb-daap-connection.c:
14956         (connection_login), (rb_connection_new): Reorganized password
14957         handling.
14959         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
14961         * shell/rb-shell.c:
14962         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
14964         * sources/rb-daap-source.c:
14965         (rb_daap_source_activate): Better error handling when we are unable to
14966         connect.
14967         
14968 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14969         * README.daap: Fixed some terminology.
14971         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
14972         New --with-mdns=auto|howl|avahi flag to specify.
14974         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
14975         name collision dialogs.
14977         * daapsharing/rb-daap-connection.c:
14978         (connection_get_password), (build_message), (http_get)
14979         (connection_login): Ask for & use a password if the share demands it.
14981         * daapsharing/rb-daap-connection.h: Changed prototype of
14982         rb_daap_connection_new.
14983         
14984         * daapsharing/rb-daap-mdns.c: 
14985         (resolve_cb): Better detection of your own music share so it doesn't 
14986         appear in the sourcelist.
14988         * daapsharing/rb-daap-share.c:
14989         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
14990         that start on any available port.
14992         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
14994         * sources/rb-daap-source.c:
14995         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
14996         (browse_cb): Handle passworded shares. Resolve the host immediately
14997         instead of when activated.
14998         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
14999         (rb_daap_source_new): New GConf keys for UI state.
15000         (rb_daap_source_activate): Use RBPlaylistSource instead of
15001         RBDAAPPlaylistSource
15002         
15003         * sources/rb-daap-playlist-source.c/h: Removed
15005         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
15006         if the playlist is local (i.e. not DAAP or iPod).
15007         
15008         * shell/rb-playlist-manager.c:
15009         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
15010         wouldn't get saved if the last playlist hadn't changed.  Only save
15011         local playlists.
15012         
15013 2005-09-09  James Livingston  <jrl@ids.org.au>
15015         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
15016         iPod preferences pane, as it already uses the browser views as the
15017         library.
15019 2005-09-09  James Livingston  <jrl@ids.org.au>
15021         * sources/rb-library-source.c: (rb_library_source_finalize),
15022         (rb_library_source_constructor): fix gconf monitoring of library
15023         preference keys.
15024         * sources/rb-library-source.h: remove declaration of function that
15025         does not exist
15027 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15029         * player/rb-player-gst.c:
15030         (rb_player_set_time): Fix seeking in daap streams.
15032 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15034         * data/rhythmbox.schemas: Turn music share browsing on by default.
15036 2005-09-07  James Livingston  <jrl@ids.org.au>
15038         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
15040 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15041         * player/rb-player-gst.c: 
15042         (rb_player_get_time): Fix for extra << & == that accidentally made
15043         it in.
15045         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
15046         
15047 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15048         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
15049         it in last time.  Sorry.
15051 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15052         
15053         * player/rb-player-gst.c:
15054         (rb_player_get_time): Fix a small crash appearing when
15055         the uri isn't set in the player, but rb_player_get_time() is
15056         still called.
15058         * configure.ac: Also check for libsoup 2.4, which is what ships with
15059         Gnome 2.12.
15061         * po/POTFILES.in: Added music sharing files that have translatable 
15062         strings.
15064         * README.daap: New file explaining "How Music Sharing Works"  
15066 2005-09-06  Bastien Nocera  <hadess@hadess.net>
15068         * daapsharing/.cvsignore: added
15070 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15072         * daapsharing/*: Music sharing library.
15073         
15074         * sources/rb-daap-source.c/h: Music share RBSource.
15075         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
15077         * configure.ac: --enable-daap flag to turn on music sharing. Requires
15078         libsoup and a mutlicast DNS implementation (howl or avahi).
15080         * data/rhythmbox.schemas: New GConf keys for music sharing.
15082         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
15083         source right click menu.
15085         * player/rb-player-gst.c: Changes to properly play & seek in remote
15086         music share files.
15088         * shell/rb-playlist-manager.c/h:
15089         (rb_playlist_manager_get_playlists): New function to get a GList * of
15090         the playlists.
15091         (rb_playlist_manager_save_playlists): Don't save music share playlists
15092         and fixed a GObject reference leak.
15094         * shell/rb-shell.c/h:
15095         (rb_shell_append_source): No longer a local function.  Now takes a
15096         parent RBSource * argument, NULL to append a toplevel source.
15097         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
15098         source (useful for disconnecting from remote music share,
15099         specifically).
15100         (rb_shell_quit): Stop music sharing/browsing.
15101         (rb_shell_playlist_added_cb): Work with tree source structure.
15102         (rb_shell_get_property): "playlist-manager" property accessor.
15103         (rb_shell_class_init): New "playlist-manager" property.
15104         (rb_shell_construor): Append sources as toplevel sources.  Initialize
15105         daap sharing/browsing.
15106         (rb_shell_select_source): Notify source of activation/deactivation.
15108         * shell/rb-shell-prefernces.c: Music sharing preferences.
15110         * sources/rb-source.c/h: New activate, deactivate and disconnect
15111         class functions.  Activate & deactivate are notification style 
15112         functions that will tell a source when it is selected/unselected.
15113         Disconnect can be hooked up to a UI object to disconnect the source.
15115         * sources/rb-sourcelist-model.c:
15116         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
15117         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
15118         append a toplevel source.
15120 2005-09-05  James Livingston  <jrl@ids.org.au>
15122         * rhythmdb/rhythmdb-query-model.c:
15123         (rhythmdb_query_model_entry_changed_cb),
15124         (rhythmdb_query_model_do_reorder): Update the query model's totals if
15125         the duration of filesize of an entry changes.  Emit the row-changed
15126         signals that I forgot to put back in, when I was doing query sorting.
15128         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
15129         out "0 minutes" or "0 bytes".
15131 2005-09-04  James Livingston  <jrl@ids.org.au>
15133         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
15134         remove a leftover bit of the "internal-name" property of sources.
15136 2005-09-03  James Livingston  <jrl@ids.org.au>
15138         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
15139         extraneous debug message
15140         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
15141         crasher would affect any library-derived sources (which was also a
15142         memory leak).
15144 2005-09-02  Colin Walters  <walters@verbum.org>
15146         * configure.ac: Fix sytnax error.
15148         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
15149         code to disable minimization icons - need to figure out
15150         why it doesn't work...
15152 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
15154         * data/glade/song-info-multiple.glade:
15155         * data/glade/song-info.glade:
15156         * widgets/rb-song-info.c: (rb_song_info_constructor):
15157         Add a mnemonic to the newly added "Automatically rate" label
15158         in the properties dialog and use a bold typeface like all the 
15159         other labels in the dialog. (Closes bug 315089)
15161 2005-09-03  James Livingston  <jrl@ids.org.au>
15163         * sources/rb-library-source.c: (rb_library_source_class_init),
15164         (rb_library_source_finalize), (rb_library_source_constructor),
15165         (rb_library_source_set_property), (rb_library_source_get_property),
15166         (impl_get_paned_key), (paned_size_allocate_cb),
15167         (rb_library_source_state_prefs_sync), (impl_show_popup),
15168         (rb_library_source_get_paned_key):
15169         * sources/rb-library-source.h: Allow sources derived from
15170         RBLibrarySource to use different gconf keys for sort order, browser
15171         visibility and browser pane position. Fix a crasher if a derived
15172         source overrides _get_pixbuf.
15174 2005-09-02  Colin Walters  <walters@verbum.org>
15176         * shell/rb-shell.c (rb_shell_set_visibility): Move
15177         hint setting which seems to avoid races more.
15178         
15179 2005-09-03  James Livingston  <jrl@ids.org.au>
15181         * shell/rb-shell.c: fix compilation with iPod support enabled
15182         
15183 2005-09-02  Colin Walters  <walters@verbum.org>
15185         * shell/rb-shell.c (struct RBShellPrivate): Add
15186         idle_hide_mainwindow_id.
15187         (rb_shell_constructor): Move taskbar skipping hint into
15188         rb_shell_set_visibility.
15189         (idle_hide_mainwindow): New function.
15190         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
15191         racy hack to avoid rb appearing in taskbar when minimized.
15193 2005-09-01  Colin Walters  <walters@verbum.org>
15195         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
15197         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
15198         from gtkstatusicion.c.
15200         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
15202         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
15203         TrayShowWindow entry.
15204         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
15205         (rb_tray_icon_constructor): Create action group here.
15206         (rb_tray_icon_finalize): Destroy action group.
15207         (rb_tray_icon_set_property): Don't take an action group.
15208         (rb_tray_icon_new): Ditto.
15209         (tray_popup_position_menu): Some mostly boilerplate code
15210         to position menu.
15211         (rb_tray_icon_button_press_event_cb): Position menu.
15212         (rb_tray_icon_get_geom): New function used for the shell
15213         to set minimization hints.
15215         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
15217         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
15218         (struct RBShellPrivate): Change visible to iconified.
15219         (set_icon_geometry): New function from Søren Sandmann to
15220         tell Metacity where to draw the minimization animiation.
15221         (rb_shell_window_state_cb): Update iconified.
15222         (rb_shell_get_visibility): New function to say whether
15223         or not we're currently visible.
15224         (rb_shell_set_visibility): Update to minimize to
15225         tray or present as appropriate.
15226         (rb_shell_window_delete_cb): On window close, just
15227         minimize to tray if we're deleted.
15228         (rb_shell_set_window_title): Kill old notification code.
15229         (rb_shell_toggle_visibility): Nwe function.
15230         (rb_shell_cmd_toggle_visibility): Call it.
15231         (rb_shell_constructor): Skip the taskbar.
15232         (tray_destroy_cb): Better debugging.
15233         
15234 2005-09-01  Colin Walters  <walters@verbum.org>
15236         * data/ui/rhythmbox-ui.xml: Add MusicClose.
15238         * configure.ac: Enable bonobo by default.
15239         
15240 2005-09-01  Colin Walters  <walters@verbum.org>
15242         * configure.ac: Default to old art.  Add macros subdir.
15244         * Makefile.am (SUBDIRS): Add macros.
15246         * macros/Makefile.am: New.
15247         
15248 2005-09-01  Colin Walters  <walters@verbum.org>
15250         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
15251         rb-shell-player.xml.
15253         * remote/dbus/rb-remote-dbus.h: Deleted.
15254         
15255         * remote/dbus/Makefile.am: Delete all the junk, just dist
15256         rb-print-playing.py and rb-set-rating.py.
15258         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
15260         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
15262 2005-09-02  James Livingston  <jrl@ids.org.au>
15264         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
15265         file from cvs
15267         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
15268         (rb_shell_constructor): Patches from Jonathan Matthew
15269         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
15270         a crash when using "browse this artist".
15272 2005-08-31  Colin Walters  <walters@verbum.org>
15274         * configure.ac: Add --with-old-art configure switch.  Also
15275         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
15276         but it doesn't work.
15278         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
15279         Don't use eel_create_colorized_pixbuf for new art.
15280         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
15282         * data/art-clearlooks: New artwork.
15283         
15284 2005-08-31  Colin Walters  <walters@verbum.org>
15286         * shell/main.c (main): Fix Bastien's commit to continue to focus
15287         the window with GTK+ 2.8 at least.
15288         
15289 2005-08-31  Colin Walters  <walters@verbum.org>
15291         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
15292         is already loaded.
15294         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
15296 2005-08-31  Bastien Nocera  <hadess@hadess.net>
15298         * README: remove mentions of the xine-lib backend
15299         * shell/main.c: (main): make it compilable with gtk+ < 2.8
15301 2005-08-30  Colin Walters  <walters@verbum.org>
15303         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
15304         Make non-visible sources insensitive.
15305         
15306 2005-08-30  Colin Walters  <walters@verbum.org>
15308         * shell/rb-shell.c: Don't use GConf for selected source; it's
15309         confusing to have the selected source change after startup,
15310         and since we don't save other things it's not worth saving this.
15312         * sources/rb-playlist-source.c:
15313         * sources/rb-library-source.c:
15314         * sources/rb-iradio-source.c:
15315         * sources/rb-ipod-source.c: Delete internal-name property usage.
15316         * sources/rb-source.c: Delete internal-name property.
15318         * data/rhythmbox.schemas: Delete selected_source.
15319         
15320 2005-08-30  Colin Walters  <walters@verbum.org>
15322         * sources/rb-sourcelist.c: Make playing source bold instead of
15323         displaying a pixbuf; it's much less ugly.
15324         
15325 2005-08-30  Colin Walters  <walters@verbum.org>
15327         * sources/rb-source.c:
15328         * sources/rb-source.h: New virtual method try_playlist.
15330         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
15331         impl_try_playlist.
15332         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
15333         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
15334         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
15335         need to.
15336         (stations_view_drag_data_received_cb): Don't check for iradio uris;
15337         in theory we should though...
15339         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
15340         list in rb_shell_construct now.
15341         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
15342         RBiPodSource.
15343         (rb_shell_constructor): Create library, iradio, ipod here.
15344         (rb_shell_source_deleted_cb): Use source directly instead of
15345         indirecting through type.
15346         (rb_shell_sync_selected_source): Ditto.
15347         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
15348         from the type instead of special-casing.
15349         (rb_shell_guess_type_for_uri) 
15350         (rb_shell_add_uri)
15351         (handle_one_uri_with_possible_metadata): New functions.
15352         (rb_shell_load_uri): Refactor to allow loading playlists again,
15353         also use other URI infrastructure.
15355         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
15356         (rb_shell_player_error): Always set entry error on error, instead
15357         of depending on EOF behavior.
15359         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
15360         to just invoke rb_shell_add_uri.
15361         (rb_playlist_manager_parse_file): Return error instead of tossing
15362         up dialog box directly.
15363         (load_playlist_response_cb): Display error here.
15364         (add_uri_to_playlist): Delete.
15365         (handle_playlist_entry_into_playlist_cb): Renamed to
15366         handle_playlist_entry_cb.
15368         * shell/rb-playlist-manager.h: Add error, update prototype.
15370         * lib/rb-file-helpers.c:
15371         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
15373 2005-08-29  Colin Walters  <walters@verbum.org>
15375         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
15376         if entry already exists.  Use rhythmdb_entry_set_uninserted.
15378         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
15379         needlessly duping string, and use rhythmdb_entry_set_uninserted.
15380         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
15382         * shell/rb-shell.h (enum RBShellError): Add some more errors.
15383         Prototype rb_shell_set_song_property.
15385         * shell/rb-shell.xml: Export setSongProperty.
15387         * shell/rb-shell.c (rb_shell_set_song_property): New function.
15388         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
15389         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
15391         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
15392         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
15393         want to notify of the change.
15394         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
15396         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
15397         logic error; idle functions would be enqueued for each set.
15398         (rhythmdb_entry_set): Fix assertion logic error.
15400         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
15401         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
15402         Return if the entry already exists.
15403         
15404 2005-08-29  Colin Walters  <walters@verbum.org>
15406         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
15407         "inserted" member which we use to keep track of
15408         whether or not an entry is in the DB.  Prototype
15409         rhythmdb_entry_set_uninserted.
15411         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
15412         flag.
15413         (rhythmdb_entry_insert): Assert entry is not already inserted.
15414         (rhythmdb_process_metadata_load): Update to call _set_uninserted
15415         just after creating entry.
15416         (rhythmdb_entry_set): Document, and fail on uninserted entries.
15417         (rhythmdb_entry_set_nonotify): Ditto.
15418         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
15419         entries.
15420         (rhythmdb_entry_set_internal): Change notify flag to
15421         notify_if_inserted.  Also move notification after assertions.
15423         Update all existing callers of rhythmdb_entry_set_internal
15424         to give TRUE for notify_if_inserted; this should be what
15425         we want but may be an efficiency hit.
15426         
15427 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15429         * shell/rb-shell-player.c: (rb_shell_player_init),
15430         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
15431         (rb_shell_player_set_playing_source_internal),
15432         (rb_shell_player_sync_with_selected_source): Notify the player when an
15433         entry has updated the title, album or artist field, and resync the big
15434         display.
15435         
15436         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15437         * sources/rb-library-source.c: (rb_library_source_class_init),
15438         (impl_get_config_widget):
15439         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
15440         * sources/rb-source.c:
15441         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
15442         get_album functions in rb-source and adapted other sources accordingly.
15443         
15444 2005-08-29  Colin Walters  <walters@verbum.org>
15446         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
15447         signal_change member.
15448         (threadsafe_entry_set): New function.
15449         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
15450         (rhythmdb_entry_set_nonotify): New function; just call
15451         threadsafe_entry_set with FALSE.
15452         (rhythmdb_entry_set_internal): Take a notify flag; if true
15453         add the change to our pending set.
15455         Also update all internal callers of rhythmdb_entry_set_internal
15456         to pass FALSE.  Some of these may be bugs however and need to
15457         pass TRUE...
15459         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
15460         rhythmdb_entry_set, and rename rhythmdb_entry_set to
15461         rhythmdb_entry_set_nonotify.
15463         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
15464         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
15466         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
15468         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
15469         * sources/rb-source.c (rb_source_update_play_statistics): 
15470         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
15471         * sources/rb-ipod-source.c (entry_set_string_prop) 
15472         (load_ipod_db_idle_cb): 
15473         * shell/rb-shell.c (rb_shell_set_rating_impl): 
15474         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
15475         (info_available_cb): 
15476         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
15477         (rb_station_properties_dialog_sync_entries): 
15478         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
15480         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
15481         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
15482         
15483 2005-08-29  Colin Walters  <walters@verbum.org>
15485         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
15487         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
15488         linking insanity.
15490         * widgets/rb-header.c (sanitize_string): New function, extracted
15491         from old info_url.  Be sure to always strip the string.
15492         (info_url): Rewrite to take artist/album, and generate a sane
15493         URL for them from last.fm, which is better than allmusic.com in
15494         that they support Rhythmbox, and have a *SANE* URL scheme.
15495         (artist_info_url, album_info_url): Delete.
15496         (rb_header_sync): Use info_url.
15498 2005-08-29  James Livingston  <jrl@ids.org.au>
15500         * sources/rb-source.c: (rb_source_search): Check to ensure that this
15501         is implemented before calling it. Many sources don't implement the
15502         method.
15504 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
15506         * data/glade/create-playlist.glade:  Cleanup the layout,
15507         and add a few more mnemonics.
15508         * shell/rb-playlist-manager.c:
15509         (rb_playlist_manager_cmd_load_playlist),
15510         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
15511         capitalization for window titles.
15512         * widgets/rb-query-creator-properties.c: Add mnemonics
15513         to checkbutton labels.
15514         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
15515         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
15517 2005-08-28  Colin Walters  <walters@verbum.org>
15519         * data/rhythmbox.schemas: Delete search_text for library
15520         and iradio; this isn't a persistent value anymore.
15521         Closes #313757.
15522         
15523         * sources/rb-source.h:
15524         * sources/rb-source.c: Delete impl_can_search.
15526         * sources/rb-iradio-source.c: Delete search_text usage.
15527         * sources/rb-library-source.c: Ditto.
15529         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
15530         search when source is set, and just do rb_source_search in
15531         rb_source_header_search_cb.
15533         * shell/rb-shell.c (rb_shell_append_source): Don't
15534         initiate search.
15536         * shell/Makefile.am: Don't dist dashboard.c.
15538 2005-08-28  Colin Walters  <walters@verbum.org>
15540         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
15541         
15542 2005-08-28  Colin Walters  <walters@verbum.org>
15544         * data/org.gnome.Rhythmbox.service.in: New.
15546         * data/Makefile.am: Install service file.
15548         * configure.ac: Define DBUS_SERVICES_DIR.
15550         * autogen.sh: Set ACLOCAL_FLAGS.
15552         * macros/acinclude.m4: New.
15553         
15554 2005-08-28  Colin Walters  <walters@verbum.org>
15556         Initial patch from Jonathan Matthew; closes 313684.
15558         * rhythmdb/rhythmdb-tree.c:
15559         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
15560         (save_entry): Return on error.
15561         (rhythmdb_tree_save): Handle error when saving the
15562         db; additionally, handle errors from fclose and unlink,
15563         and print error too.
15565 2005-08-28  Colin Walters  <walters@verbum.org>
15567         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
15568         extra _.
15569         
15570 2005-08-28  Colin Walters  <walters@verbum.org>
15572         * configure.ac: Change iPod support to --with-ipod;
15573           automatically enable it if we have HAL.  Try to
15574           support both HAL 0.5 and HAL 0.2.  Break out
15575           totem-plparser into its own check so later we
15576           can do version tests there too.
15577           Kill dashboard support.
15578         
15579         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
15580         to support HAL > 0.5, but preserve the old code for HAL < 0.5
15581         Closes #310017.
15582         
15583         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
15584         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
15586         * sources/Makefile.am: Also handle
15587         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
15589         * shell/dashboard.c: Delete; someone should just write a little
15590         python shim which lists on the D-BUS interface and writes the
15591         stuff to Dashboard.  Even better Dashboard should be ported
15592         to D-BUS and do the listening itself, perhaps on an abstract
15593         "org.gnome.MusicPlayer" interface or something.
15595         * shell/rb-shell.c: Kill dashboard support.
15597 2005-08-28  Colin Walters  <walters@verbum.org>
15599         * remote/dbus/rb-print-playing.py: New file.
15601 2005-08-28  Colin Walters  <walters@verbum.org>
15603         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
15604         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
15606         * shell/rb-shell-player.h:
15607         * shell/rb-shell-player.c: Add playing-uri-changed signal.
15608         * shell/rb-shell-player.xml: Export it.
15610         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
15611         (rb_shell_error_quark): New.
15613         * shell/rb-shell.h: Prototype.  Also add RBShellError.
15614         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
15615         
15616 2005-08-28  Colin Walters  <walters@verbum.org>
15618         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
15619         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
15620         bonobo_unlock.
15621         (rb_remote_bonobo_preinit): Lock setting moved here.
15622         (rb_remote_bonobo_init): From here.
15624         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
15625         Also invoke handle_cmdline in the right place.
15626         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
15627         GFunc.
15629 2005-08-28  James Livingston  <jrl@ids.org.au>
15631         * NEWS: keep the NEWS file up to date, so we don't have to do it all
15632         when 0.9.1 comes around.
15634 2005-08-28  James Livingston  <jrl@ids.org.au>
15636         * iradio/rb-new-station-dialog.c:
15637         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
15638         bug 314477.
15640 2005-08-28  James Livingston  <jrl@ids.org.au>
15642         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15644         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
15645         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
15646         is a song is longer than 60 minutes. Closes bug 313311.
15648 2005-08-27  James Livingston  <jrl@ids.org.au>
15650         * data/glade/create-playlist.glade:
15651         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
15652         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
15653         "minutes" as an option in the playlist limit menu.
15655         * rhythmdb/rhythmdb-query-model.c:
15656         (rhythmdb_query_model_class_init),
15657         (rhythmdb_query_model_set_property),
15658         (rhythmdb_query_model_get_property),
15659         (rhythmdb_query_model_update_limited_entries): Allow query models to
15660         have a time limit
15661         
15662         * shell/rb-playlist-manager.c:
15663         (rb_playlist_manager_set_automatic_playlist),
15664         (rb_playlist_manager_cmd_edit_automatic_playlist):
15665         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
15666         (rb_playlist_source_get_query), (impl_receive_drag),
15667         (rb_playlist_source_new_from_xml),
15668         (rb_playlist_source_save_to_xml),
15669         (rb_playlist_source_songs_sort_order_changed_cb),
15670         (rb_playlist_source_do_query):
15671         * sources/rb-playlist-source.h:
15672         * widgets/rb-query-creator.h: Allow playlists to be limited by time
15674 2005-08-27  James Livingston  <jrl@ids.org.au>
15676         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
15678         * configure.ac:
15679         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
15680         non-standard location. Closes bug 314640.
15682 2005-08-26  Colin Walters  <walters@verbum.org>
15683         
15684         Patch from Olivier Blin <oblin@mandriva.com>
15686         * widgets/eggnotificationbubble.c (draw_bubble): 
15687         Handle extreme-left case as well.
15688         
15689 2005-08-26  Colin Walters  <walters@verbum.org>
15691         * shell/rb-shell.c (idle_save_state): Don't do this.
15692         (rb_shell_construct): Remove idle calls to idle_save_state.
15693         We should save the playlists automatically when they're
15694         modified.
15695         (rb_shell_load_uri): Don't try to re-stat entry if it already
15696         exists.
15698         * shell/rb-shell-player.c: Keep track of entry we are attempting
15699         to play.
15700         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
15701         Don't double-free error.
15702         (rb_shell_player_play_entry): Signal errors.
15703         (rb_shell_player_entry_activated_cb): Ditto.
15704         (rb_shell_player_property_row_activated_cb): Ditto.
15705         (rb_shell_player_set_playing_source_internal): Unset attempted
15706         playing entry.
15707         (rb_shell_player_error): Refactor to be usable both sync and
15708         async.  Handle case where displayed entry differs from entry.
15709         (error_cb): Move GDK locking here.
15711         * shell/main.c (main): Drop most commandline arguments for D-BUS;
15712         people can just use dbus-send or python.  We only support focusing
15713         and loading files.
15714         (load_uri_args): New function, extracted from handle_cmdline.
15715         (dbus_load_uri, bonobo_load_uri): New functions.
15717         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
15718         appropriate.
15720         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
15721         * remote/dbus/rb-remote-dbus.c: Deleted.
15723         * player/rb-player-gst.c: Clear any pending idle handlers when we
15724         close the player.  Signal errors generated during open/play etc
15725         as synchronous errors.
15727         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
15728         
15729 2005-08-26  Colin Walters  <walters@verbum.org>
15731         * shell/rb-shell.c (rb_shell_present): Try harder.
15733 2005-08-26  Colin Walters  <walters@verbum.org>
15735         * shell/rb-shell.c (rb_shell_present): Try to handle
15736         GTK_MINOR_VERSION < 8.
15738 2005-08-26  James Livingston  <jrl@ids.org.au>
15740         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
15741         <pbrobinson@gmail.com>
15743 2005-08-26  Colin Walters  <walters@verbum.org>
15745         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
15747 2005-08-25  Colin Walters  <walters@verbum.org>
15749         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
15750         Delete.
15751         (rb_shell_player_do_next_with_rating): Move back into
15752         rb_shell_player_do_next.
15753         (rb_shell_player_entry_activated_cb): Remove call to
15754         rb_shell_player_auto_adjust_rating.
15755         (do_next_idle): Just call rb_shell_player_do_next.
15757         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
15759 2005-08-25  Colin Walters  <walters@verbum.org>
15761         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
15762         before gtk_window_present_with_time.
15763         
15764 2005-08-25  Colin Walters  <walters@verbum.org>
15766         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
15767         default.
15769         * shell/rb-shell.c (rb_shell_constructor): Adapted from
15770         rb_shell_construct.  This is so we only have to do g_object_new.
15771         (rb_shell_get_player): New function.
15772         (rb_shell_get_player_path): Ditto.
15773         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
15774         
15775         * shell/rb-shell.h: Prototype them.
15777         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
15778         export over D-BUS.
15779         (reemit_playing_signal): New function.
15780         (rb_shell_player_open_playlist_location): Use return values from
15781         rb_player_open, rb_player_close, etc. instead of checking "error".
15782         Return a gboolean on failure.
15783         (rb_shell_player_open_entry): Just open entry location, don't
15784         print to stderr.
15785         (rb_shell_player_play): Handle retval from rb_player_play.  Return
15786         a gboolean.
15787         (do_next_idle): Move logic for handling of end of playlist here.
15788         (rb_shell_player_set_playing_entry): Take a GError, return a
15789         gboolean.  Update to use gboolean return values.
15790         (rb_shell_player_do_previous): Delete lots of crazy duplicate
15791         logic.  Signal an error on end of playlist.  Also signal error if
15792         we're not playing.  Move heuristic for replaying the song into
15793         rb_shell_player_cmd_previous.
15794         (rb_shell_player_do_next_with_rating): Signal error on end of
15795         playlist.
15796         (rb_shell_player_do_next): Return errors.
15797         (rb_shell_player_cmd_previous): Heuristic for restarting song
15798         moved here; the idea is you generally only want that from the GUI.
15799         (rb_shell_player_cmd_play): Handle error.
15800         (rb_shell_player_playpause): Signal errors.
15801         (filter_mmkeys): Use rb_shell_player_cmd_previous and
15802         rb_shell_player_cmd_next in favor of the internal _do functions.
15803         
15804         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
15805         errors.  Update prototypes for above changes.
15807         * shell/main.c: More tightly integrate D-BUS; register various
15808         major singleton objects here.  Fix handle_cmdline so we only
15809         process extra arguments, not every argument.
15811         * shell/Makefile.am: Generate D-BUS glue headers.
15813         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
15814         into shell/main.c.  Now this file just acts as a client library.
15815         Not heavily tested.
15817         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
15818         Moved here.
15819         (rb_remote_bonobo_init): Move long CORBA rant here along with
15820         setting of lock functions.
15822         * player/rb-player-gst.c (rb_player_construct)
15823         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
15824         on error.
15826         * player/rb-player.h: Update prototypes.
15828         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
15829         rb-remote-bonobo.c.
15830         (rb_threads_init): Don't set gdk lock functions here.
15832 2005-08-25  James Livingston  <jrl@ids.org.au>
15834         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15836         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
15837         * lib/rb-tree-dnd.h:
15838         * rhythmdb/rhythmdb-property-model.c:
15839         (rhythmdb_property_model_class_init),
15840         (rhythmdb_property_model_drag_source_init),
15841         (rhythmdb_property_model_iter_parent),
15842         (rhythmdb_property_model_row_draggable),
15843         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
15844         (rhythmdb_property_model_drag_data_get),
15845         (rhythmdb_property_model_enable_drag):
15846         * rhythmdb/rhythmdb-property-model.h:
15847         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
15848         (rb_playlist_manager_set_property), (append_new_playlist_source),
15849         (rb_playlist_manager_save_playlists):
15850         * shell/rb-shell.c: (rb_shell_construct),
15851         (sourcelist_drag_received_cb):
15852         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15853         * sources/rb-playlist-source.c: (impl_receive_drag):
15854         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
15855         (rb_sourcelist_model_drag_dest_init),
15856         (rb_sourcelist_model_set_dnd_targets),
15857         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
15858         (rb_sourcelist_model_row_drop_position),
15859         (rb_sourcelist_model_get_drag_target),
15860         (rb_sourcelist_model_drag_data_get):
15861         * sources/rb-sourcelist-model.h:
15862         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
15863         (rb_sourcelist_init), (rb_sourcelist_get_property),
15864         (rb_sourcelist_selection_changed_cb):
15865         * sources/rb-sourcelist.h:
15866         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
15867         improve drag-n-drop support. Allow dragging of item from property
15868         views to the source list, to create new automatic playlists. Allow
15869         playlist re-ordering. Fix dragging from Rhythmbox to other
15870         applications. (Closes bug 147337)
15872 2005-08-24  Colin Walters  <walters@verbum.org>
15874         Patch from Olivier Blin <oblin@mandriva.com>
15876         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
15877         correctly in the case where the window is next to monitor edge.
15879 2005-08-24  James Livingston  <jrl@ids.org.au>
15881         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
15882         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
15883         a gobject property to get the query model that backs the playlist.
15885 2005-08-24  James Livingston  <jrl@ids.org.au>
15887         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
15888         (handle_playlist_entry_into_playlist_cb),
15889         (rb_playlist_manager_playlist_entries_changed): Disable the "create
15890         audio cd" menu item when a non-playlist source is selected, or the
15891         playlist is empty. (Closes Bug 313253)
15893 2005-08-24  James Livingston  <jrl@ids.org.au>
15895         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
15896         Fix the playlist length checkso it doesn't report 0 for automatic
15897         playlists. This was stopping automati playlists being burnt to cd.
15899 2005-08-24  James Livingston  <jrl@ids.org.au>
15901         * configure.ac:
15902         * sources/rb-playlist-source-recorder.c: (burn_cd):
15903         * sources/rb-playlist-source.c:
15904         (rb_playlist_source_songs_sort_order_changed_cb):
15905         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
15906         more warnings that occur when compiling RPMs on Fedora.
15908 2005-08-24  James Livingston  <jrl@ids.org.au>
15910         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
15911         was stopping some distros gcc version compiling.
15913 2005-08-24  James Livingston  <jrl@ids.org.au>
15915         * NEWS:
15916         * data/glade/create-playlist.glade:
15917         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
15918         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
15919         (rhythmdb_query_free), (rhythmdb_query_serialize),
15920         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
15921         * rhythmdb/rhythmdb.h:
15922         * shell/rb-playlist-manager.c:
15923         (rb_playlist_manager_set_automatic_playlist),
15924         (rb_playlist_manager_cmd_edit_automatic_playlist):
15925         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
15926         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
15927         (impl_receive_drag), (rb_playlist_source_new_from_xml),
15928         (rb_playlist_source_save_to_xml),
15929         (rb_playlist_source_songs_sort_order_changed_cb),
15930         (rb_playlist_source_do_query):
15931         * sources/rb-playlist-source.h:
15932         * widgets/Makefile.am:
15933         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
15934         (rb_entry_view_set_sorting_order):
15935         * widgets/rb-query-creator-private.h:
15936         * widgets/rb-query-creator-properties.c:
15937         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
15938         (stringCriteriaGetWidgetData),
15939         (escapedStringCriteriaSetWidgetData),
15940         (escapedStringCriteriaGetWidgetData), (set_rating_score),
15941         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
15942         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
15943         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
15944         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
15945         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
15946         (relativeTimeCriteriaCreateWidget),
15947         (relativeTimeCriteriaSetWidgetData),
15948         (relativeTimeCriteriaGetWidgetData):
15949         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
15950         (rb_query_creator_class_init), (rb_query_creator_constructor),
15951         (rb_query_creator_dispose), (rb_query_creator_set_property),
15952         (rb_query_creator_get_property), (rb_query_creator_load_query),
15953         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
15954         (get_entry_for_property), (rb_query_creator_get_query),
15955         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
15956         (limit_toggled_cb), (lookup_row_by_widget),
15957         (remove_button_click_cb), (append_row),
15958         (get_property_index_from_proptype), (select_criteria_from_value),
15959         (property_option_menu_changed), (create_property_option_menu),
15960         (create_criteria_option_menu), (sort_option_menu_changed),
15961         (setup_sort_option_menu):
15962         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
15963         playlists. The two most notable improvements are 1) adding more
15964         properties to the query creator, making it much easier to add more in
15965         the future, and 2) allow playlists to be sorted, from the query editor
15966         if they gave limits, and by clicking on column headers if they don't.
15968         Files added: widgets/rb-query-creator-private.h,
15969         sources/rb-query-creator-properties.c
15971 2005-08-21  James Livingston  <jrl@ids.org.au>
15973         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
15974         error=NULL. This stops some crashes.
15976 2005-08-19  Colin Walters  <walters@verbum.org>
15978         Patch from Olivier Blin <oblin@mandriva.com>
15980         * widgets/eggnotificationbubble.c (force_window): Support top
15981         orientation.
15982         * widgets/eggnotificationbubble.h: Remove
15983         egg_notification_bubble_force_window from header.
15984         
15985 2005-08-18  James Livingston  <jrl@ids.org.au>
15987         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
15988         with the changes since then.
15990 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
15992         * shell/rb-shell-player.c: (rb_shell_player_init),
15993         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
15994         (rb_shell_player_volume_widget_changed_cb):
15995         * sources/rb-iradio-source.c:
15996         * sources/rb-library-source.c:
15997         * sources/rb-playlist-source.c:
15998         * widgets/Makefile.am:
15999         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
16000         (bacon_volume_button_class_init), (bacon_volume_button_init),
16001         (bacon_volume_button_dispose), (bacon_volume_button_new),
16002         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
16003         (bacon_volume_button_scroll), (bacon_volume_button_press),
16004         (cb_button_timeout), (cb_button_press), (cb_button_release),
16005         (bacon_volume_release_grab), (cb_dock_press),
16006         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
16007         (bacon_volume_scale_new), (bacon_volume_scale_press),
16008         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
16009         * widgets/bacon-volume.h:
16010         * widgets/rb-volume.c:
16011         * widgets/rb-volume.h:
16012           Use BaconVolumeButton (#300867).
16014 2005-08-17  James Livingston  <jrl@ids.org.au>
16016         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
16017         (rhythmdb_process_metadata_load): don't reset the First Seen time
16018         whenever we recheck the metadata.
16020 2005-08-17  James Livingston  <jrl@ids.org.au>
16022         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16023         temporary workaround to stop crashes when trying to burn an empty
16024         playlist. Doesn't disable the menu item which is the better solution
16025         (Bug 313253).
16027 2005-08-15  James Livingston  <jrl@ids.org.au>
16029         * shell/rb-source-header.c: (rb_source_header_init),
16030         (rb_source_header_sync_control_state),
16031         (rb_source_header_search_activate_cb):
16032         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
16033         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
16034         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
16035         (rb_search_entry_init), (rb_search_entry_searching),
16036         (rb_search_entry_activate_cb):
16037         * widgets/rb-search-entry.h: Move focus to the entry view when user
16038         presses enter in the search box. Patch from Paolo Borelli
16039         <pborelli@katamail.com> (Closes bug 128110)
16041 2005-08-15  James Livingston  <jrl@ids.org.au>
16043         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
16044         (rb_playlist_manager_new_playlist):
16045         * shell/rb-playlist-manager.h:
16046         * shell/rb-shell.c: (rb_shell_construct),
16047         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
16048         the source list to be shown when a new playlist is created. (Closes
16049         bug 161935)
16051 2005-08-15  James Livingston  <jrl@ids.org.au>
16053         * widgets/rb-header.c: (rb_header_init),
16054         (rb_header_set_show_timeline): disable the seek slider, rather than
16055         hiding it, which more closely follows the HIG. (Closes bug 139102)
16057 2005-08-13  Colin Walters  <walters@verbum.org>
16059         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
16060         rb_shell_hidden_notify.
16061         (rb_shell_hidden_notify): Notify if the shell is hidden.
16062         (rb_shell_set_visibility_impl): Debug goo.
16064         * shell/rb-shell.h: Export rb_shell_hidden_notify.
16066         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
16067         when the user clicks on notification.
16069         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
16070         CD burn is complete.
16071         (rb_playlist_source_recorder_finalize): Unref shell.
16072         (rb_playlist_source_recorder_new): Take shell.
16074         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
16075         Pass shell to RBPlaylistSourceRecorder.
16076         
16077 2005-08-13  Colin Walters  <walters@verbum.org>
16079         * lib/rb-thread.c:
16080         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
16081           time to convert.
16083 2005-08-13  Colin Walters  <walters@verbum.org>
16085         * widgets/eggnotificationbubble.h:
16086         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
16087         * widgets/eggtrayicon.c:
16088         * widgets/eggtrayicon.h: Add notification API.
16089         * shell/rb-tray-icon.c:
16090         * shell/rb-tray-icon.h: Add notification API.
16091         * shell/rb-shell.c: Notify on song change.
16093 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16095         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
16096         Correct an inversion of two lines causing NULL to be unreffed
16098 ============ Version 0.9.0
16100 2005-08-10  Bastien Nocera  <hadess@hadess.net>
16102         * configure.ac: 0.9.0, whee!
16103         * NEWS: badly updated
16104         * remote/bonobo/Makefile.am:
16105         * remote/bonobo/rb-remote-bonobo.h:
16106         * shell/Makefile.am:
16107         * shell/main.c: make distcheck fixes