2006-06-18 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
blob93c1e0639581bf3c9877ce9538fd3e99b9da6363
1 2006-06-18  James Livingston  <doclivingston@gmail.com>
3         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
5         * widgets/rb-entry-view.h:
6         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
7         (rb_entry_view_append_column_custom),
8         (rb_entry_view_insert_column_custom): add support for inserting custom
9         columns at arbitrary locations, rather than just appending to the end.
11         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
12         the playlists "track number" column go at the start, and add a normal
13         track number column. Fixes #329986.
15 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
17         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
18         a mnemonic conflict.  Add ellipses to the edit button.
19         * sources/rb-library-source.c:
20         (rb_library_source_edit_profile_clicked_cb),
21         (impl_get_config_widget):  Hide dialog separator.  Assign a 
22         mnemonic widget to the labels. Fixes #344114.
24 2006-06-18  James Livingston  <doclivingston@gmail.com>
26         * configure.ac: bump version
27         * NEWS: add NEWS for 0.9.5
29 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
31         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
32         (rb_uri_handle_recursively):
33         Don't attempt to recurse into directories we can't open.  
34         Fixes #341485.
36 2006-06-18  James Livingston  <doclivingston@gmail.com>
38         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
40         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
41         #344610.
43 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
45         * bindings/python/rb.defs:
46         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
47         * shell/rb-shell-player.h:
48         * shell/rb-shell.c: (rb_shell_play_entry):
49         Add source parameter to rb_shell_player_play_entry, using the selected
50         source if not specified.
52         * shell/rb-play-order.c: (rb_play_order_class_init),
53         (rb_play_order_finalize), (rb_play_order_query_model_changed),
54         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
55         (default_playing_entry_removed):
56         * shell/rb-play-order.h:
57         Move entry removal handling back to the row-deleted signal, as we need
58         the entry to be present in the model.  When changing to the next entry
59         after the playing entry is deleted, set the new entry as the playing
60         entry and then sync it to the player in an idle handler, so we don't
61         end up playing it if it was removed too.
62         * shell/rb-play-order-queue.c:
63         (rb_queue_play_order_playing_entry_changed),
64         (rb_queue_play_order_playing_entry_removed):
65         Use the playing-entry-removed handler from the play order class,
66         setting a flag so we don't try to remove the already-removed entry
67         from the model.
69         This makes removal of the playing entry from playlists etc. work more
70         or less correctly for all play orders.  Fixes #344627.
72 2006-06-17  James Livingston  <doclivingston@gmail.com>
74         patch by: Elijah Newren  <newren@gmail.com>
76         * tests/test-rhythmdb.c: fix the build with older versions of check
77         (again). Fixes #343718.
79 2006-06-17  James Livingston  <doclivingston@gmail.com>
81         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
82         name for capsfilter's "caps" property. Fixes #344968.
84 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
86         * shell/rb-shell-player.c: (rb_shell_player_playpause):
87         Don't leak the selected entry list when finding an entry to play.
89 2006-06-17  James Livingston  <doclivingston@gmail.com>
91         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
92         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
93         as a O(1) one works fine, and it will get called often when the user
94         deleted multiple tracks. Part of #344922.
96 2006-06-17  James Livingston  <doclivingston@gmail.com>
98         * shell/rb-shell-player.c: (rb_shell_player_stop): make
99         rb_shell_player_stop and rb_shell_player_playpause not mutually
100         recursive. Fixed #336912.
102 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
104         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
105         Treat nested elements inside properties as unknown.  Fixes parsing of
106         podcast feeds with unescaped HTML in description tags, bug #344532.
108 2006-06-15  William Jon McCann  <mccann@jhu.edu>
110         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
111         when quitting.  Fixes #344875.
113 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
115         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
116         Move the playing-entry-removed handling to after the normal entry
117         delete handling, since we're called after the entry has been removed
118         from the query model now.  Fixes crashes described in #344627.
120 2006-06-13  William Jon McCann  <mccann@jhu.edu>
122         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
123         (rb_rating_get_rating_from_widget):
124         * widgets/rb-rating.c: (rb_rating_class_init),
125         (rb_rating_finalize), (rb_rating_get_property),
126         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
127         (rb_rating_button_press_cb):
128         Don't crash when ratings icons can't be found.  Fixes #344533.
130 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
132         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
134 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
136         * Makefile.am:
137         * configure.ac:
138         * remote/Makefile.am:
139         * remote/dbus/Makefile.am:
140         * remote/dbus/rb-client.c:
141         * shell/Makefile.am:
142         New dbus client program providing --play/--next etc. arguments.
143         Fixes #340863, #155763.
145 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
147         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
148         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
150 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
152         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
154         * rhythmdb/rhythmdb-query-model.c:
155         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
156         to Library incorrectly
158 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
160         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
161         Return input string untouched if gnome_vfs_uri_new returns NULL.
162         * sources/rb-static-playlist-source.c: (impl_receive_drag),
163         (rb_static_playlist_source_add_list_uri):
164         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
165         URIs don't break it.  Fixes #339033.
167 2006-06-08  James Livingston  <doclivingston@gmail.com>
169         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
170         for sources on the edge (i.e. the queue). Fixes #328409.
172         * sources/rb-ipod-source.c: fix typo
174 2006-06-08  James Livingston  <doclivingston@gmail.com>
176         * configure.ac:
177         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
178         --enable-ipod-writing to enable the ipod syncing code.
180 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
182         * sources/rb-library-source.c: (layout_example_label_update):
183         add missing comma so we don't generate broken markup.
185 2006-06-08  James Livingston  <doclivingston@gmail.com>
187         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
188         tag-merging with id3v2mux as well as id3mux. From #342330.
190 2006-06-07  James Livingston  <doclivingston@gmail.com>
192         * tests/test-rhythmdb.c: #define fail_if for old version of check
193         which don't have it. Hopefully fixes #343718.
195 2006-06-07  James Livingston  <doclivingston@gmail.com>
197         * shell/rb-playlist-manager.c:
198         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
199         g_value_array_free with NULL. Fixes #341053.
201 2006-06-07  James Livingston  <doclivingston@gmail.com>
203         * shell/rb-playlist-manager.c:
204         (rb_playlist_manager_playlist_entries_changed),
205         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
206         instead of "row-removed", which fixes updating "burn playlist"
207         sensitivity. Fixes #331119.
209 2006-06-07  James Livingston  <doclivingston@gmail.com>
211         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
212         rather than restarting if the source uses _RETRY and there is an
213         actual error (like an undecodable stream) rather than it just dropping
214         out and causing EOS.
216 2006-06-07  James Livingston  <doclivingston@gmail.com>
218         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
219         free the pixbufs if they couldn't be loaded. Fixed #343852.
221 2006-06-07  James Livingston  <doclivingston@gmail.com>
223         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
224         the close button on the dialog work. Fixes #335346.
226 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
228         * sources/rb-sourcelist-model.c: (path_is_droppable),
229         (path_is_reorderable):
230         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
231         (row_activated_cb), (emit_show_popup), (key_release_cb),
232         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
233         Ignore group marker rows in the source list.  Fixes #344089, a couple
234         of other crashers, and some weird UI glitches too.
236 2006-06-07  James Livingston  <doclivingston@gmail.com>
238         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
239         the seeking query fails. This is needed because many gst elements
240         don't implement the seeking query yet. Should fix 329977.
242 2006-06-06  James Livingston  <doclivingston@gmail.com>
244         * configure.ac: bump version for a prerelease, turn on track transfer
245         by default.
247         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
248         ipod transfer stuff, since it has big issues and we'll hopefully land
249         real support (bug 310774) after 0.9.5
251 2006-06-06  James Livingston  <doclivingston@gmail.com>
253         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
254         id3v2mux once we've detected it.
256 2006-06-06  James Livingston  <doclivingston@gmail.com>
258         * lib/Makefile.am:
259         * tests/test-rhythmdb.c: undo accidental commit which caused
260         rb-thread.c to be built (which it isn't normally)
262 2006-06-06  James Livingston  <doclivingston@gmail.com>
264         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
265         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
266         fail_{if/unless} calls, as some versions of check need them (they are
267         optional in others). Should fix bug 343718.
269 2006-06-06  James Livingston  <doclivingston@gmail.com>
271         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
272         343836.
273         
274         * lib/Makefile.am:
275         * lib/rb-thread.c: (process_actions):
276         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
277         tests that don't pass.
279 2006-06-05  James Livingston  <doclivingston@gmail.com>
281         * data/glade/Makefile.am:
282         * data/glade/load-failure.glade:
283         * data/rhythmbox.schemas: remove the remainder of the old load-failure
284         dialog.
286 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
288         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
289         checked in.
291 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
293         * bindings/python/rb.defs:
294         * sources/rb-source.h:
295         * sources/rb-source.c: (rb_source_class_init),
296         (rb_source_set_property), (rb_source_get_property),
297         (rb_sourcelist_group_get_type):
298         Add 'sourcelist-group' property on the RBSource class, describing how
299         sources should be grouped in the source list.
301         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
302         (rb_sourcelist_model_new), (real_row_is_separator),
303         (rb_sourcelist_model_is_row_visible),
304         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
305         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
306         (rb_sourcelist_model_row_draggable),
307         (rb_sourcelist_model_row_inserted_cb),
308         (rb_sourcelist_model_row_deleted_cb),
309         (rb_sourcelist_model_get_group_path):
310         * sources/rb-sourcelist-model.h:
311         * sources/rb-sourcelist.c: (rb_sourcelist_init),
312         (rb_sourcelist_append):
313         Add group marker rows for each sourcelist group, and use these to
314         insert sources in the right place.  Sort transient sources (DAAP
315         shares) by name.  Show the group marker rows as separators when the
316         next visible row is a source.  Make persistant sources (playlists) and
317         removable sources reorderable using drag and drop, restricting them
318         within the source groups.
319         
320         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
321         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
322         * sources/rb-daap-source.c: (rb_daap_source_new):
323         * sources/rb-ipod-source.c: (rb_ipod_source_new):
324         * sources/rb-static-playlist-source.c:
325         (rb_static_playlist_source_new):
326         * plugins/generic-player/rb-generic-player-source.c:
327         (rb_generic_player_source_new):
328         * plugins/generic-player/rb-nokia770-source.c:
329         (rb_nokia770_source_new):
330         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
331         Add source list group information to existing source classes.
333         Fixes #318754 and #336492.
335 2006-06-04  James Livingston  <doclivingston@gmail.com>
337         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
338         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
339         win32 build fixes.
341 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
343         * rhythmdb/rhythmdb-query-model.c:
344         (rhythmdb_query_model_class_init),
345         (rhythmdb_query_model_remove_from_main_list):
346         * rhythmdb/rhythmdb-query-model.h:
347         Add a new 'post-entry-delete' signal, emitted when the entry has been
348         removed from the model's data structures.
350         * shell/rb-play-order.c: (rb_play_order_finalize),
351         (rb_play_order_query_model_changed),
352         (rb_play_order_post_entry_delete_cb):
353         Use the new signal to update the play order, so the queue play order
354         doesn't try to scroll to entries that don't exist in a way that causes
355         the tree view to crash.  Fixes #340216.
357 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
359         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
360         Fix rb_debug call I missed previously.
362 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
364         * metadata/rb-metadata-gst.c:
365         Don't use NULL as the error message for ignored files, as it crashes
366         with some C libraries.  Fixes #343713.
368 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
370         * widgets/rb-dialog.c: (rb_error_dialog):
371         * widgets/rb-dialog.h:
372         Mark rb_error_dialog as taking printf-like arguments, and use a format
373         string for the primary message rather than passing in the message
374         directly.
376         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
377         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
378         (info_available_cb):
379         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
380         * shell/rb-removable-media-manager.c:
381         (rb_removable_media_manager_eject_medium_cb):
382         Make sure all calls to rb_error_dialog use string constants for the
383         format string rather than passing the error message directly.  Remove
384         an extra %s from the message used when playback fails.  Fixes #343562.
386         * lib/rb-debug.h:
387         * sources/rb-audiocd-source.c:
388         * plugins/audioscrobbler/rb-audioscrobbler.c:
389         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
390         Mark rb_debug as taking printf-like arguments and fix a few resulting
391         warnings.
393 2006-06-02  James Livingston  <doclivingston@gmail.com>
395         * configure.ac:
396         + macros/check.m4: add support for using check for unit tests, the .m4
397         files is so autogen can run without check being installed
399         * tests/Makefile.am:
400         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
401         some of the old tests, and add some new ones. Currently
402         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
403         yet (the query doesn't return any entries).
405         - tests/deserialization-test1.xml:
406         - tests/deserialization-test2.xml:
407         - tests/deserialization-test3.xml:
408         - tests/test-rhythmdb-indexing.c:
409         - tests/test-rhythmdb-simple.c:
410         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
411         have been ported
413         - tests/test-cd.c:
414         - tests/test-cmdline.c: remove obsolete tests
416 2006-06-02  James Livingston  <doclivingston@gmail.com>
418         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
419         (rb_add_id3_tagger), (rb_metadata_init): add support for using
420         id3v2mux, and check whether we are using a version of id3mux that has
421         the correct merge-mode behaviour.
423         * plugins/sample-python/Makefile.am: fix distcheck.
425         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
426         the changed-files source was added before trying to remove it.
428         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
429         *old* bug which would crash if a query with top-level disjunctions
430         tried to check later disjunctive parts. Hooray for unit-testing.
432 2006-06-02  William Jon McCann  <mccann@jhu.edu>
434         * player/rb-recorder-gst.c (rb_recorder_set_device):
435         Check for a null drive.
437 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
439         * lib/Makefile.am:
440         * lib/rb-stock-icons.c: (rb_stock_icons_init):
441         Register the app icon as a builtin if the icon theme can't find it.
443 2006-05-31  James Livingston  <doclivingston@gmail.com>
445         * player/rb-recorder-gst.c: add missing include.
447 2006-05-30  William Jon McCann  <mccann@jhu.edu>
449         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
450         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
451         (tick_timeout_cb), (rb_recorder_sync_pipeline),
452         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
453         (rb_recorder_set_device), (rb_recorder_get_default_device):
454         * shell/main.c: (main):
455         * shell/rb-removable-media-manager.c:
456         (rb_removable_media_manager_finalize),
457         (get_nautilus_burn_drive_for_path),
458         (rb_removable_media_manager_playing_uri_changed_cb),
459         (rb_removable_media_manager_load_media),
460         (nautilus_burn_drive_get_device),
461         (rb_removable_media_manager_scan):
462         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
464         Update for libnautilus-burn 2.15.3 API changes.
465         Fixes #342604
467 2006-05-30  James Livingston  <doclivingston@gmail.com>
469         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
470         "return" to that it asks for the password again if it was wrong.
472 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
474         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
475         typefind element.
477 2006-05-30  James Livingston  <doclivingston@gmail.com>
479         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
480         (download_progress_cb): don't do wonky things if the transfer
481         "suceeds" without transferring any data.
483 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
485         * sources/rb-library-source.c: (layout_example_label_update),
486         (build_filename):  Fix crash when no audio profile is selected.
487         Fixes #341447.
489 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
491         * shell/rb-shell.c: (rb_shell_clear_queue):
492         * shell/rb-shell.h:
493         * shell/rb-shell.xml:
494         * sources/rb-play-queue-source.c:
495         (rb_play_queue_source_clear_queue),
496         (rb_play_queue_source_cmd_clear):
497         * sources/rb-play-queue-source.h:
498         Add clearQueue dbus method.
500 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
502         * shell/main.c: (main):  Implement --quit option.
504 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
506         * rhythmdb/rhythmdb-private.h:
507         * rhythmdb/rhythmdb-tree.h:
508         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
509         (rhythmdb_entry_insert), (rhythmdb_entry_set),
510         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
511         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
512         (rhythmdb_entry_get_boolean):
513         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
514         bitmask, giving the db backend anything past the first 16 bits for 
515         its own private use.
517         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
518         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
519         Add a 'loading' flag to indicate that an entry is being loaded from
520         disk, and use that to ignore entry_set operations on such entries
521         rather than the 'inserted' flag, which doesn't quite mean the same
522         thing.  Fixes #342694.
524 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
526         * shell/rb-shell.xml: Remove visibility property, since it causes
527         crashes (dbus bug 7057) and doesn't do much else.
529 2006-05-28  James Livingston  <doclivingston@gmail.com>
531         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
533         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
534         * po/POTFILES.in: fix some more i18n issues.
536 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
538         * bindings/python/rb.defs:
539         * shell/rb-shell-player.c: (rb_shell_player_playpause),
540         (filter_mmkeys):
541         * shell/rb-shell-player.h:
542         Deprecate the useless 'ignore_stop' parameter to
543         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
544         API.  From bug #334829.
546 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
548         * plugins/generic-player/rb-generic-player-source.c:
549         (visit_playlist_dirs), (default_transform_playlist_uri):
550         When playlist parsing fails, unref the playlist, not the parent
551         source.  Fix memory leak in playlist uri transform.
552         * plugins/generic-player/rb-nokia770-source.c:
553         (impl_transform_playlist_uri):
554         Fix memory leak in playlist uri transform.
556 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
558         * doc/reference/Makefile.am: fix grk-doc build
560 2006-05-27  James Livingston  <doclivingston@gmail.com>
562         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
564         * plugins/lyrics/lyrics.py:
565         * po/POTFILES.in: Make strings in plugins translatable. From bug
566         343081.
568 2006-05-27  James Livingston  <doclivingston@gmail.com>
570         * backends/Makefile.am:
571         * backends/gstreamer/Makefile.am:
572         * lib/Makefile.am:
573         * plugins/audioscrobbler/Makefile.am:
574         * plugins/generic-player/Makefile.am:
575         * po/POTFILES.in:
576         * rhythmdb/rhythmdb-monitor.c:
577         * rhythmdb/rhythmdb.c:
578         * sources/Makefile.am:
579         * widgets/Makefile.am: fix compilation after some CVS surgery was
580         done.
582 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
584         * bindings/python/rhythmdb.defs:
585         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
586         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
587         (rhythmdb_query_deserialize):
588         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
589         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
590         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
591         (rhythmdb_entry_register_type_alias),
592         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
593         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
594         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
595         (rhythmdb_entry_podcast_feed_get_type),
596         (rhythmdb_entry_import_error_get_type),
597         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
598         * rhythmdb/rhythmdb.h:
599         Allocate a specified amount of extra memory for each db entry, to be
600         used to store fields specific to the entry type.  Optionally associate
601         a name with each entry type, to be used when saving entries and
602         auto playlists to disk.  Allow entry types to have multiple names
603         to handle older playlist files that used '0' to represent 'song'.
604         Use private data to store podcast fields.
606         * rhythmdb/rhythmdb-private.h:
607         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
608         (rhythmdb_tree_parser_end_element), (save_entry),
609         (rhythmdb_tree_entry_set):
610         Simplify property handling by using existing code to convert
611         properties from strings to GValues and to set properties on entries.
612         Other assorted changes due to the above.
614         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
615         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
616         * sources/rb-generic-player-source.c:
617         (rb_generic_player_source_new):
618         * sources/rb-ipod-source.c: (rb_ipod_source_new):
619         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
620         * sources/rb-psp-source.c: (rb_psp_source_new):
621         Update for changes to rhythmdb_entry_register_type.  None of these
622         entry types need names or use private data.
624         Fixes #337429.
626 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
628         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
629         Fix creation of ignored-file db entries - need to check for
630         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
632 2006-05-25  James Livingston  <doclivingston@gmail.com>
634         * AUTHORS:
635         * MAINTAINERS: update my email address
637 2006-05-25  James Livingston  <doclivingston@gmail.com>
639         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
640         "(... mix)" when searching for lyrics. Cache the lyrics under
641         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
643 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
645         * sources/rb-import-errors-source.c:
646         (rb_import_errors_source_class_init):
647         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
648         * sources/rb-browser-source.c: (rb_browser_source_class_init):
649         * sources/rb-source.c: (rb_source_class_init),
650         (default_move_to_trash):
651         Implement the basic move-to-trash operation once in rb-source.c, 
652         rather than in each source type that supports it.
654         * plugins/ipod/rb-ipod-plugin.c:
655         * shell/rb-removable-media-manager.c:
656         * shell/rb-shell.c: (rb_shell_constructor):
657         Only scan removable media once after loading plugins.  Add a flag
658         plugins can use to check if the initial scan has been done.
660         * data/rhythmbox.schemas:
661         Enable ipod and generic-player plugins by default.
662         
663         * configure.ac:
664         * data/ui/Makefile.am:
665         * data/ui/generic-player-ui.xml:
666         * data/ui/rhythmbox-ui.xml:
667         * plugins/Makefile.am:
668         * plugins/generic-player/Makefile.am:
669         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
670         * plugins/generic-player/rb-generic-player-plugin.c:
671         * sources/Makefile.am:
672         * sources/rb-generic-player-source.c:
673         * sources/rb-generic-player-source.h:
674         * sources/rb-nokia770-source.c:
675         * sources/rb-nokia770-source.h:
676         * sources/rb-psp-source.c: (visit_playlist_dirs):
677         * sources/rb-psp-source.h:
678         Pluginise generic player (and nokia770 and PSP) support and add
679         move-to-trash for players not mounted read-only.
680         Fixes #342868.
682 2006-05-24  William Jon McCann  <mccann@jhu.edu>
684         * daapsharing/rb-daap-connection.c (handle_song_listing):
685         Lower bound check for batch commit.  Fixes #342848
687         * sources/rb-daap-source.c (rb_daap_source_get_status):
688         Always set output variables if provided.
690 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
692         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
693         (rhythmdb_tree_entry_delete), (remove_one_song):
694         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
695         Fix two db entry reference counting problems.
696         The initial reference on the entry is held by the db backend, but it
697         was never being dropped.  The reference count was incremented when
698         adding an entry to the deleted_entries map and to the
699         deleted_entries_to_emit list, but only decremented for one of those.
701 2006-05-24  William Jon McCann  <mccann@jhu.edu>
703         * daapsharing/rb-daap-connection.c (http_response_handler) 
704         (rb_daap_connection_dispose):
705         Call soup_session_abort to make sure there are no outstanding
706         requests when we dispose of the connection.  Ignore cancelled
707         messages in the callback.
709 2006-05-24  William Jon McCann  <mccann@jhu.edu>
711         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
712         (rb_daap_source_disconnect): Set a flag when disconnecting
713         the source.  Check this flag in connection callback
714         to see if we should release the connection.
716 2006-05-24  William Jon McCann  <mccann@jhu.edu>
718         * daapsharing/Makefile.am:
719         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
720         (rb_daap_connection_class_init), (connection_connected),
721         (connection_disconnected), (connection_operation_done),
722         (build_message), (connection_set_error_message),
723         (actual_http_response_handler), (http_get),
724         (entry_set_string_prop), (emit_progress_idle),
725         (handle_server_info), (handle_login), (handle_update),
726         (handle_database_info), (handle_song_listing), (handle_playlists),
727         (handle_playlist_entries), (handle_logout),
728         (rb_daap_connection_new), (rb_daap_connection_is_connected),
729         (connection_response_data_free), (connected_cb),
730         (rb_daap_connection_connect), (disconnected_cb),
731         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
732         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
733         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
734         (rb_daap_connection_get_property):
735         * daapsharing/rb-daap-connection.h:
736         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
737         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
738         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
739         (rb_daap_hash_generate):
740         * daapsharing/rb-daap-hash.h:
741         * sources/rb-daap-source.c: (rb_daap_source_class_init),
742         (rb_daap_get_icon), (remove_source), (stop_browsing),
743         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
744         (connection_connecting_cb), (connection_disconnected_cb),
745         (release_connection), (rb_daap_source_connection_cb),
746         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
747         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
749         Adds a better async API for connect and disconnect.  Doesn't share
750         callback data for every async call.  Adds a connect signal.  Uses
751         an operation-done signal to trigger the callbacks.  Displays an
752         error when connections fail.  A few refcounting fixes to fix
753         crashes.  Uses a weak pointer to set the connection to NULL so we
754         don't clobber references.  Wait for each disconnect when shutting
755         down sources.  Split out DAAP hash stuff into its own file.  Fix
756         typo in header.
758         Fixes #342643
759         
760 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
762         * sources/rb-auto-playlist-source.c:
763         (rb_auto_playlist_source_new_from_xml):
764         Initialize the gvalue used to hold the size limit correctly.
765         Fixes #342744.
767 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
769         * shell/rb-shell.c: (rb_shell_window_delete_cb),
770         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
771         * shell/rb-shell.h:
772         * shell/rb-shell.xml:
773         Convert rb_shell_quit into a dbus method, and add visibility dbus
774         property.
776 2006-05-22  James Livingston  <doclivingston@gmail.com>
778         * rhythmdb/rhythmdb.h:
779         * rhythmdb/rhythmdb.c: (sync_entry_changed),
780         (rhythmdb_entry_is_editable), (action_thread_main),
781         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
782         vfuncs for can_sync_metadata, and sync_metadata. The default is always
783         false, and syncing into the file.
785         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
786         (rhythmdb_entry_iradio_get_type),
787         (rhythmdb_entry_import_error_get_type):
788         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
789         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
790         change the DB.
792 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
794         * rhythmdb/Makefile.am:
795         * rhythmdb/rhythmdb-monitor.c:
796         * rhythmdb/rhythmdb-private.h:
797         * rhythmdb/rhythmdb-query.c:
798         * rhythmdb/rhythmdb.c:
799         Split up rhythmdb.c a bit.
801 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
803         * data/glade/audioscrobbler-prefs.glade:
804         Add a link to the last.fm server status page.
806 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
808         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
809         Capitalization fix.
810         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
811         (impl_create_configure_dialog):  UI layout fixes, remove
812         dialog separator, and capitalization fix for window title.
813         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
814         and remove dialog separator.
815         * data/glade/plugins.glade:  UI layout fixes.
816         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
817         and capitalization fix.  Fixes #342438.
819 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
821         * data/glade/podcast-properties.glade:  Fix layout of the download 
822         location.  Fixes #342431.
824 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
826         * data/ui/rhythmbox-ui.xml:
827         We only need one copy of the 'add to queue' action in the edit menu.
829 2006-05-20  James Livingston  <doclivingston@gmail.com>
831         * data/ui/rhythmbox-ui.xml:
832         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
833         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
834         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
835         (rb_shell_clipboard_sync),
836         (rb_shell_clipboard_cmd_add_to_playlist_new),
837         (rb_shell_clipboard_cmd_queue_song_info),
838         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
839         (rb_shell_clipboard_playlist_deleted_cb),
840         (rb_shell_clipboard_playlist_renamed_cb),
841         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
842         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
843         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
844         dynamically generated with all the static playlists. Fixes bug 323364.
846         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
847         right child, so it doesn't go weird when art appears and disappears.
849 2006-05-20  James Livingston  <doclivingston@gmail.com>
851         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
853         * rhythmdb/rhythmdb-query-model.c:
854         (rhythmdb_query_model_set_property),
855         (rhythmdb_query_model_finalize),
856         (rhythmdb_query_model_reapply_query_cb):
857         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
858         (rhythmdb_query_append_prop_multiple),
859         (rhythmdb_query_is_time_relative):
860         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
861         time-based criteria, fixes bug 341131.
863 2006-05-20  James Livingston  <doclivingston@gmail.com>
865         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
866         we have already changed playing entries. Interpolate the art size so
867         it doesn't jump when the old and new images have different aspect
868         ratios.
870 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
872         * rhythmdb/rhythmdb-private.h:
873         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
874         (save_entry):
875         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
876         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
877         (rhythmdb_entry_get_ulong):
878         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
879         and elsewhere, use them on the stack rather than allocating on 
880         the heap.  From bug #342333.
882 2006-05-19  William Jon McCann  <mccann@jhu.edu>
884         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
885         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
886         (add_track), (eos_cb), (error_signal_idle),
887         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
888         (rb_recorder_construct), (recorder_track_free),
889         (rb_recorder_finalize):
890         * sources/rb-playlist-source-recorder.c:
891         Support libnautilus-burn size -> capacity API change.  Add
892         some braces to blocks.
894 2006-05-19  William Jon McCann  <mccann@jhu.edu>
896         * metadata/sj-metadata-musicbrainz.c:
897         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
898         Sync with sound-juicer in CVS.  Fixes #342177
899         * sources/rb-audiocd-source.c: Don't declare variables
900         in the middle of a block (c99ism).  Fix order of #includes.
901         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
902         one variable per line.  Update copyright date.
904 2006-05-19  James Livingston  <doclivingston@gmail.com>
906         patch by: Hendrik Richter  <hendi@gnome-de.org>
908         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
909         "translator_credits" to a hyphen, so it doesn't cause problems for
910         tools that check access keys. Fixes bug 341832.
912 2006-05-19  James Livingston  <doclivingston@gmail.com>
914         * po/POTFILES.in: remove references to files that don't exist any more
915         (fixes make distcheck).
917 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
919         * plugins/lyrics/lyrics.py:  Fix layout close button in 
920         Song Lyrics dialog. Fixes bug 342322.
922 2006-05-19  James Livingston  <doclivingston@gmail.com>
924         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
926         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
927         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
928         version checks not break when libnotify goes to 1.0.0. Fixes bug
929         342244.
931 2006-05-18  James Livingston  <doclivingston@gmail.com>
933         * shell/rb-shell-clipboard.c:
934         * shell/rb-shell.c:
935         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
937 2006-05-17  William Jon McCann  <mccann@jhu.edu>
939         * sources/rb-playlist-source-recorder.c (get_song_description):
940         Reverse artist and title in song description.  This
941         is useful because at least the title will be visible
942         when there is limited space.
944 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
946         * daapsharing/rb-daap-connection.c: (connection_get_password):
947         Take gdk lock before emitting authenticate signal.
948         * sources/rb-daap-source.c: (connection_connecting_cb):
949         Get rid of the unnecessary idle handler (it's already called from one)
950         Fixes #342047 once more.
952 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
954         * shell/rb-shell.c: (rb_shell_class_init):
955         * shell/rb-shell.h:
956         * widgets/rb-song-info.c: (rb_song_info_class_init),
957         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
958         (rb_song_info_constructor), (rb_song_info_get_property),
959         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
960         (rb_song_info_forward_clicked_cb):
961         * widgets/rb-song-info.h:
962         * data/glade/song-info-multiple.glade:
963         * lib/rb-marshal.list:
964         * bindings/python/Makefile.am:
965         * bindings/python/rb.defs:
966         * bindings/python/rb.override:
967         Allow plugins to add pages to the notebooks used in song info windows,
968         and to track the current song displayed in single-entry windows.
969         
970         * configure.ac:
971         * plugins/Makefile.am:
972         * plugins/lyrics/Loader.py:
973         * plugins/lyrics/Makefile.am:
974         * plugins/lyrics/lyrics.py:
975         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
976         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
977         as a separate window (for the playing song) or as a page in the song
978         info window.  A few TODO items left, but this fixes #319320.
980 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
982         Patch by:  Roozbeh Pournader
984         * configure.ac:
985         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
986         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
988 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
989         
990         * sources/rb-daap-source.c: (update_connection_status):
991         Correct return value.  Fixes #342047 again.
993 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
995         * sources/rb-daap-source.c: (update_connection_status),
996         (connection_connecting_cb):
997         Update status in an idle handler so we don't rely on the gdk lock
998         being recursive (because it isn't any more).  Fixes #342047.
1000 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1002         * lib/rb-util.c: (rb_make_duration_string),
1003         (rb_make_elapsed_time_string):
1004         * lib/rb-util.h:
1005         Add a function for formatting an elapsed time string.
1007         * shell/rb-shell-player.c: (rb_shell_player_init),
1008         (rb_shell_player_sync_with_source),
1009         (rb_shell_player_get_playing_time_string), (tick_cb):
1010         Store elapsed time in the private data structure, and use the above
1011         function.
1012         
1013         * widgets/rb-header.c:
1014         * widgets/rb-header.h:
1015         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
1016         object, so everything has the same idea of the elapsed time.
1017         Fixes #339693.
1019 2006-05-16  James Livingston  <doclivingston@gmail.com>
1021         * bindings/python/rhythmdb.defs:
1022         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
1023         some parametre defaults, so you don't have to pass None, False for the
1024         sorting order.
1026 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1028         * bindings/python/rhythmdb.defs:
1029         * rhythmdb/rhythmdb-query-model.c:
1030         (rhythmdb_query_model_compute_status_normal):
1031         * rhythmdb/rhythmdb-query-model.h:
1032         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
1033         * rhythmdb/rhythmdb.h:
1034         Change the various compute_status methods to accept a singular/plural
1035         pair to use in the status string.
1036         
1037         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1038         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
1039         * sources/rb-source.c: (default_get_status):
1040         Call entries 'songs' by default, and 'episodes' in the podcast source.
1041         Fixes #340227.
1043 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1045         patch by:  Paul Drain
1047         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
1048         Fixes #341817.
1050 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1052         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
1053         Generate reorder maps correctly.
1054         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
1055         Scroll to the first entry from the old selection.
1056         Fixes #322992.
1058 2006-05-15  William Jon McCann  <mccann@jhu.edu>
1060         * data/ui/rhythmbox-ui.xml:
1061         * lib/rb-preferences.h:
1062         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
1063         (rb_shell_playlist_created_cb),
1064         (rb_shell_view_sidepane_changed_cb),
1065         (rb_shell_sync_sidepane_visibility),
1066         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
1067         (sidepane_visibility_changed_cb):
1068         * sources/rb-podcast-source.c:
1069         Convert sourcelist visibility to side-pane visbility.
1070         Fixes #339733
1072 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1074         * widgets/rb-header.c:
1075         * widgets/rb-header.h: Stop RBHeader from referring to itself as
1076         'player', and make it use the private data structure allocated for it.
1078 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1080         * configure.ac: enable metadata helper with dbus < 0.35.
1082 2006-05-15  James Livingston  <doclivingston@gmail.com>
1084         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
1086         * data/glade/song-info.glade:
1087         * widgets/rb-song-info.c: (rb_song_info_construct_single),
1088         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
1089         (rb_song_info_update_filesize): Add the file size into the song info
1090         window. Fixes bug 340861.
1092 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1094         * bindings/python/rhythmdb.defs:
1095         * rhythmdb/rhythmdb-query-model.c:
1096         (rhythmdb_query_model_set_property),
1097         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
1098         * rhythmdb/rhythmdb-query-model.h:
1099         Add a new method to chain query models without importing entries from
1100         the parent into the child.  This is useful when the subset of entries
1101         in the child can be more easily determined by running a query than by
1102         filtering entries from the parent.
1104         * bindings/python/rb.defs:
1105         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
1106         (rb_library_browser_set_property),
1107         (rb_library_browser_get_property), (rb_library_browser_new),
1108         (rebuild_child_model):
1109         * widgets/rb-library-browser.h:
1110         * sources/rb-auto-playlist-source.c:
1111         (rb_auto_playlist_source_constructor):
1112         * sources/rb-static-playlist-source.c:
1113         (rb_static_playlist_source_constructor):
1114         * sources/rb-browser-source.c: (rb_browser_source_constructor):
1115         Use more efficient queries for constructing the browser query model
1116         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
1117         backend to optimise the query) and run new queries rather than
1118         filtering entries from the parent.  Fixes #341402.
1120         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
1122 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1124         * configure.ac:
1125         * shell/Makefile.am:
1126         * shell/main.c: (main), (load_uri_args), (send_present_message),
1127         (unregister_dbus_handler), (handle_dbus_message),
1128         (register_dbus_handler):
1129         Add minimal support for dbus 0.31 - 0.35.
1131         * doc/reference/Makefile.am:
1132         * doc/reference/rhythmbox.types:
1133         * data/Makefile.am:
1134         * data/GNOME_Rhythmbox.server.in:
1135         * data/rhythmbox.pc.in:
1136         * remote/*:
1137         * remote/bonobo/*:
1138         Remove remaining bonobo and generic remote interface files.
1140 2006-05-14  James Livingston  <doclivingston@gmail.com>
1142         * shell/rb-shell.c: (construct_widgets):
1143         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
1144         resize the browser and queue-sidebar section of their panes, unless
1145         the other section is below the minimum size. Fixes bug 331927.
1147 2006-05-13  James Livingston  <doclivingston@gmail.com>
1149         * rhythmdb/rhythmdb-query-model.c:
1150         (rhythmdb_query_model_class_init),
1151         (rhythmdb_query_model_set_property),
1152         (rhythmdb_query_model_get_property),
1153         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
1154         (rhythmdb_query_model_insert_into_main_list),
1155         (rhythmdb_query_model_insert_into_limited_list),
1156         (rhythmdb_query_model_do_reorder),
1157         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
1158         (rhythmdb_query_model_location_sort_func),
1159         (rhythmdb_query_model_title_sort_func),
1160         (rhythmdb_query_model_album_sort_func),
1161         (rhythmdb_query_model_artist_sort_func),
1162         (rhythmdb_query_model_genre_sort_func),
1163         (rhythmdb_query_model_track_sort_func),
1164         (rhythmdb_query_model_double_ceiling_sort_func),
1165         (rhythmdb_query_model_ulong_sort_func),
1166         (rhythmdb_query_model_date_sort_func),
1167         (rhythmdb_query_model_string_sort_func):
1168         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
1169         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
1170         "data destroy" property. Fixed bug 341543.
1172         * bindings/python/rhythmdb.defs:
1173         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
1174         rhythmdb_query_model_set_sorting_order
1176         * rhythmdb/rhythmdb-property-model.c:
1177         (rhythmdb_property_model_drag_data_get):
1178         * sources/rb-import-errors-source.c:
1179         (rb_import_errors_source_constructor):
1180         * sources/rb-missing-files-source.c:
1181         (rb_missing_files_source_constructor):
1182         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
1183         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
1184         * widgets/rb-entry-view.h: adapt to the above change.
1186 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1188         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
1189         (rhythmdb_tree_load):
1190         Commit loaded entries in batches, rather than individually.  
1191         More startup time reduction.
1193 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
1195         * doc/reference/Makefile.am: fix gtk-doc compilation
1197 2006-05-12  William Jon McCann  <mccann@jhu.edu>
1199         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
1200         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
1201         * plugins/artdisplay/artdisplay/Loader.py:
1202         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
1203         Only call the first artist the best match when album==Unknown.
1204         Don't perform each query twice if album doesn't include "Vol N".
1205         Fix searching for compilations.  Fix blacklisting.
1206         Part of bug #307848
1208 2006-05-12  William Jon McCann  <mccann@jhu.edu>
1210         * Makefile.am:
1211         * bindings/python/Makefile.am:
1212         * bindings/python/rb.defs:
1213         * bindings/python/rb.override:
1214         * configure.ac:
1215         * doc/reference/Makefile.am:
1216         * plugins/Makefile.am:
1217         * plugins/audioscrobbler/Makefile.am:
1218         * plugins/ipod/Makefile.am:
1219         * plugins/lirc/Makefile.am:
1220         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1221         (impl_activate), (impl_deactivate):
1222         * plugins/sample/Makefile.am:
1223         * remote/Makefile.am:
1224         * shell/Makefile.am:
1225         * shell/main.c: (main), (main_shell_weak_ref_cb):
1226         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
1227         (rb_shell_get_property), (rb_shell_window_state_cb),
1228         (idle_hide_mainwindow), (rb_shell_set_visibility),
1229         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
1230         (rb_shell_set_song_property):
1231         * shell/rb-shell.h:
1232         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
1233         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
1234         (rb_tray_icon_get_property), (rb_tray_icon_new),
1235         (rb_tray_icon_button_press_event_cb),
1236         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
1237         (rb_tray_icon_show_window_changed_cb):
1238         * shell/rb-tray-icon.h:
1240         Remove bonobo, require DBUS.
1241         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
1242         Fixes #339720
1244 2006-05-13  James Livingston  <doclivingston@gmail.com>
1246         * bindings/python/rb.override: fix some pointer-type warnings
1248 2006-05-12  James Livingston  <doclivingston@gmail.com>
1250         * lib/rb-util.c: (rb_value_free):
1251         * lib/rb-util.h: Add function to unset and free a GValue* that was
1252         allocated in the heap.
1254         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
1255         the metadata hastable values
1256         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
1257         leak the metadata hashtable structure
1258         * metadata/rb-metadata-dbus.c:
1259         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
1260         using g_strdup and then _take_string
1262         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
1263         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
1264         stat something.
1266         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
1267         leak the encoded string
1269         * widgets/rb-property-view.c:
1270         (rb_property_view_selection_changed_cb): set some variables to have
1271         inital values, because some code paths may not set them before we use
1272         them.
1274         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
1275         don't have python warning into a debug message".
1277 2006-05-10  William Jon McCann  <mccann@jhu.edu>
1279         * data/rhythmbox.schemas: Use zero instead of null for
1280         default burn speed.  Fixes #341283.
1282 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1284         * bindings/python/rb.defs:
1285         * widgets/rb-library-browser.c:
1286         (rb_library_browser_get_property_view):
1287         * widgets/rb-library-browser.h:
1288         Add a method to get the property view for a given property.
1290         * sources/rb-browser-source.c:
1291         (rb_browser_source_cmd_choose_genre),
1292         (rb_browser_source_cmd_choose_artist),
1293         (rb_browser_source_cmd_choose_album):
1294         Change the browser selection by changing the property view selection. 
1295         Makes the selection change visible, fixing #331740.
1297 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1299         * bindings/python/rb.defs:
1300         * bindings/python/rb.override:
1301         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
1302         * shell/rb-statusbar.c: (*),
1303         * sources/rb-import-errors-source.c: (impl_get_status):
1304         * sources/rb-iradio-source.c: (impl_get_status):
1305         * sources/rb-missing-files-source.c: (impl_get_status):
1306         * sources/rb-source.c: (default_get_status),
1307         (rb_source_get_status):
1308         * sources/rb-source.h:
1309         Allow sources to provide a progress value for the status bar.
1310         Simplify status bar processing (much less polling).
1311         Consider rhythmdb busy while it's still loading the database.
1313         * daapsharing/rb-daap-connection.c: (*)
1314         * daapsharing/rb-daap-connection.h:
1315         * lib/rb-marshal.list:
1316         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1317         (rb_daap_source_init), (connection_connecting_cb),
1318         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
1319         (rb_daap_source_get_status):
1320         Provide status information for DAAP connections, and move processing
1321         of large responses into a separate thread.
1322         Fixes bugs #322020 and #338978.
1324 2006-05-09  James Livingston  <doclivingston@gmail.com>
1326         Split the artdisplay plugin into several files.
1327         Fix loader and amazon-search re-use issues.
1328         Add some better search heuristics.
1330         * configure.ac:
1331         * plugins/artdisplay/Makefile.am:
1332         * plugins/artdisplay/artdisplay.py:
1333         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
1334         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
1335         * plugins/artdisplay/artdisplay/Loader.py:
1336         * plugins/artdisplay/artdisplay/Makefile.am:
1337         * plugins/artdisplay/artdisplay/__init__.py:
1339 2006-05-09  James Livingston  <doclivingston@gmail.com>
1341         * sources/rb-browser-source.h: remove the _has_first_added_column
1342         stuff since it isn't actually used anywhere. Sources that want it
1343         should just add it themselves, as the library already does
1345         * bindings/python/rb.defs:
1346         * sources/rb-daap-source.c: (rb_daap_source_class_init):
1347         * sources/rb-library-source.c: (rb_library_source_class_init):
1348         * sources/rb-removable-media-source.c:
1349         (rb_removable_media_source_class_init): Remove the remanants of the
1350         above.
1352 2006-05-09  James Livingston  <doclivingston@gmail.com>
1354         * bindings/python/rb.defs:
1355         * sources/rb-browser-source.h: remove a function that was declared in
1356         the header, but not defined anywhere.
1358 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1360         * plugins/artdisplay/.cvsignore:
1361         * plugins/ipod/.cvsignore: Added.
1363 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1365         * sources/rb-auto-playlist-source.c:
1366         (rb_auto_playlist_source_new_from_xml):
1367         Fix reading of older playlist files where all three limits were
1368         specified so we take the first nonzero limit.  From #341053.
1370 2006-05-09  James Livingston  <doclivingston@gmail.com>
1372         * bindings/python/Makefile.am:
1373         * bindings/python/rb.defs:
1374         * bindings/python/rb.override: bind RBBrowserSource,
1375         RBRemovableMediaSource and RBRemovableMediamanager.
1377 2006-05-09  James Livingston  <doclivingston@gmail.com>
1379         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
1381         * data/glade/plugins.glade: make the plugin dialog look a bit better.
1382         Fixes bug 339221.
1384 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1386         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
1387         Don't explode when trying to edit a query with no limit set.
1389 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1391         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
1392         Clear the should_queue flag when switching to a non-submittable entry,
1393         so we don't submit songs that played for three seconds before
1394         switching to a podcast episode.
1396         * rhythmdb/rhythmdb-query-model.c
1397         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
1398         in the drag data list.
1400 2006-05-08  James Livingston  <doclivingston@gmail.com>
1402         * lib/rb-util.c: (rb_value_array_append_data):
1403         * lib/rb-util.h: add function which is basically a combination of
1404         G_VALUE_COLLECT and g_value_array_append.
1406         * rhythmdb/rhythmdb-query-model.h:
1407         * rhythmdb/rhythmdb-query-model.c:
1408         (rhythmdb_query_model_class_init),
1409         (rhythmdb_query_model_set_property),
1410         (rhythmdb_query_model_get_property),
1411         (rhythmdb_query_model_finalize),
1412         (rhythmdb_query_model_update_limited_entries),
1413         (rhythmdb_query_model_set_sort_order),
1414         (rhythmdb_query_model_within_limit),
1415         (rhythmdb_query_model_limit_type_get_type): Make query model limits
1416         saner. Rather than having <count=N, time=N, size=N> we now have a
1417         <type, value> pair. This will also make it much easier to add new
1418         limit types in the future.
1420         * shell/rb-playlist-manager.c:
1421         (rb_playlist_manager_set_automatic_playlist),
1422         (rb_playlist_manager_cmd_edit_automatic_playlist):
1423         * sources/rb-auto-playlist-source.c:
1424         (rb_auto_playlist_source_finalize),
1425         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
1426         (_save_write_ulong), (_save_write_uint64),
1427         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
1428         (rb_auto_playlist_source_set_query),
1429         (rb_auto_playlist_source_get_query):
1430         * sources/rb-auto-playlist-source.h:
1431         * sources/rb-library-source.c:
1432         (rb_library_source_add_child_source):
1433         * sources/rb-psp-source.c: (visit_playlist_dirs):
1434         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
1435         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
1436         * widgets/rb-query-creator.h: Adapt to the above change.
1438 2006-05-08  James Livingston  <doclivingston@gmail.com>
1440         * shell/rb-playlist-manager.c:
1441         (rb_playlist_manager_cmd_edit_automatic_playlist):
1442         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
1443         (rb_auto_playlist_source_set_query),
1444         (rb_auto_playlist_source_get_query): copy the query in the _get method
1445         and free it in things calling that. Fixes a crasher.
1447 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1449         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
1450         Make entries on newly mounted volumes visible immediately, hiding them
1451         later if they turn out to be missing.  Fixes #340068.
1453 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1455         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
1456         Ignore zip files and ignore errors for files we've decided to ignore.
1458 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1460         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
1461         Add missing }, should fix #340844.
1463 2006-05-06  James Livingston  <doclivingston@gmail.com>
1465         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
1466         typo.
1468 2006-05-06  James Livingston  <doclivingston@gmail.com>
1470         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
1471         that we work with libnotify >= 0.4
1473 2006-05-06  James Livingston  <doclivingston@gmail.com>
1475         patch by: Joe Barnett  <thejoe@gmail.com>
1477         * configure.ac: check if we're using a version of libgpod that
1478         supports the Motorola ROKR
1480         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
1481         for the db path, if we using the newer version.
1483         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
1485 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1487         * rhythmdb/rhythmdb-query-model.c:
1488         (rhythmdb_query_model_drag_data_get):
1489         Use playback URI, not location, for drag data.  Fixes #322597.
1491 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
1493         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
1495 2006-05-03  James Livingston  <doclivingston@gmail.com>
1497         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
1498         (rb_add_id3_tagger), (rb_metadata_save):
1499         Set the tags on the tagging element when it is
1500         created, not during pipeline creation - which is required for
1501         dynamically created elements.
1503         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
1504         support for using the "vorbistag" element to re-tag ogg vorbis files.
1505         Fixes bug 339878.
1507 2006-05-03  James Livingston  <doclivingston@gmail.com>
1509         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
1511         * plugins/artdisplay/artdisplay.py:
1512         - Fix small bug callback of data loader getting overwritten on fast
1513         connections.
1514         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
1515         Jonathan Matthew)
1516         - Fix Rhythmbox UI blocking while loading/searching cover art
1517         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
1518         - Initial approach to allow additional "art search engines"
1519         - Further modularization in a couple of places
1520         - Minor fixes for empty entries (iradio, album, artist etc.)
1522 2006-05-03  James Livingston  <doclivingston@gmail.com>
1524         * shell/rb-playlist-manager.c:
1525         (rb_playlist_manager_playlist_entries_changed),
1526         (rb_playlist_manager_set_source): don't show the edit/delete/rename
1527         options for non-local sources, rather than showing disabled ones.
1529         * sources/rb-library-source.c: (add_child_sources_idle),
1530         (rb_library_source_constructor), (rb_library_source_new),
1531         (rb_library_source_library_location_changed),
1532         (rb_library_source_add_child_source),
1533         (rb_library_source_sync_child_sources): Create "child library" sources
1534         when the user has multiple library locations set. Fixes bug 100552.
1536 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1538         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
1539         * plugins/sample/sample.rb-plugin.desktop.in:
1540         Finish changing 'Author' to 'Authors'
1541         
1542         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
1543         (rhythmdb_entry_import_error_get_type):
1544         Implement get_playback_uri for import errors (returns NULL)
1546         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
1547         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
1548         entry, rather than doing entry type checks.
1550 2006-05-02  James Livingston  <doclivingston@gmail.com>
1552         patch from Alessandro Decina  <alessandro@nnva.org>
1554         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
1555         the signal emission in the case of fatal-on-init errors. From bug
1556         322268.
1558 2006-05-02  James Livingston  <doclivingston@gmail.com>
1560         * rhythmdb/rhythmdb.h:
1561         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
1562         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
1563         (rhythmdb_entry_podcast_post_get_type),
1564         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
1565         virtual function to entry-types for getting the playback URI. From bug
1566         330226.
1568         * backends/gstreamer/rb-encoder-gst.c:
1569         (create_pipeline_and_source), (extract_track):
1570         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
1571         to get the URI.
1573 2006-05-02  James Livingston  <doclivingston@gmail.com>
1575         patch by: Brian Cameron  <brian.cameron@sun.com>
1577         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
1578         340337.
1580 2006-05-01  William Jon McCann  <mccann@jhu.edu>
1582         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
1583         instead of clear.  Use regex matching to strip "disc N"
1584         from album.  Match titles in ProductName.  Perform
1585         fallback queries including various artist compilations.
1586         Include "us" locale.  Improve queries when artist or album
1587         is unknown.  Use medium size image if large is unavailable.
1589         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
1590         William Jon McCann  <mccann@jhu.edu>
1591         
1592 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1594         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
1595         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
1596         (conjunctive_query): Sanity check.
1597         (evaluate_conjunctive_subquery): 
1598         Don't return TRUE immediately when a relative-time query criterion
1599         matches.  Fixes #339972.
1601 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1603         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
1604         Don't crash if primary or secondary are NULL.
1606 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1608         * doc/reference/Makefile.am: fix gtk-doc build yet again
1610 2006-04-28  James Livingston  <doclivingston@gmail.com>
1612         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
1613         python console. Fixes bug 339934.
1615 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1617         * rhythmdb/rhythmdb-property-model.c:
1618         (rhythmdb_property_model_drag_data_get):
1619         When creating uri list drag data, create a new query model based on
1620         the query model the property model is attached to.  Makes the
1621         resulting query use the right entry type and include the upstream
1622         query criteria.  Fixes half of #327540.
1624 2006-04-27  James Livingston  <doclivingston@gmail.com>
1626         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
1627         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
1628         build fixes.
1630 2006-04-27  James Livingston  <doclivingston@gmail.com>
1632         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
1634 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1636         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
1637         (rb_playlist_manager_save_data),
1638         (rb_playlist_manager_save_playlists):
1639         * shell/rb-playlist-manager.h:
1640         * shell/rb-shell.c: (rb_shell_sync_state),
1641         (idle_save_playlist_manager):
1642         Remove a bit more threading insanity from the playlist manager.
1644 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1646         * shell/rb-playlist-manager.c: 
1647         * shell/rb-playlist-manager.h:
1648         Remove dead code, add gtk-doc, remove threading insanity (mostly).
1649         
1650         * shell/rb-shell.c: (rb_shell_sync_state),
1651         (idle_save_playlist_manager), (construct_sources),
1652         (rb_shell_select_source), (rb_shell_sync_party_mode):
1653         Adjustments for above changes.
1655 2006-04-26  William Jon McCann  <mccann@jhu.edu>
1657         * sources/rb-browser-source.c (impl_browser_toggled):
1658         Reset browser when hidden.  Fixes #339617.
1660 2006-04-26  James Livingston  <doclivingston@gmail.com>
1662         * backends/Makefile.am:
1663         * backends/gstreamer/Makefile.am: work again with separated
1664         built-roots
1666 2006-04-26  James Livingston  <doclivingston@gmail.com>
1668         * shell/rb-removable-media-manager.c:
1669         (rb_removable_media_manager_set_uimanager): fix compilation with
1670         -Werror and --enable-track-transfer.
1672 2006-04-26  James Livingston  <doclivingston@gmail.com>
1674         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
1675         implementing class. In theory allows alternate player implementations
1676         to be selected at run-time rather than compile-time. Fixes bug 338667.
1678         * Makefile.am:
1679         * backends/Makefile.am:
1680         * backends/gstreamer/Makefile.am:
1681         * backends/gstreamer/rb-player-gst.h:
1682         * backends/rb-player.c: (rb_player_interface_init),
1683         (rb_player_get_type), (rb_player_open), (rb_player_opened),
1684         (rb_player_close), (rb_player_play), (rb_player_pause),
1685         (rb_player_playing), (rb_player_set_volume),
1686         (rb_player_get_volume), (rb_player_set_replaygain),
1687         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
1688         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
1689         (_rb_player_emit_buffering), (_rb_player_emit_error),
1690         (_rb_player_emit_tick), (rb_player_error_quark):
1691         * player/Makefile.am:
1692         * player/rb-player-gst.c: (rb_player_gst_class_init),
1693         (rb_player_init), (tick_timeout), (rb_player_gst_init),
1694         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
1695         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
1696         (process_tag), (found_tag_cb), (buffering_cb),
1697         (rb_player_gst_bus_cb), (rb_player_gst_construct),
1698         (rb_player_gst_new):
1699         * player/rb-player.h:
1700         * shell/Makefile.am:
1701         * sources/rb-audiocd-source.c:
1702         * widgets/Makefile.am:
1703         * widgets/rb-header.c: (rb_header_class_init):
1705 2006-04-26  James Livingston  <doclivingston@gmail.com>
1707         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
1708         don't try to download an episode if it couldn't be parsed. Fixes bug
1709         339712.
1711         * shell/rb-removable-media-manager.c:
1712         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
1713         Library" option when track transfer is disabled. Fixes bug 339728.
1715 2006-04-26  James Livingston  <doclivingston@gmail.com>
1717         * data/ui/Makefile.am:
1718         * data/ui/daap-ui.xml:
1719         * data/ui/rhythmbox-ui.xml:
1720         * sources/rb-daap-source.c: (rb_daap_sources_init),
1721         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
1722         way that the ipod ui is. Fixes bug 339743.
1724 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1726         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
1727         (process_added_entries_cb), (process_deleted_entries_cb),
1728         (rhythmdb_commit_internal): 
1729         Combine the idle functions to emit entry-added and entry-deleted,
1730         and combine as many invocations of same as possible.  Another
1731         significant reduction in startup time.
1732         
1733         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
1734         Delay the next call to rhythmdb_process_events if the queue is
1735         empty or if we can't process any of the events in the queue because
1736         the database is read only.
1738         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
1740 2006-04-25  William Jon McCann  <mccann@jhu.edu>
1742         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
1744         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
1745         Don't special case errors quite so much.
1747 2006-04-25  William Jon McCann  <mccann@jhu.edu>
1749         * data/rhythmbox.schemas: Remove default speed.
1751         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
1752         Add n-c-b 2.15 support.  Make the default speed to slowest since
1753         that is all that works reliably.
1755 2006-04-25  William Jon McCann  <mccann@jhu.edu>
1757         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
1758         Fix compiler error from last commit.
1760 2006-04-25  James Livingston  <doclivingston@gmail.com>
1762         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
1763         transcoding-related issues. From bug 322268.
1765         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
1766         don't emit the signal, since the object is being finalised, which os a
1767         Bad Thing To Do.
1769         (profile_bin_find_encoder), (get_profile_from_mime_type),
1770         (transcode_track): find the encoding element by iterating looking for
1771         element in the class Codec/Encoder/Audio rather than the one named
1772         "enc".
1774 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1776         * shell/rb-shell-player.xml:
1777         * shell/rb-shell.xml:
1778         Add signal argument information.  
1779         Patch by Tim Moloney  <t.moloney@verizon.net>
1781         * shell/rb-shell.c: (rb_shell_window_state_cb):
1782         Use the right value for the visibility_changed signal.  Most of the
1783         time, anyway.
1785 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1787         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
1788         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
1789         (impl_create_configure_dialog):
1790         * data/glade/audioscrobbler-prefs.glade:
1791         * shell/rb-audioscrobbler.c (*):
1792         * lib/rb-preferences.h:
1793         * data/rhythmbox.schemas:
1794         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
1795         Add status information (# tracks submitted, # queued, last submit
1796         time, result of last submission) to the plugin config window.
1797         Remove 'enabled' setting, since it's easier to just disable the
1798         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
1799         nonexistant (so far) 'last.fm streaming' plugin.
1800         
1801         * help/C/rhythmbox.xml: Update documentation for last.fm profile
1802         plugin
1804         Fixes some of #325848.  We still don't provide a way to view the
1805         submission queue.
1807 2006-04-25  James Livingston  <doclivingston@gmail.com>
1809         patch by: Anders Petersson  <demitar@worldforge.org>
1811         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
1812         the YY-MM-DD format.
1814 2006-04-23  James Livingston  <doclivingston@gmail.com>
1816         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
1817         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
1818         * bindings/python/override_common.h:
1819         * bindings/python/rb.override: python binding fixes
1821 2006-04-23  James Livingston  <doclivingston@gmail.com>
1823         * shell/rb-statusbar.c: (rb_statusbar_finalize),
1824         (rb_statusbar_sync_with_source),
1825         (rb_statusbar_source_status_changed_cb): do the sync in an idle
1826         callback, rather than immediately every time. Takes ~5% off my warm-cache
1827         startup time.
1829         * bindings/python/rhythmdb.defs: fix the types using for
1830         RhythmDBEntryTypes.
1832 2006-04-22  James Livingston  <doclivingston@gmail.com>
1834         * data/ui/rhythmbox-ui.xml:
1835         * shell/rb-shell.c:
1836         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1837         (remove_source), (rb_daap_sources_init),
1838         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
1839         (rb_daap_source_disconnect):
1840         * sources/rb-source.c: (rb_source_class_init),
1841         (rb_source_deactivate):
1842         * sources/rb-source.h: move the "disconnect" functionality from into
1843         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
1845 2006-04-22  James Livingston  <doclivingston@gmail.com>
1847         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
1848         actually get the translated strings for browser headers (they were
1849         already marked as translatable). Fixes bug 339380.
1851 2006-04-22  James Livingston  <doclivingston@gmail.com>
1853         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
1854         submission timeout when the object is finalised.
1856         * bindings/python/Makefile.am:
1857         * bindings/python/rb.defs:
1858         * bindings/python/rb.override:
1859         * bindings/python/rhythmdb.defs: fix some python binding stuff.
1861         * widgets/rb-library-browser.c:
1862         (rb_library_browser_construct_query), (rebuild_output_model),
1863         (rebuild_child_model):
1864         * widgets/rb-library-browser.h: change from GPtrArray to
1865         RhythmDBQuery (which in C is the same thing).
1867 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1869         * shell/rb-shell.c: (rb_shell_get_song_properties):
1870         Don't try to include entry-type (or anything else not easily
1871         marshallable) in the song properties hash table.
1873         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
1875         * sources/rb-playlist-source.c: (rb_playlist_source_init),
1876         (rb_playlist_source_constructor): Fix entry-type initialization as
1877         with previous commit.
1879 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1881         * sources/rb-iradio-source.c: (rb_iradio_source_init),
1882         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
1883         * sources/rb-podcast-source.c: (rb_podcast_source_init),
1884         (rb_podcast_source_constructor):
1885         Set default values for entry-type after base class construction,
1886         rather than in _init, because gobject will set the entry-type property
1887         to NULL after _init if no value is provided.  Fixes #339206.
1889 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
1891         patch by: Gunnar Steinn Magnusson
1893         * COPYING:
1894         * backends/gstreamer/rb-encoder-gst.c:
1895         * backends/gstreamer/rb-encoder-gst.h:
1896         * backends/rb-encoder.c:
1897         * backends/rb-encoder.h:
1898         * bindings/python/override_common.c:
1899         * bindings/python/override_common.h:
1900         * daapsharing/rb-daap-connection.c:
1901         * daapsharing/rb-daap-connection.h:
1902         * daapsharing/rb-daap-dialog.c:
1903         * daapsharing/rb-daap-dialog.h:
1904         * daapsharing/rb-daap-mdns-browser-avahi.c:
1905         * daapsharing/rb-daap-mdns-browser-howl.c:
1906         * daapsharing/rb-daap-mdns-browser.h:
1907         * daapsharing/rb-daap-mdns-publisher-avahi.c:
1908         * daapsharing/rb-daap-mdns-publisher-howl.c:
1909         * daapsharing/rb-daap-mdns-publisher.h:
1910         * daapsharing/rb-daap-share.c:
1911         * daapsharing/rb-daap-share.h:
1912         * daapsharing/rb-daap-sharing.c:
1913         * daapsharing/rb-daap-sharing.h:
1914         * daapsharing/rb-daap-src.c:
1915         * daapsharing/rb-daap-src.h:
1916         * daapsharing/rb-daap-structure.c:
1917         * daapsharing/rb-daap-structure.h:
1918         * help/C/fdl-appendix.xml:
1919         * help/es/es.po:
1920         * help/ja/fdl-appendix.xml:
1921         * iradio/rb-new-station-dialog.c:
1922         * iradio/rb-new-station-dialog.h:
1923         * iradio/rb-station-properties-dialog.c:
1924         * iradio/rb-station-properties-dialog.h:
1925         * lib/mkdtemp.c:
1926         * lib/mkdtemp.h:
1927         * lib/rb-cut-and-paste-code.c:
1928         * lib/rb-cut-and-paste-code.h:
1929         * lib/rb-debug.c:
1930         * lib/rb-debug.h:
1931         * lib/rb-file-helpers.c:
1932         * lib/rb-file-helpers.h:
1933         * lib/rb-glade-helpers.c:
1934         * lib/rb-glade-helpers.h:
1935         * lib/rb-preferences.h:
1936         * lib/rb-proxy-config.c:
1937         * lib/rb-stock-icons.c:
1938         * lib/rb-stock-icons.h:
1939         * lib/rb-thread.c:
1940         * lib/rb-thread.h:
1941         * lib/rb-tree-dnd.c:
1942         * lib/rb-tree-dnd.h:
1943         * lib/rb-util.c:
1944         * lib/rb-util.h:
1945         * metadata/rb-metadata-common.c:
1946         * metadata/rb-metadata-dbus-client.c:
1947         * metadata/rb-metadata-dbus-service.c:
1948         * metadata/rb-metadata-dbus.c:
1949         * metadata/rb-metadata-dbus.h:
1950         * metadata/rb-metadata-gst.c:
1951         * metadata/rb-metadata.h:
1952         * metadata/sj-error.c:
1953         * metadata/sj-error.h:
1954         * metadata/sj-metadata-musicbrainz.c:
1955         * metadata/sj-metadata-musicbrainz.h:
1956         * metadata/sj-metadata.c:
1957         * metadata/sj-metadata.h:
1958         * metadata/sj-structures.c:
1959         * metadata/sj-structures.h:
1960         * metadata/test-metadata.c:
1961         * player/rb-player-gst.c:
1962         * player/rb-player.h:
1963         * player/rb-recorder-gst.c:
1964         * player/rb-recorder.h:
1965         * plugins/artdisplay/artdisplay.py:
1966         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
1967         * plugins/ipod/rb-ipod-plugin.c:
1968         * plugins/lirc/rb-lirc-plugin.c:
1969         * plugins/pythonconsole/pythonconsole.py:
1970         * plugins/rb-module.c:
1971         * plugins/rb-module.h:
1972         * plugins/rb-plugin-manager.c:
1973         * plugins/rb-plugin-manager.h:
1974         * plugins/rb-plugin.c:
1975         * plugins/rb-plugin.h:
1976         * plugins/rb-plugins-engine.c:
1977         * plugins/rb-plugins-engine.h:
1978         * plugins/rb-python-module.c:
1979         * plugins/rb-python-module.h:
1980         * plugins/rb-python-plugin.c:
1981         * plugins/rb-python-plugin.h:
1982         * plugins/sample/rb-sample-plugin.c:
1983         * po/de.po:
1984         * po/el.po:
1985         * po/en_CA.po:
1986         * po/eu.po:
1987         * po/fi.po:
1988         * po/fr.po:
1989         * po/it.po:
1990         * po/ja.po:
1991         * po/mk.po:
1992         * po/pt_BR.po:
1993         * po/ru.po:
1994         * podcast/rb-feed-podcast-properties-dialog.c:
1995         * podcast/rb-feed-podcast-properties-dialog.h:
1996         * podcast/rb-new-podcast-dialog.c:
1997         * podcast/rb-new-podcast-dialog.h:
1998         * podcast/rb-podcast-manager.c:
1999         * podcast/rb-podcast-manager.h:
2000         * podcast/rb-podcast-parse.c:
2001         * podcast/rb-podcast-parse.h:
2002         * podcast/rb-podcast-properties-dialog.c:
2003         * podcast/rb-podcast-properties-dialog.h:
2004         * remote/bonobo/libmain.c:
2005         * remote/bonobo/rb-nautilus-context-menu.c:
2006         * remote/bonobo/rb-nautilus-context-menu.h:
2007         * remote/bonobo/rb-remote-bonobo.c:
2008         * remote/bonobo/rb-remote-bonobo.h:
2009         * remote/rb-remote-client-proxy.c:
2010         * remote/rb-remote-client-proxy.h:
2011         * remote/rb-remote-common.c:
2012         * remote/rb-remote-common.h:
2013         * remote/rb-remote-proxy.c:
2014         * remote/rb-remote-proxy.h:
2015         * rhythmdb/gsequence.c:
2016         * rhythmdb/gsequence.h:
2017         * rhythmdb/rb-refstring.c:
2018         * rhythmdb/rb-refstring.h:
2019         * rhythmdb/rhythmdb-gda.c:
2020         * rhythmdb/rhythmdb-gda.h:
2021         * rhythmdb/rhythmdb-private.h:
2022         * rhythmdb/rhythmdb-property-model.c:
2023         * rhythmdb/rhythmdb-property-model.h:
2024         * rhythmdb/rhythmdb-query-model.c:
2025         * rhythmdb/rhythmdb-query-model.h:
2026         * rhythmdb/rhythmdb-query-results.c:
2027         * rhythmdb/rhythmdb-query-results.h:
2028         * rhythmdb/rhythmdb-tree.c:
2029         * rhythmdb/rhythmdb-tree.h:
2030         * rhythmdb/rhythmdb.c:
2031         * rhythmdb/rhythmdb.h:
2032         * shell/main.c:
2033         * shell/rb-audioscrobbler.c:
2034         * shell/rb-audioscrobbler.h:
2035         * shell/rb-history.c:
2036         * shell/rb-history.h:
2037         * shell/rb-play-order-linear-loop.c:
2038         * shell/rb-play-order-linear-loop.h:
2039         * shell/rb-play-order-linear.c:
2040         * shell/rb-play-order-linear.h:
2041         * shell/rb-play-order-queue.c:
2042         * shell/rb-play-order-queue.h:
2043         * shell/rb-play-order-random-by-age-and-rating.c:
2044         * shell/rb-play-order-random-by-age-and-rating.h:
2045         * shell/rb-play-order-random-by-age.c:
2046         * shell/rb-play-order-random-by-age.h:
2047         * shell/rb-play-order-random-by-rating.c:
2048         * shell/rb-play-order-random-by-rating.h:
2049         * shell/rb-play-order-random-equal-weights.c:
2050         * shell/rb-play-order-random-equal-weights.h:
2051         * shell/rb-play-order-random.c:
2052         * shell/rb-play-order-random.h:
2053         * shell/rb-play-order-shuffle.c:
2054         * shell/rb-play-order-shuffle.h:
2055         * shell/rb-play-order.c:
2056         * shell/rb-play-order.h:
2057         * shell/rb-playlist-manager.c:
2058         * shell/rb-playlist-manager.h:
2059         * shell/rb-removable-media-manager.c:
2060         * shell/rb-removable-media-manager.h:
2061         * shell/rb-shell-clipboard.c:
2062         * shell/rb-shell-clipboard.h:
2063         * shell/rb-shell-player.c:
2064         * shell/rb-shell-player.h:
2065         * shell/rb-shell-preferences.c:
2066         * shell/rb-shell-preferences.h:
2067         * shell/rb-shell.c:
2068         * shell/rb-shell.h:
2069         * shell/rb-source-header.c:
2070         * shell/rb-source-header.h:
2071         * shell/rb-statusbar.c:
2072         * shell/rb-statusbar.h:
2073         * shell/rb-tray-icon.c:
2074         * shell/rb-tray-icon.h:
2075         * sources/rb-audiocd-source.c:
2076         * sources/rb-audiocd-source.h:
2077         * sources/rb-auto-playlist-source.c:
2078         * sources/rb-auto-playlist-source.h:
2079         * sources/rb-browser-source.c:
2080         * sources/rb-browser-source.h:
2081         * sources/rb-daap-source.c:
2082         * sources/rb-daap-source.h:
2083         * sources/rb-generic-player-source.c:
2084         * sources/rb-generic-player-source.h:
2085         * sources/rb-import-errors-source.c:
2086         * sources/rb-import-errors-source.h:
2087         * sources/rb-ipod-source.c:
2088         * sources/rb-ipod-source.h:
2089         * sources/rb-iradio-source.c:
2090         * sources/rb-iradio-source.h:
2091         * sources/rb-library-source.c:
2092         * sources/rb-library-source.h:
2093         * sources/rb-missing-files-source.c:
2094         * sources/rb-missing-files-source.h:
2095         * sources/rb-nokia770-source.c:
2096         * sources/rb-nokia770-source.h:
2097         * sources/rb-play-queue-source.c:
2098         * sources/rb-play-queue-source.h:
2099         * sources/rb-playlist-source-recorder.c:
2100         * sources/rb-playlist-source-recorder.h:
2101         * sources/rb-playlist-source.c:
2102         * sources/rb-playlist-source.h:
2103         * sources/rb-playlist-xml.h:
2104         * sources/rb-podcast-source.c:
2105         * sources/rb-podcast-source.h:
2106         * sources/rb-psp-source.c:
2107         * sources/rb-psp-source.h:
2108         * sources/rb-removable-media-source.c:
2109         * sources/rb-removable-media-source.h:
2110         * sources/rb-source.c:
2111         * sources/rb-source.h:
2112         * sources/rb-sourcelist-model.c:
2113         * sources/rb-sourcelist-model.h:
2114         * sources/rb-sourcelist.c:
2115         * sources/rb-sourcelist.h:
2116         * sources/rb-static-playlist-source.c:
2117         * sources/rb-static-playlist-source.h:
2118         * tests/test-cd.c:
2119         * tests/test-cmdline.c:
2120         * tests/test-rhythmdb-indexing.c:
2121         * tests/test-rhythmdb-query.c:
2122         * tests/test-rhythmdb-simple.c:
2123         * tests/test-rhythmdb-tree-deserialization.c:
2124         * tests/test-rhythmdb-tree-serialization.c:
2125         * tests/test-rhythmdb-view.c:
2126         * widgets/bacon-volume.c:
2127         * widgets/bacon-volume.h:
2128         * widgets/disclosure-widget.c:
2129         * widgets/disclosure-widget.h:
2130         * widgets/eel-gconf-extensions.c:
2131         * widgets/eel-gconf-extensions.h:
2132         * widgets/eggtrayicon.c:
2133         * widgets/eggtrayicon.h:
2134         * widgets/libsexy/sexy-icon-entry.c:
2135         * widgets/libsexy/sexy-icon-entry.h:
2136         * widgets/rb-cell-renderer-pixbuf.c:
2137         * widgets/rb-cell-renderer-pixbuf.h:
2138         * widgets/rb-cell-renderer-rating.c:
2139         * widgets/rb-cell-renderer-rating.h:
2140         * widgets/rb-dialog.c:
2141         * widgets/rb-dialog.h:
2142         * widgets/rb-druid.c:
2143         * widgets/rb-druid.h:
2144         * widgets/rb-entry-view.c:
2145         * widgets/rb-entry-view.h:
2146         * widgets/rb-header.c:
2147         * widgets/rb-header.h:
2148         * widgets/rb-library-browser.c:
2149         * widgets/rb-library-browser.h:
2150         * widgets/rb-property-view.c:
2151         * widgets/rb-property-view.h:
2152         * widgets/rb-query-creator-private.h:
2153         * widgets/rb-query-creator-properties.c:
2154         * widgets/rb-query-creator.c:
2155         * widgets/rb-query-creator.h:
2156         * widgets/rb-rating-helper.c:
2157         * widgets/rb-rating-helper.h:
2158         * widgets/rb-rating.c:
2159         * widgets/rb-rating.h:
2160         * widgets/rb-search-entry.c:
2161         * widgets/rb-search-entry.h:
2162         * widgets/rb-song-display-box.c:
2163         * widgets/rb-song-display-box.h:
2164         * widgets/rb-song-info.c:
2165         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
2167 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
2169         patch by: Gareth Murphy, James Livingston
2171         * bindings/python/rb.defs:
2172         * configure.ac:
2173         * plugins/Makefile.am:
2174         * plugins/artdisplay/Makefile.am:
2175         * plugins/artdisplay/artdisplay.py:
2176         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
2177         * plugins/rb-python-module.c: (rb_python_module_init_python):
2178         * shell/rb-shell.c: (construct_widgets),
2179         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
2180         (rb_shell_add_widget), (rb_shell_remove_widget),
2181         (rb_shell_ui_location_get_type):
2182         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
2184 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2186         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
2187         Fix build failure caused by the combination of the previous two
2188         commits.
2190 2006-04-20  James Livingston  <doclivingston@gmail.com>
2192         patch by: Christophe Fergeau  <teuf@gnome.org> to make
2193         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
2194         table to the entry types, which will allow us to get rid of some of
2195         the "if entry type == WHATEVER" code everywhere. From bug 
2197         * bindings/python/rb.defs:
2198         * bindings/python/rb.override:
2199         * bindings/python/rhythmdb.defs:
2200         * bindings/python/rhythmdb.override:
2201         * daapsharing/rb-daap-connection.c:
2202         (rb_daap_connection_class_init), (rb_daap_connection_init),
2203         (rb_daap_connection_set_property),
2204         (rb_daap_connection_get_property):
2205         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
2206         * podcast/rb-podcast-manager.c:
2207         (rb_podcast_manager_entry_downloaded),
2208         (rb_podcast_manager_subscribe_feed),
2209         (rb_podcast_manager_db_entry_added_cb),
2210         (rb_podcast_manager_db_entry_deleted_cb),
2211         (rb_podcast_manager_insert_feed):
2212         * rhythmdb/rhythmdb-private.h:
2213         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
2214         (conjunctive_query):
2215         * rhythmdb/rhythmdb.c: (sync_entry_changed),
2216         (process_added_entries_cb), (rhythmdb_entry_allocate),
2217         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
2218         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2219         (rhythmdb_process_metadata_load),
2220         (rhythmdb_process_file_created_or_modified), (action_thread_main),
2221         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
2222         (write_encoded_gvalue), (read_encoded_property),
2223         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
2224         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
2225         (rhythmdb_entry_iradio_get_type),
2226         (rhythmdb_entry_podcast_post_get_type),
2227         (rhythmdb_entry_podcast_feed_get_type),
2228         (rhythmdb_entry_import_error_get_type),
2229         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
2230         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
2231         (rhythmdb_entry_type_get_type):
2232         * rhythmdb/rhythmdb.h:
2233         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
2234         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
2235         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
2236         (rb_shell_player_entry_activated_cb), (info_available_cb):
2237         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
2238         (rb_shell_register_entry_type_for_source),
2239         (rb_shell_playing_from_queue_cb),
2240         (rb_shell_playing_entry_changed_cb),
2241         (rb_shell_player_stream_song_changed_cb),
2242         (rb_shell_jump_to_entry_with_source),
2243         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
2244         (handle_playlist_entry_cb), (rb_shell_load_uri):
2245         * shell/rb-shell.h:
2246         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
2247         * sources/rb-browser-source.c: (rb_browser_source_class_init),
2248         (rb_browser_source_init), (rb_browser_source_set_property),
2249         (rb_browser_source_get_property):
2250         * sources/rb-ipod-source.c: (impl_paste):
2251         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2252         (rb_iradio_source_init), (rb_iradio_source_set_property),
2253         (rb_iradio_source_get_property):
2254         * sources/rb-library-source.c: (impl_paste):
2255         * sources/rb-missing-files-source.c:
2256         (rb_missing_files_source_class_init),
2257         (rb_missing_files_source_init),
2258         (rb_missing_files_source_set_property),
2259         (rb_missing_files_source_get_property):
2260         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
2261         (rb_playlist_source_init), (rb_playlist_source_set_property),
2262         (rb_playlist_source_get_property):
2263         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2264         (rb_podcast_source_init), (rb_podcast_source_set_property),
2265         (rb_podcast_source_get_property):
2266         * sources/rb-static-playlist-source.c:
2267         (rb_static_playlist_source_add_location_internal):
2269 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2271         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2272         (rhythmdb_add_import_error_entry),
2273         (entry_volume_mounted_or_unmounted),
2274         (rhythmdb_volume_unmounted_cb):
2275         When a volume is unmounted, delete import errors for files stored on
2276         it.  When a volume is mounted, stat all tracks stored on it, rather
2277         than assuming they're present.  Fixes #339023.
2279 2006-04-20  James Livingston  <doclivingston@gmail.com>
2281         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
2282         browser visibility for non-gconf-using sources (like playlists). Part
2283         of bug 118862.
2285         * shell/rb-source-header.c: (sourcestate_free),
2286         (rb_source_header_init), (rb_source_header_finalize),
2287         (rb_source_header_source_weak_destroy_cb): switch from storing the
2288         search string to storing a "source state" structure
2290         (rb_source_header_set_source_internal),  (rb_source_state_sync),
2291         (rb_source_header_search_cb), (rb_source_header_clear_search),
2292         (rb_source_header_disclosure_toggled_cb): as well as storing the
2293         string, stop the visibility of the source's browser.
2295 2006-04-20  James Livingston  <doclivingston@gmail.com>
2297         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
2298         library entries back into the library. Fixes bug 339065.
2300 2006-04-20  James Livingston  <doclivingston@gmail.com>
2302         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
2303         only exists in glib 2.10.
2305 2006-04-20  James Livingston  <doclivingston@gmail.com>
2307         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
2308         Solaris. From bug 335318.
2310         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
2311         * shell/rb-audioscrobbler.c:
2312         * sources/rb-psp-source.c:
2314 2006-04-20  James Livingston  <doclivingston@gmail.com>
2316         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
2317         issues for some people.
2319         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
2320         accidental s/suffix/prefix/
2322         * sources/rb-auto-playlist-source.c:
2323         (rb_auto_playlist_source_set_query): fix the invered logic preventing
2324         you from sorting playlists which aren't limited by time.
2326 2006-04-19  James Livingston  <doclivingston@gmail.com>
2328         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
2329         duration or bitrate back to the file, since they are properties of the
2330         audio data, not tags we can set.
2332 2006-04-19  James Livingston  <doclivingston@gmail.com>
2334         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
2335         of libtool, to fix builds which are using a different version. Fixes
2336         bug 338996.
2338         * shell/Makefile.am:
2340 2006-04-19  James Livingston  <doclivingston@gmail.com>
2342         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
2343         to sync data to a file which is uneditable.
2345 2006-04-19  James Livingston  <doclivingston@gmail.com>
2347         patch by: Gavin Stewart  <gavin@brokentrain.net>
2349         * data/glade/playlist-save.glade:
2350         * data/glade/Makefile.am:
2351         * po/POTFILES.in: add the playlist saving dialog.
2353         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
2354         (export_set_extension_cb), (filter_get_export_filter_label),
2355         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
2356         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
2357         formats (PLS and M3U at the moment). Fixes bug 316295.
2359 2006-04-19  James Livingston  <doclivingston@gmail.com>
2361         * shell/rb-playlist-manager.c:
2362         (rb_playlist_manager_set_source_internal): don't let you edit remove
2363         auto playlists.
2365         * sources/rb-auto-playlist-source.c:
2366         (rb_auto_playlist_source_set_query): correctly handle time-limited
2367         playlists.
2369 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2371         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
2373         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
2374         Don't crash if the queue file contains no newlines.
2375         Fixes #338924.
2377 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
2379         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
2380         condition
2382 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
2384         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
2385         case. Moreover, they may not exist yet, so take that into account when
2386         generating the iPod filename.
2388 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
2390         * sources/rb-ipod-source.c: added support for drag and drop from the
2391         library to the iPod (only enabled if --enable-track-transfer was
2392         passed to configure)
2394 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
2396         * configure.ac:
2397         * lib/rb-marshal.list:
2398         * lib/rb-util.c: 
2399         * lib/rb-util.h:
2400         * plugins/Makefile.am:
2401         * plugins/ipod/Makefile.am:
2402         * plugins/ipod/ipod.rb-plugin.desktop.in:
2403         * plugins/ipod/rb-ipod-plugin.c: 
2404         * plugins/rb-plugin.h:
2405         * shell/Makefile.am:
2406         * shell/rb-removable-media-manager.c:
2407         * shell/rb-removable-media-manager.h:
2408         * shell/rb-shell.c: 
2409         * sources/Makefile.am:
2410         * sources/rb-ipod-source.c: 
2411         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
2412         various iPod related files should be moved to plugins/ipod/ now...
2414 2006-04-17  James Livingston  <doclivingston@gmail.com>
2416         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
2417         and "vic".
2419         * help/C/figures/rb-iradio-main.png:
2420         * help/C/figures/rb-notification-area-menu.png:
2421         * help/C/figures/rb-notification-window.png:
2422         * help/C/figures/rb-notification-zone.png:
2423         * help/C/figures/rb-podcast-main.png:
2424         * help/C/figures/rb-statusbar.png:
2425         * help/C/figures/rb-volume-changer.png:
2426         * help/C/figures/rb-window-small.png:
2427         * help/C/figures/rb-window.png:
2428         * help/C/rhythmbox.xml:
2430 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2432         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
2433         more obviously.
2435         * metadata/rb-metadata-gst.c: (rb_metadata_init),
2436         (make_undecodable_error), (rb_metadata_gst_error_cb),
2437         (rb_metadata_gst_new_decoded_pad_cb),
2438         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
2439         Ignore really small files (<4kB) for which typefinding fails.
2440         Always link decoded pads from decodebin to fakesink.
2441         Shut the pipeline down by posting an error on the bus when decodebin
2442         emits unknown-type signals.  Fixes bug #338062.
2444 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2446         * shell/rb-shell.c: (rb_shell_load_uri):
2447         Fix glaring mistakes in previous commit: actually pass arguments to
2448         rb_debug, and specify the right entry type when adding a new iradio
2449         station so we don't try to add local playlist files to the library.
2451 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2453         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
2454         before trying to add them, as iradio streams often fail rb_uri_exists().
2456         * shell/rb-shell-player.c: (notify_playing_idle),
2457         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
2458         (open_location_thread), (rb_shell_player_open_location),
2459         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
2460         (eos_cb):  When playing an iradio stream using a playlist, keep a list
2461         of all the stream URLs, and try them in turn.  If we get through the
2462         whole playlist too quickly, error out.  Various other fixes that make
2463         iradio work a lot better.
2465         * shell/rb-shell.c: (add_to_library_response_cb),
2466         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
2467         (handle_playlist_entry_cb), (rb_shell_load_uri):
2468         Add playlists containing streams as iradio stations.  If the playlist
2469         is local, add each stream URL, but if the playlist is remote, just add
2470         the playlist URL.
2471         
2472         * sources/rb-iradio-source.c: (new_station_location_added):
2473         Add new station URLs as-is, rather than parsing the playlist and
2474         adding the streams.
2475         
2476         * rhythmdb/rhythmdb-query-model.c:
2477         (rhythmdb_query_model_entry_changed_cb),
2478         (rhythmdb_query_model_emit_reorder),
2479         (rhythmdb_query_model_do_reorder):
2480         Emit row-changed notifications when an entry changes but is not
2481         reordered.
2483         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
2484         Display the playback error icon when the entry has an error and
2485         there's nothing else to display.
2486         
2487         Fixes bug #320336 and some of #324402.
2488         
2489 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
2491         * sources/rb-ipod-source.c: use a GHashTable for the
2492         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
2493         time, this fixes compilation breakage for people not having libgpod
2494         CVS HEAD
2496 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
2498         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2500         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
2501         (rb_podcast_manager_insert_feed):
2502         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
2503         fixes bug 321945
2505 2006-04-16  James Livingston  <doclivingston@gmail.com>
2507         * sources/rb-library-source.c:
2508         (rb_library_source_library_location_cb): return FALSE like we are
2509         supposed to, not void.
2511         patch by: FreeBSD GNOME Project
2512         * configure.ac: fix some bash-isms.
2514         patch by: Pawel Worach  <pawel.worach@gmail.com>
2515         * metadata/rb-metadata-dbus-client.c:
2516         * rhythmdb/rhythmdb-query-model.c:
2517         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
2520 2006-04-16  James Livingston  <doclivingston@gmail.com>
2522         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
2523         for transcoding to RBEncoderGst.
2525         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
2526         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
2527         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
2528         (add_decoding_pipeline), (encoder_match_mime),
2529         (get_profile_from_mime_type), (extract_track), (transcode_track),
2530         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
2532 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
2534         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
2535         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
2536         load_ipod_db_idle_cb to a new separate function
2538 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
2540         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
2541         source
2543 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
2545         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
2546         variables
2548 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
2550         * data/ui/Makefile.am:
2551         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
2552         menu
2553         * lib/rb-util.c: check if the widget we got from the UI manager isn't
2554         NULL before using it as a popup menu
2555         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
2556         'eject' an iPod
2558 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
2560         * sources/rb-ipod-source.c: when hal tells us a partition is on an
2561         iPod, check if it contains an iPod database before using it (in case
2562         the iPod was repartitionned somehow). Should fix bug #325034
2564 2006-04-16  Steve Frécinaux  <steve@istique.net>
2566         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
2568         * data/Makefile.am: install application icon into the default theme.
2570         * data/rhythmbox.desktop.in: don't specify icon file extension.
2571         
2572         * shell/main.c: (main): set default window icon from theme.
2573         
2574         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
2575         code concerning window icon, and fix leak by unreferencing the about
2576         logo pixbuf once it's not used anymore.
2578 2006-04-16  James Livingston  <doclivingston@gmail.com>
2580         * configure.ac: bump version to 0.9.4
2581         * NEWS: update NEWS and 0.9.4 insert translations
2583 2006-04-16  James Livingston  <doclivingston@gmail.com>
2585         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
2586         namespace automatically.
2588 2006-04-16  James Livingston  <doclivingston@gmail.com>
2590         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
2592         * doc/reference/Makefile.am:
2593         * doc/reference/rhythmbox.types: make distcheck work again
2595         * doc/reference/tmpl/eggnotificationbubble.sgml:
2596         * doc/reference/tmpl/eggtrayicon.sgml:
2597         * doc/reference/tmpl/rb-debug.sgml:
2598         * doc/reference/tmpl/rb-entry-view.sgml:
2599         * doc/reference/tmpl/rb-enums.sgml:
2600         * doc/reference/tmpl/rb-metadata.sgml:
2601         * doc/reference/tmpl/rb-new-station-dialog.sgml:
2602         * doc/reference/tmpl/rb-playlist-manager.sgml:
2603         * doc/reference/tmpl/rb-refstring.sgml:
2604         * doc/reference/tmpl/rb-shell-player.sgml:
2605         * doc/reference/tmpl/rb-shell-preferences.sgml:
2606         * doc/reference/tmpl/rb-shell.sgml:
2607         * doc/reference/tmpl/rb-song-info.sgml:
2608         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
2609         * doc/reference/tmpl/rb-statusbar.sgml:
2610         * doc/reference/tmpl/rhythmbox-unused.sgml:
2611         * doc/reference/tmpl/rhythmdb-query-model.sgml:
2612         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
2614 2006-04-16  James Livingston  <doclivingston@gmail.com>
2616         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
2618         * po/LINGUAS: don't split the variable across two lines, as it breaks
2619         the build. Fixes bug 338625.
2621 2006-04-15  James Livingston  <doclivingston@gmail.com>
2623         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
2624         add a "sourcelist-model" gobject property.
2626 2006-04-14  William Jon McCann  <mccann@jhu.edu>
2628         * .cvsignore:
2629         * backends/.cvsignore:
2630         * backends/gstreamer/.cvsignore:
2631         * bindings/.cvsignore:
2632         * bindings/python/.cvsignore:
2633         * help/es/.cvsignore:
2634         * metadata/.cvsignore:
2635         * plugins/.cvsignore:
2636         * plugins/audioscrobbler/.cvsignore:
2637         * plugins/lirc/.cvsignore:
2638         * plugins/pythonconsole/.cvsignore:
2639         * plugins/sample-python/.cvsignore:
2640         * plugins/sample/.cvsignore:
2641         * shell/.cvsignore:
2642         * widgets/libsexy/.cvsignore:
2643         Make CVS ignore files.
2645 2006-04-14  James Livingston  <doclivingston@gmail.com>
2647         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
2648         the track-loading thread hold a reference on the source, so it doesn't
2649         explode if the cd is removed before it is done. Fixes bug 337237.
2651 2006-04-14  James Livingston  <doclivingston@gmail.com>
2653         * bindings/python/override_common.c:
2654         (_helper_unwrap_pointer_pylist):
2655         * bindings/python/override_common.h:
2656         * bindings/python/rb.override:
2657         * bindings/python/rhythmdb.override: Bind some more functions and
2658         virtual functions.
2660         * shell/rb-shell.c: (rb_shell_select_source):
2661         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
2662         * sources/rb-audiocd-source.c:
2663         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
2664         * sources/rb-browser-source.c: (impl_get_search_actions):
2665         * sources/rb-iradio-source.c: (impl_get_ui_actions):
2666         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
2667         * sources/rb-playlist-source.c: (impl_get_ui_actions):
2668         * sources/rb-podcast-source.c: (impl_get_ui_actions),
2669         (impl_get_search_actions):
2670         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
2671         the impl_get_ui_actions and impl_get_search_actions functions return
2672         lists that contain copies of the strings, instead of constant ones.
2673         Needed to bindings
2675 2006-04-14  James Livingston  <doclivingston@gmail.com>
2677         * bindings/python/rhythmdb.defs:
2678         * bindings/python/rhythmdb.override: fix the method argument format
2679         specifiers.
2681 2006-04-14  James Livingston  <doclivingston@gmail.com>
2683         * bindings/python/rhythmdb.defs:
2684         * bindings/python/rhythmdb.override:
2685         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
2686         (entry_to_rb_metadata), (record_entry_change),
2687         (rhythmdb_entry_set_visibility):
2688         * rhythmdb/rhythmdb.h:
2689         * shell/rb-shell.c: (rb_shell_get_song_properties): change
2690         rhythmdb_entry_get to take the db as the first parameter. Fixes the
2691         python bindings of it. The rhythmdb_entry_get_* ones are left the same
2692         since they are used in too many places, and not in the Python
2693         bindings.
2695 2006-04-13  William Jon McCann  <mccann@jhu.edu>
2697         * lib/rb-debug.c: (_rb_profile_log):
2698         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
2699         * rhythmdb/rhythmdb.c: (rhythmdb_load):
2700         * shell/main.c: (main):
2701         * shell/rb-shell.c: (rb_shell_constructor),
2702         (rb_shell_set_visibility), (rb_shell_sync_window_state),
2703         (rb_shell_present):
2704         Fix profile output indentation.  Add more profiling points.
2705         Fixes part of #338114
2707 2006-04-13  James Livingston  <doclivingston@gmail.com>
2709         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
2710         library source being deleted, by setting the active source to NULL.
2711         From bug 338116.
2713 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2715         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
2716         Update the last-seen string when hiddenness changes.
2718 2006-04-12  James Livingston  <doclivingston@gmail.com>
2720         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
2721         which caused the first-seen time to be reset when a metadata load was
2722         done. Fixes bug 336874.
2724         * shell/rb-shell.h: remove old function declaration.
2726         * bindings/python/rhythmdb.defs:
2727         * bindings/python/rhythmdb.override: Fix some python binding stuff.
2729 2006-04-11  James Livingston  <doclivingston@gmail.com>
2731         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
2732         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
2733         interaction. Fixes bug 337999.
2735 2006-04-11  James Livingston  <doclivingston@gmail.com>
2737         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
2738         track transfer. Fixes bug 338056.
2740         * shell/Makefile.am:
2742 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2744         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
2746 2006-04-10  William Jon McCann  <mccann@jhu.edu>
2748         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
2749         (_rb_profile_log):
2750         * lib/rb-debug.h:
2751         * shell/rb-shell.c: (construct_db), (construct_widgets),
2752         (construct_sources), (construct_load_ui), (rb_shell_constructor):
2753         Add profiling.  Fixes #337387
2755 2006-04-10  William Jon McCann  <mccann@jhu.edu>
2757         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
2758         * widgets/rb-header.c:
2759         Use italics for artist and album. Fixes #336748
2761 2006-04-10  James Livingston  <doclivingston@gmail.com>
2763         * Makefile.am:
2764         * backends/gstreamer/Makefile.am:
2765         * configure.ac:
2766         * data/glade/library-prefs.glade:
2767         * shell/Makefile.am:
2768         * shell/rb-removable-media-manager.c:
2769         * shell/rb-removable-media-manager.h:
2770         * sources/Makefile.am:
2771         * sources/rb-audiocd-source.c:
2772         * sources/rb-library-source.c: (rb_library_source_class_init),
2773         (rb_library_source_finalize), (impl_get_config_widget),
2774         (rb_library_source_preferences_sync), (impl_can_paste): add a
2775         --enable-track-transfer configure option, abd make cd ripping disabled
2776         by default.
2778         * shell/rb-source-header.c:
2779         * sources/rb-source.c: (rb_source_class_init),
2780         (rb_source_delete_thyself), (default_get_entry_view):
2781         * lib/rb-glade-helpers.c:
2782         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
2783         some compiler warnings, and also bug 337427.
2785 2006-04-10  James Livingston  <doclivingston@gmail.com>
2787         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
2788         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
2789         if the gconf key is missing. Fixes bug 337742.
2791 2006-04-10  James Livingston  <doclivingston@gmail.com>
2793         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2794         to fix build problems I caused with a commit yesterday. Fixed bug
2795         337806.
2797         * daapsharing/rb-daap-mdns-browser-howl.c:
2798         (rb_daap_mdns_browser_class_init):
2799         * podcast/Makefile.am:
2800         * rhythmdb/Makefile.am:
2801         * widgets/eggtrayicon.h:
2803 2006-04-09  Steve Frécinaux  <steve@istique.net>
2805         * configure.ac:
2806         * po/LINGUAS:
2807         
2808         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
2809         translators' life easier.
2811 2006-04-09  James Livingston  <doclivingston@gmail.com>
2813         * bindings/python/rb.defs:
2814         * bindings/python/rb.override: add bindings for most RBSource virtual
2815         functions.
2817         * sources/rb-source.h:
2818         * sources/rb-source.c: (rb_source_class_init): make
2819         impl_get_browser_key return a non-consht string, since Python can't
2820         really give us constant strings.
2822         * shell/rb-source-header.c: (rb_source_header_finalize),
2823         (rb_source_header_set_source_internal):
2824         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
2825         * sources/rb-iradio-source.c: (impl_get_browser_key):
2826         * sources/rb-library-source.c: (impl_get_browser_key):
2827         * sources/rb-playlist-source.c:
2828         * sources/rb-browser-source.c: (rb_browser_source_constructor),
2829         (rb_browser_source_state_prefs_sync):
2830         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
2831         above change.
2833         * plugins/sample-python/sample-python.py: show how to add a new
2834         source.
2836 2006-04-09  James Livingston  <doclivingston@gmail.com>
2838         * daapsharing/Makefile.am:
2839         * daapsharing/rb-daap-connection.c:
2840         (rb_daap_connection_class_init):
2841         * daapsharing/rb-daap-marshal.list:
2842         * daapsharing/rb-daap-mdns-browser-avahi.c:
2843         (rb_daap_mdns_browser_class_init):
2844         * lib/rb-marshal.list:
2845         * player/Makefile.am:
2846         * player/rb-recorder-gst.c: (rb_recorder_class_init):
2847         * player/rb-recorder-marshal.list:
2848         * podcast/Makefile.am:
2849         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
2850         * podcast/rb-podcast-marshal.list:
2851         * rhythmdb/Makefile.am:
2852         * rhythmdb/rhythmdb-marshal.list:
2853         * rhythmdb/rhythmdb-query-model.c:
2854         (rhythmdb_query_model_class_init):
2855         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
2856         into one file, as there is no point having several of them.
2858 2006-04-09  James Livingston  <doclivingston@gmail.com>
2860         * lib/Makefile.am:
2861         * lib/rb-enums.h:
2862         * widgets/Makefile.am:
2863         * widgets/eggnotificationbubble.c:
2864         * widgets/eggnotificationbubble.h:
2865         * widgets/rb-song-info.c: remove lib/rb-enums.h and
2866         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
2868         * rhythmdb/rhythmdb-property-model.h:
2869         * rhythmdb/rhythmdb-query-model.h:
2870         * rhythmdb/rhythmdb.h:
2871         * shell/rb-playlist-manager.h:
2872         * widgets/rb-cell-renderer-pixbuf.h:
2873         * widgets/rb-cell-renderer-rating.h:
2874         * widgets/rb-rating.h: fix the prototypes of various class-closures.
2876 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2878         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
2879         so we can build without a system-wide installed copy.
2881 2006-04-09  James Livingston  <doclivingston@gmail.com>
2883         * data/glade/general-prefs.glade:
2884         * data/rhythmbox.schemas:
2885         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
2886         (rb_combo_box_hyphen_separator_func):
2887         * lib/rb-glade-helpers.h:
2888         * lib/rb-preferences.h:
2889         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
2890         (rb_shell_preferences_sync),
2891         (rb_shell_preferences_toolbar_style_cb),
2892         (rb_shell_preferences_browser_views_activated_cb):
2893         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
2894         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
2895         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
2897 2006-04-09  James Livingston  <doclivingston@gmail.com>
2899         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
2900         data that MusicBrainz returns to us. Last part of bug 334167.
2902 2006-04-09  James Livingston  <doclivingston@gmail.com>
2904         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
2905         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
2907 2006-04-09  James Livingston  <doclivingston@gmail.com>
2909         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
2910         the entry view properly when the rows are reordered. Fixes bug 337019.
2912 2006-04-09  James Livingston  <doclivingston@gmail.com>
2914         * configure.ac:
2915         * widgets/Makefile.am:
2916         * widgets/libsexy/Makefile.am:
2917         * widgets/libsexy/sexy-icon-entry.c:
2918         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
2919         libsexy, and allow building against it or a system-wide installed
2920         copy.
2923         * widgets/rb-search-entry.c: (rb_search_entry_init),
2924         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
2925         search box. Fixes bug 128109.
2927 2006-04-09  James Livingston  <doclivingston@gmail.com>
2929         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2931         * widgets/rb-entry-view.c: (rb_entry_view_init),
2932         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
2933         and Pause icons rather than the volume ones in the Now Playing column.
2934         Closes bug 336482.
2936 2006-04-08  James Livingston  <doclivingston@gmail.com>
2938         * bindings/python/override_common.h:
2939         * bindings/python/rb.override:
2940         * bindings/python/rhythmdb.override: bind some more functions 
2942 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2944         * metadata/rb-metadata-dbus-service.c: (_send_error):
2945         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
2946         are sent properly and we don't get 'method doesn't exist' messages
2947         from dbus instead.
2949 2006-04-08  James Livingston  <doclivingston@gmail.com>
2951         * bindings/python/override_common.h:
2952         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
2953         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
2954         more utility functions for C<->Python conversions
2956         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
2957         (rb_entry_view_state_get_type):
2958         * widgets/rb-entry-view.h: make the colume type and entry view state
2959         GTypes
2961         * bindings/python/Makefile.am:
2962         * bindings/python/rb.defs:
2963         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
2964         RBSource.
2966 2006-04-08  James Livingston  <doclivingston@gmail.com>
2968         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
2969         initialiser for a GError
2971         * sources/rb-source.c: (rb_source_eof_type_get_type):
2972         * sources/rb-source.h: add a GType for RBSourceEOFType
2974         * bindings/python/Makefile.am:
2975         * bindings/python/rb.defs:
2976         * bindings/python/rb.override: bind RBSource and RBSourceList
2978 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2980         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2981         (rb_shell_player_get_property),
2982         (rb_shell_player_get_active_source),
2983         (rb_shell_player_set_playing_source_internal):
2984         * shell/rb-shell-player.h:
2985         Change 'playing-from-queue' from being a signal to being a property.
2987         * shell/rb-shell.c: (rb_shell_constructor),
2988         (rb_shell_playing_from_queue_cb),
2989         (rb_shell_view_queue_as_sidebar_changed_cb),
2990         (rb_shell_jump_to_entry_with_source):
2991         When the queue side pane is used, make 'jump to current' jump to the
2992         entry in the registered source for its type, rather than in the queue,
2993         and show it as playing in that source.
2994         
2995         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
2996         * sources/rb-sourcelist.h:
2997         Remove the 'preempted source' stuff, since it wasn't doing anything
2998         anyway.
3000 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3002         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
3003         (download_progress_cb): Canonicalise downloaded file location before
3004         setting the mountpoint property of the corresponding entry.
3005         Fixes #337287 and a couple of memory leaks.
3007 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3009         * metadata/rb-metadata-dbus-service.c: (test_can_save),
3010         (test_load), (main): Call g_set_prgname, report errors more
3011         usefully in test mode.
3012         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
3013         (rb_metadata_load): Don't ignore the have-type signal for non-audio
3014         files.  Run the event loop when the state change fails so we get the
3015         error messages from the bus.  Fixes #336921.
3017 2006-04-05  William Jon McCann  <mccann@jhu.edu>
3019         * data/art/Makefile.am: Install media-eject.
3021         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
3022         return value of rb_file.
3024         Fixes #337209
3026 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3028         Patch by: William Jon McCann  <mccann@jhu.edu>
3030         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
3031         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
3032         Fix GError leak.
3034 2006-04-04  William Jon McCann  <mccann@jhu.edu>
3036         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
3037         Don't try to add a date when we don't have one.  Fixes #336741.
3039         Also fix variable declaration in middle of block.
3041 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3043         * shell/rb-shell-player.c: (rb_shell_player_playpause):
3044         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
3046 2006-04-02  James Livingston  <doclivingston@gmail.com>
3048         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
3049         inverted logic causing imports to fail.
3051 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3053         * shell/main.c: (main): Fix dbusless build.
3055 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
3057         * player/rb-recorder-gst.c: fix packing of the C struct holding a
3058         wav header for non-gcc compilers (not tested much, was only written
3059         according to docs)
3061 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3063         * shell/main.c: (main): Check if we got a dbus connection before
3064         trying to create a proxy for the shell object.  Fixes #336634.
3066 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3068         * doc/reference/Makefile.am:
3069         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
3070         * shell/rb-source-header.c:
3071         * sources/rb-generic-player-source.c:
3072         (default_transform_playlist_uri):
3073         Fix various build issues.  Patch approximately 50% by Alex Lancaster
3074         <alexl@users.sourceforge.net>
3076 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3078         * configure.ac: Detect LIRC.
3079         
3080         * plugins/Makefile.am:
3081         * plugins/lirc/Makefile.am:
3082         * plugins/lirc/lirc.rb-plugin.desktop.in:
3083         * plugins/lirc/rb-lirc-plugin.c:
3084         LIRC plugin.
3086         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
3087         Remove obsolete files.
3089 2006-04-02  James Livingston  <doclivingston@gmail.com>
3091         * sources/rb-generic-player-source.c:
3092         (default_transform_playlist_uri): consider playlist paths as relative
3093         to the volume root by default, since that is what most players use.
3095 2006-04-02  James Livingston  <doclivingston@gmail.com>
3097         * lib/rb-util.c: (rb_mime_get_friendly_name):
3098         * lib/rb-util.h: add helper function to get the "friendly" name for a
3099         mime-type
3101         * metadata/rb-metadata-gst.c: (rb_metadata_init),
3102         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
3103         the user better error messages about undecodable streams, using the
3104         "friendly" name if possible. Fixes bug 128109.
3106 2006-04-02  James Livingston  <doclivingston@gmail.com>
3108         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
3109         (start_pipeline): fix building with gstreamer 0.8
3111 2006-04-02  James Livingston  <doclivingston@gmail.com>
3113         * sources/rb-podcast-source.c: (impl_delete),
3114         (rb_podcast_source_cmd_delete_feed),
3115         (rb_podcast_source_cmd_update_feed): copy the list before traversing
3116         it, since it may change during traversal. Fixes bug 336204.
3118 2006-04-01  James Livingston  <doclivingston@gmail.com>
3120         * data/art/media-eject.png: add the media-eject icon from Banshee
3121         (BSD-licensed), for use when the user's icon theme doesn't have one.
3123         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
3124         bug 334897.
3126 2006-04-01  James Livingston  <doclivingston@gmail.com>
3128         * shell/rb-shell-player.h:
3129         * shell/rb-shell-player.c: (rb_shell_player_play),
3130         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
3131         new rb_shell_player_{play,pause} functions, so everyone doesn't have
3132         to do rb_shell_player_playing followed by rb_shell_player_playpause.
3134         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
3135         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
3136         * shell/rb-shell.h: add rb_shell_get_ui_manager.
3138         * bindings/python/rb.defs: bind the above to Python, and remove some
3139         useless stuff from the bindings.
3141 2006-04-01  James Livingston  <doclivingston@gmail.com>
3143         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
3144         number tag.
3146         * shell/rb-shell.c:
3147         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
3149         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
3150         to true.
3152         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
3153         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
3154         method assigning, so it's understandable
3156         * sources/rb-library-source.c: (rb_library_source_class_init),
3157         (impl_paste): rather than hard-coding the types to ignore, use
3158         rb_source_can_copy.
3160 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3162         * sources/rb-library-source.c:
3163         (rb_library_source_preferences_sync):
3164         Don't crash if no audio profile is selected and the gconf schemas are 
3165         not installed.
3167 2006-03-31  James Livingston  <doclivingston@gmail.com>
3169         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
3170         "*" which caused compilation to fail
3172 2006-03-31  James Livingston  <doclivingston@gmail.com>
3174         * configure.ac:
3175         * Makefile.am:
3176         * backends/Makefile.am:
3177         * backends/gstreamer/Makefile.am:
3178         * backends/gstreamer/rb-encoder-gst.c:
3179         * backends/gstreamer/rb-encoder-gst.h:
3180         * backends/rb-encoder.c:
3181         * backends/rb-encoder.h: add a interface for transcoding, and a
3182         GStreamer implementation of it (based on Sound-Juicer's code).
3184         * shell/Makefile.am:
3185         * shell/rb-removable-media-manager.c:
3186         (rb_removable_media_manager_class_init),
3187         (rb_removable_media_manager_init),
3188         (rb_removable_media_manager_dispose),
3189         (rb_removable_media_manager_finalize),
3190         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
3191         (progress_cb), (completed_cb), (do_transfer),
3192         (rb_removable_media_manager_queue_transfer), (copy_entry),
3193         (rb_removable_media_manager_cmd_copy_tracks):
3194         * shell/rb-removable-media-manager.h: use the encoder interface to
3195         perform transfers of entries to other locations
3197         * shell/rb-shell-player.c: (open_location_thread):
3198         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
3199         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
3200         (rb_shell_quit):
3201         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
3202         progress in the status bar.
3204         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
3205         (rb_shell_preferences_sync),
3206         (rb_shell_preferences_browser_views_activated_cb):
3207         * data/glade/general-prefs.glade: move the browser views setting from
3208         the library tab to the general one.
3210         * data/glade/library-prefs.glade: add settings for the layout of the
3211         user's library, and their preferred encoding format (e.g. for CD
3212         ripping).
3214         * lib/rb-preferences.h:
3215         * data/rhythmbox.schemas: add keys for the above options (and a few
3216         other minor ones)
3218         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
3219         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
3220         entry, that isn't inserted into the database.
3222         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
3223         (rb_audiocd_create_track_entry):
3224         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
3225         cds, and set the mime-type of audio cd tracks correctly.
3227         * sources/rb-library-source.c: (rb_library_source_class_init),
3228         (rb_library_source_finalize),
3229         (rb_library_source_edit_profile_clicked_cb),
3230         (impl_get_config_widget), (rb_library_source_preferences_sync),
3231         (impl_receive_drag), (rb_library_source_path_changed_cb),
3232         (rb_library_source_filename_changed_cb),
3233         (rb_library_source_format_changed_cb), (sanitize_path),
3234         (filepath_parse_pattern), (layout_example_label_update),
3235         (rb_library_source_layout_path_changed),
3236         (rb_library_source_layout_filename_changed), (build_filename),
3237         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
3238         entries to the library. Large chunks of code for determining the
3239         destination file name stolen from Sound-Juicer.
3241         * sources/rb-sourcelist-model.c: (path_is_droppable):
3242         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
3243         * sources/rb-static-playlist-source.c:
3244         (rb_static_playlist_source_class_init):
3245         * sources/rb-removable-media-source.c:
3246         (rb_removable_media_source_class_init):
3247         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
3248         (rb_source_can_paste):
3249         * sources/rb-source.h: add a new _can_paste method, and use it (rather
3250         than _can_copy) to determine whether we can paste into the source.
3253 2006-03-31  Steve Frécinaux  <steve@istique.net>
3255         * plugins/rb-python-module.c: allow import of python modules with a '.'
3256         (gedit's bug 336403). Patch by Johan Dahlin.
3258 2006-03-31  James Livingston  <doclivingston@gmail.com>
3260         * sources/rb-library-source.c: 
3261         * sources/rb-library-source.h:
3262         * sources/rb-browser-source.c:
3263         * sources/rb-browser-source.h: Split RBLibrarySource into two.
3264         RBBrowserSource now contains all the stuff for having a source which
3265         views a particular entry type (including browsers and searching).
3266         RBLibrarySource derives from this, and includes the library-specific
3267         stuff, like importing and library watching. Fixes some issues where
3268         library-derived sources were doing things that should be
3269         library-specific. Fixes bug 335185.
3271         * data/ui/rhythmbox-ui.xml:
3272         * sources/Makefile.am: modifications for the above
3274         * sources/rb-daap-source.c: (rb_daap_source_class_init),
3275         (rb_daap_source_get_paned_key):
3276         * sources/rb-daap-source.h:
3277         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
3278         * sources/rb-removable-media-source.c:
3279         (rb_removable_media_source_class_init):
3280         * sources/rb-removable-media-source.h: derive from RBBrowserSource
3281         instead of RBLibrarySource.
3283 2006-03-31  James Livingston  <doclivingston@gmail.com>
3285         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
3286         I buggered up when changing from GnomeVFSFileSize.
3288 2006-03-30  James Livingston  <doclivingston@gmail.com>
3290         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
3291         for "-Wno-error".
3293         * bindings/python/rb.override:
3294         * bindings/python/Makefile.am: make the RB python bindings depend on
3295         the RhythmDB ones, and use "-Wno-error" since the machine-generated
3296         code sometimes emits warnings.
3298         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3299         (rb_shell_player_error_get_type):
3300         * shell/rb-shell-player.h:
3301         * bindings/python/rb.defs: add bindings for RBShellPlayer
3303         * rhythmdb/rhythmdb.c: (rhythmdb_init),
3304         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
3305         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
3306         * rhythmdb/rhythmdb.h:
3307         * shell/rb-shell.c: (rb_shell_get_song_properties):
3308         * widgets/rb-entry-view.c: (propid_from_name):
3309         * widgets/rb-property-view.c: (rb_property_view_class_init):
3310         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
3311         than just plain GPtrArray, and add bindings for it.
3313         * bindings/python/rhythmdb.override: wrap some functions that use
3314         GValues
3316 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3318         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
3319         Only watch directories from which entries of type SONG have been
3320         added.
3322 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3324         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
3325         No need to restore the selection after rebuilding the child model,
3326         since that can't have changed the selection.
3328 2006-03-29  James Livingston  <doclivingston@gmail.com>
3330         * bindings/python/override_common.c:
3331         * bindings/python/override_common.h: add some for missing files to
3332         cvs.
3334 2006-03-29  James Livingston  <doclivingston@gmail.com>
3336         * configure.ac:
3337         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
3338         copied from gedit's autofoo and we don't need it
3340         * bindings/python/rhythmdb.defs:
3341         * bindings/python/rhythmdb.override: add missing files to cvs
3343 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3345         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
3346         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
3347         before running any of the debug/test modes.
3348         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
3349         Make plugin loading work when running uninstalled from the shell/
3350         directory.
3352 2006-03-29  James Livingston  <doclivingston@gmail.com>
3354         * rhythmdb/rhythmdb-property-model.c:
3355         (rhythmdb_property_model_sync),
3356         (rhythmdb_property_model_column_get_type):
3357         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
3359         * rhythmdb/rhythmdb-private.h:
3360         * rhythmdb/rhythmdb-query-model.c:
3361         (rhythmdb_query_model_class_init):
3362         * rhythmdb/rhythmdb-query-model.h:
3363         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
3364         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
3365         (rhythmdb_entry_get_type):
3366         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
3368         * widgets/rb-query-creator-properties.c:
3369         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
3370         was missing.
3372         * bindings/python/Makefile.am:
3373         * bindings/python/rb.defs:
3374         * bindings/python/rb.override:
3375         * plugins/rb-python-module.c: (rb_python_module_init_python): add
3376         Python bindings for RhythmDB.
3378 2006-03-29  James Livingston  <doclivingston@gmail.com>
3380         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
3381         sharing when using --no-registration
3383 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3385         * rhythmdb/rhythmdb-query-model.c:
3386         (rhythmdb_query_model_reapply_query):
3387         Don't remove entries while iterating, as it breaks the sequence
3388         nodes.  Instead, collect a list of removed entries and process it
3389         after iterating the sequence.  Fixes #334642.
3391 2006-03-29  James Livingston  <doclivingston@gmail.com>
3393         * plugins/rb-plugin-manager.c: (active_toggled_cb),
3394         (row_activated_cb), (plugin_manager_toggle_all):
3395         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
3396         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
3397         (button_press_cb), (source_name_edited_cb):
3398         * widgets/rb-property-view.c: (rb_property_view_set_property),
3399         (rb_property_view_post_row_deleted_cb),
3400         (rb_property_view_row_activated_cb),
3401         (rb_property_view_selection_changed_cb),
3402         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
3403         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
3405 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3407         * rhythmdb/rhythmdb-query-model.c:
3408         (rhythmdb_query_model_drag_data_received):
3409         Increment the reference count for entries added by drag and drop.
3410         Fixes #336045.
3412 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3414         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
3415         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
3416         Ignore invalid UTF-8 strings.  Fixes most of #334167.
3418 2006-03-27  James Livingston  <doclivingston@gmail.com>
3420         * shell/rb-shell.c: (rb_shell_constructor),
3421         (rb_shell_sync_window_state): fix a maximise-realise race that would
3422         cause some widgets to be resized after we had explicity set theri
3423         size. Hopefully fixes bug 331927.
3425 2006-03-27  James Livingston  <doclivingston@gmail.com>
3427         * plugins/rb-plugin-manager.c: (active_toggled_cb),
3428         (row_activated_cb), (plugin_manager_set_active),
3429         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
3430         configure button sensitivity when a plugin is enabled/disabled.
3432 2006-03-27  James Livingston  <doclivingston@gmail.com>
3434         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
3435         stop warnings, only the vbos is used anyway
3437         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
3438         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
3439         collection every now an then.
3441         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
3442         if we are finalising because the python object couldn't be created.
3444         * plugins/rb-python-module.c: (rb_python_module_new_object): return
3445         NULL if the python-side object couldn't be created. Stops crashes when
3446         the object is later used when it doesn't exist in Python.
3448         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
3449         (rb_python_shutdown): do better garbage collection when shutting down.
3450         Fixes the problem where Python was holding a reference to the shell,
3451         causing RB not to exit.
3453 2006-03-27  James Livingston  <doclivingston@gmail.com>
3455         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
3456         336131.
3458 2006-03-27  James Livingston  <doclivingston@gmail.com>
3460         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
3461         From bug 334829.
3463 2006-03-26  James Livingston  <doclivingston@gmail.com>
3465         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
3466         library location list to NULL after we free it. Fixes bug 336047.
3468 2006-03-26  James Livingston  <doclivingston@gmail.com>
3470         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
3472         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
3473         supplies. Fixes bug 335947.
3475 2006-03-25  James Livingston  <doclivingston@gmail.com>
3477         * data/glade/audioscrobbler-prefs.glade:
3478         * shell/rb-audioscrobbler.c:
3479         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
3480         "submit songs" checkbox, and make it not disable username/password
3481         entry. This will be needed when we support other last.fm stuff
3482         (profile access, radio, etc).
3484 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
3486         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
3487         Volume should not display stock_volume-0 for volume > 0. Fixes bug
3488         335777.
3490 2006-03-24  James Livingston  <doclivingston@gmail.com>
3492         * shell/rb-shell-player.c: (rb_shell_player_set_property),
3493         (rb_shell_player_sync_play_order),
3494         (rb_shell_player_play_order_update_cb),
3495         (actually_set_playing_source): update the next/previous availablility
3496         in places where it was missing. Fixes bug 335490.
3498 2006-03-24  James Livingston  <doclivingston@gmail.com>
3500         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
3501         can't find the widget
3503         * lib/rb-util.c: (rb_uri_list_parse):
3504         * lib/rb-util.h: add function for parsing a URI list into strings.
3506         * metadata/Makefile.am: make the metdata helper build when linking
3507         with --as-needed
3509         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
3510         g_mkdir_with_parents instead of coding our own.
3512         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
3513         <itunes:author> over <generator>, instead of using whichever comes
3514         last.
3516         * rhythmdb/rhythmdb-private.h:
3517         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
3518         field, as we don't ever check it (to detect corruption). Saves a bit
3519         of memory.
3521 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3523         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
3524         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
3525         Escape '&' and '=' in the paths we get back from
3526         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
3528 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3530         * shell/rb-shell.c: (rb_shell_constructor):
3531         Issue startup notification after creating the main window, so
3532         notification is issued whether the window is visible or not.
3533         Fixes #335086.
3535 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3537         * sources/rb-auto-playlist-source.c: (impl_search),
3538         (rb_auto_playlist_source_query_complete_cb),
3539         (rb_auto_playlist_source_do_query):
3540         * sources/rb-library-source.c: (impl_search),
3541         (rb_library_source_query_complete_cb),
3542         (rb_library_source_do_query):
3543         Defer subset searches (where text is appended to an existing search)
3544         until the original query is complete.
3546 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
3548         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
3550         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
3551         (rb_refstring_get_sort_key): fixes for strict-aliasing
3553 2006-03-21  James Livingston  <jrl@ids.org.au>
3555         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
3556         importing a single file. Fixes bug 335307.
3558 2006-03-21  James Livingston  <jrl@ids.org.au>
3560         * shell/Makefile.am: remove the reference to backends/ that I
3561         accidently included.
3563 2006-03-21  James Livingston  <jrl@ids.org.au>
3565         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
3566         with Forte (on Solaris). Closes bug 335318.
3568         * configure.ac:
3569         * lib/Makefile.am:
3570         * player/rb-recorder-gst.c:
3571         * podcast/rb-podcast-parse.c:
3572         * remote/bonobo/Makefile.am:
3573         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
3574         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
3575         (rhythmdb_query_model_add_entry),
3576         (rhythmdb_query_model_add_results):
3577         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
3578         * rhythmdb/rhythmdb.h:
3579         * shell/Makefile.am:
3580         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
3581         (update_speed_combobox):
3582         * sources/rb-sourcelist-model.c:
3584 2006-03-21  James Livingston  <jrl@ids.org.au>
3586         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
3588         * player/Makefile.am:
3589         * shell/Makefile.am: work correctly with a separate build root.
3591 2006-03-21  James Livingston  <jrl@ids.org.au>
3593         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
3594         get handed NULL.
3596 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3598         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
3599         Only create ignore entries when importing into the library.  
3600         Ignore entries for files in removable media sources don't help.
3602 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3604         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
3605         * shell/rb-source-header.h:
3606         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
3607         * widgets/rb-search-entry.h:
3608         Add functions to make the search box grab focus.
3610         * shell/rb-shell.c: (rb_shell_cmd_view_all):
3611         Focus the search box after handling the 'view all' action.
3613 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3615         * rhythmdb/rhythmdb.h:
3616         * rhythmdb/rhythmdb.c: (rhythmdb_init),
3617         (rhythmdb_execute_multi_stat_info_cb),
3618         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
3619         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
3620         (action_thread_main):
3621         Collect all the get_file_info requests on startup into one gnome-vfs
3622         job to reduce overhead and avoid contention for the rhythmdb lock.
3623         Add a new method to call when all initial query models are set up.
3624         
3625         * shell/rb-shell.c: (idle_handle_load_complete):
3626         Call rhythmdb startup complete function when we've loaded all the
3627         playlists.  Fixes #334106.
3629 2006-03-20  James Livingston  <jrl@ids.org.au>
3631         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
3632         (rb_entry_view_selection_changed_cb),
3633         (rb_entry_view_have_complete_selection): make has_complete_selection
3634         not slow. Fixes a performance issue I added a week or so ago.
3636 2006-03-20  James Livingston  <jrl@ids.org.au>
3638         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
3639         before passing to strcmp. From bug 334559.
3641 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3643         * configure.ac:
3644         * lib/Makefile.am:
3645         * lib/rb-proxy-config.c:
3646         * lib/rb-proxy-config.h:
3647         Add a new object to watch the HTTP proxy configuration and emit
3648         signals when it changes.
3650         * shell/rb-audioscrobbler.c:
3651         * shell/rb-audioscrobbler.h:
3652         Use rb-proxy-config to watch HTTP proxy configuration.
3654         * shell/rb-shell.c:
3655         Construct rb-proxy-config object on startup, and remove all
3656         audioscrobbler references.
3658         * shell/Makefile.am:
3659         * plugins/audioscrobbler/Makefile.am:
3660         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
3661         Move all audioscrobbler code into the plugin.  We should move
3662         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
3663         point.  Don't use a private data structure in the plugin, since the
3664         class definition isn't in a header file.  Fixes #335091.
3666 2006-03-20  James Livingston  <jrl@ids.org.au>
3668         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
3669         don't enable Next if the source has an EOS type other than
3670         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
3672 2006-03-20  James Livingston  <jrl@ids.org.au>
3674         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
3675         (rb_song_info_forward_clicked_cb): deal with there being no
3676         next/previous entry.
3678         (rb_song_info_query_model_inserted_cb),
3679         (rb_song_info_query_model_deleted_cb),
3680         (rb_song_info_query_model_reordered_cb),
3681         (rb_song_info_query_model_changed_cb): monitor the query for changes,
3682         to update the button status. Fixes bug 333293.
3684 2006-03-20  James Livingston  <jrl@ids.org.au>
3686         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
3687         caused by my last commit
3689 2006-03-20  James Livingston  <jrl@ids.org.au>
3691         * bindings/python/Makefile.am:
3692         * bindings/python/rb.defs:
3693         * bindings/python/rb.override: add python bindings of RBRemoteProxy
3695         * shell/rb-shell.c: (rb_shell_constructor),
3696         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
3697         tray-icon detection slightly
3699 2006-03-19  Steve Frécinaux  <steve@istique.net>
3701         * data/ui/rhythmbox-ui.xml:
3702         * shell/rb-shell.c:
3704         Add an empty Tool Menu (hidden by default) containing placeholders for
3705         plugins.
3707         * configure.ac:
3708         * plugins/Makefile.am:
3709         * plugins/pythonconsole/Makefile.am:
3710         * plugins/pythonconsole/pythonconsole.py:
3711         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
3712         
3713         Python Console plugin
3715 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3717         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
3718         Extra step to encode '&' and '=' to match what gnome-vfs does
3719         internally.
3720         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3721         (rhythmdb_tree_save):
3722         Increment rhythmdb xml version to 1.2, and force another uri
3723         re-canonicalisation when loading v1.1 databases.
3724         Fixes bug #333998.
3726 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3728         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
3729         (avahi_client_init), (browse_cb):
3730         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
3731         (avahi_client_init):
3732         Fix compilation with Avahi 0.5.x (bug #334551).
3734 2006-03-19  James Livingston  <jrl@ids.org.au>
3736         Add Increase/Decrease Volume menu items and keybindings. From bug
3737         123383.
3739         * data/ui/rhythmbox-ui.xml:
3740         * shell/rb-shell-player.c: (rb_shell_player_constructor),
3741         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
3742         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
3744 2006-03-19  James Livingston  <jrl@ids.org.au>
3746         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
3748         * shell/Makefile.am: fix the link order, so that we compile with
3749         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
3751 2006-03-19  James Livingston  <jrl@ids.org.au>
3753         patch by: Adam Petaccia  <adam@tpetaccia.com>
3755         * data/ui/rhythmbox-ui.xml: move preferences below "configure
3756         plugins". Fixes bug 335037.
3758 2006-03-18  James Livingston  <jrl@ids.org.au>
3760         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
3761         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
3762         332992.
3764         * widgets/rb-header.c: don't make artist/album info in the header the
3765         small size, since it's hard to read.
3767 2006-03-16  William Jon McCann  <mccann@jhu.edu>
3769         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
3770         (rhythmdb_finalize): Don't leak the hash tables.
3771         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
3772         (rhythmdb_commit_internal): Make sure to process the deletions.
3773         (rhythmdb_entry_delete): Use a hash.
3775         * podcast/rb-podcast-manager.c: Random analness about char*
3776         (rb_podcast_manager_remove_feed): Add debugging.
3777         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
3778         the result of gnome_vfs_unlink.  Don't leak a uri.
3780         Fixes #334786
3782 2006-03-18  James Livingston  <jrl@ids.org.au>
3784         * NEWS: update NEWS file
3786 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3788         * rhythmdb/rhythmdb-property-model.c:
3789         (rhythmdb_property_model_prop_changed_cb):
3790         Remove entries from the hash table after processing visible->hidden
3791         changes.
3793 2006-03-16  William Jon McCann  <mccann@jhu.edu>
3795         * sources/rb-daap-source.c (connection_connected_cb) 
3796         (connection_disconnected_cb): Add debug.
3797         (rb_daap_source_get_headers): Check for NULL connection.
3799         * daapsharing/rb-daap-src.c (rb_daap_src_open):
3800         Check return value of rb_daap_source_get_headers.
3802         Fixes #332089
3804 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3806         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
3807         Restore the selection after rebuilding the child model, so the
3808         selection is shown correctly after using the 'browse this
3809         album/artist/genre' menu items.
3811 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3813         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
3814         Clear the selection before changing the active model.
3815         Fixes crash reported in bug 334549.
3817 2006-03-15  James Livingston  <jrl@ids.org.au>
3819         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
3820         (rb_tray_icon_sync_action):
3821         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
3822         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
3823         for non-libnotify notification bubbles. Fixes bug 331721.
3825 2006-03-15  James Livingston  <jrl@ids.org.au>
3827         Add search-bar options to playlists. Fixes bug 334407.
3829         * sources/rb-auto-playlist-source.c:
3830         (rb_auto_playlist_source_class_init),
3831         (rb_auto_playlist_source_constructor),
3832         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
3833         (search_action_to_prop), (search_action_changed):
3834         * sources/rb-static-playlist-source.c:
3835         (rb_static_playlist_source_class_init),
3836         (rb_static_playlist_source_constructor),
3837         (construct_query_from_selection), (impl_get_search_actions),
3838         (search_action_to_prop), (search_action_changed):
3840 2006-03-14  William Jon McCann  <mccann@jhu.edu>
3842         * shell/rb-source-header.c (rb_source_header_set_source_internal):
3843         Remove broken attempt at making the search bar buttons not
3844         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
3846 2006-03-14  William Jon McCann  <mccann@jhu.edu>
3848         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
3849         Chain up to parent's dispose instead of finalize.  Fixes #334479.
3851 2006-03-14  William Jon McCann  <mccann@jhu.edu>
3853         * widgets/rb-header.c (rb_header_sync): Escape album and
3854         artist before adding to markup.
3856 2006-03-14  William Jon McCann  <mccann@jhu.edu>
3858         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
3859         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
3860         (rb_header_set_property), (rb_header_get_property),
3861         (rb_header_sync):
3862         Remove the GnomeUrl song links until we can do it properly.
3863         Fixes #334453.
3865 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3867         * shell/rb-source-header.c: (rb_source_header_clear_search):
3868         Remove the stored search text from the hash table, so it doesn't
3869         reappear after switching to another source and back.
3871         * sources/rb-auto-playlist-source.c: (impl_search):
3872         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
3873         * sources/rb-static-playlist-source.c: (impl_search):
3874         Make sure all sources treat impl_search(NULL) and impl_search("") the
3875         same.  Fixes #334525.
3877 2006-03-14  James Livingston  <jrl@ids.org.au>
3879         Store which thread created new entries, and make rhythmdb_commit only
3880         insert the entries for the thread that calls it. This stops one thread
3881         calling rhythmdb_commit inserting entries that are half-way through
3882         construction by another thread (as happens with audio cds). From bug
3883         330226.
3885         * rhythmdb/rhythmdb.c: (rhythmdb_init),
3886         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
3887         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
3888         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
3889         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
3890         (rhythmdb_process_metadata_load),
3891         (rhythmdb_process_queued_entry_set_event),
3892         (rhythmdb_prop_get_type):
3894 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3896         * rhythmdb/rhythmdb-query-model.c:
3897         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
3898         (rhythmdb_query_model_finalize):
3899         Move object unrefs from _finalize into _dispose.
3900         
3901         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
3902         Remove extra g_object_ref that was causing query model leaks.
3903         
3904         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
3905         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
3906         (genre_selection_reset_cb), (rb_iradio_source_do_query):
3907         Remove the cached 'all' query, since it doesn't really help and it
3908         makes the code more complicated.  Attach the genre property view to
3909         the query model build from the search text, so only genres for
3910         stations matching the search terms are displayed.  Preserve the genre
3911         selection across searches.
3913         * widgets/rb-library-browser.c: 
3914         (rb_library_browser_class_init), (rb_library_browser_get_property):
3915         Add properties for the input and output models for the browser, and
3916         remove the 'changed' signal as we can just use notify::output-model.
3917         (ignore_selection_changes),
3918         (selection_restore_data_destroy), (query_complete_cb),
3919         (restore_selection): Helper functions for preserving selections across
3920         query model rebuilds.
3921         (rebuild_output_model):  New function for creating a query model to
3922         use as the display model for a source using the browser.
3923         (rebuild_child_model): Add a call to rebuild_output_model, add missing
3924         g_object_unrefs, reuse the parent's query model when there's no
3925         selection, and use ignore_selection_changes and restore_selection.
3926         (rb_library_browser_set_selection): rebuild_child_model emits the
3927         changed signal, so no need to do it here.
3928         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
3929         ignore_selection_changes and restore_selection. 
3930         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
3931         flag to rb_library_browser_set_model indicating whether the query is
3932         asynchronous.
3934         * sources/rb-static-playlist-source.c:
3935         (rb_static_playlist_source_class_init),
3936         (rb_static_playlist_source_dispose):
3937         (rb_static_playlist_source_constructor):  Add an extra reference on
3938         the base model, so it doesn't vanish when we set a new display model
3939         based on a search or browser selection.
3940         (impl_search): Ensure the search_text field in the source is NULL if
3941         the search box is empty.
3942         (construct_query_from_selection),
3943         (rb_static_playlist_source_do_query): Use the query model constructed
3944         from the search as the input model for the browser.
3945         (rb_static_playlist_source_browser_changed_cb): Use the browser's
3946         output model as the query model for the source.
3948         * sources/rb-auto-playlist-source.c:
3949         (rb_auto_playlist_source_finalize): Free more stuff.
3950         (rb_auto_playlist_source_constructor),
3951         (rb_auto_playlist_source_browser_changed_cb):
3952         Update for rb-library-browser changes, use the browser's output query
3953         model as the query model for the source.
3954         (impl_reset_filters), (impl_search), 
3955         (rb_auto_playlist_source_do_query),
3956         (rb_auto_playlist_source_set_query):
3957         Use the query model constructed from the search text as the input to
3958         the library browser, and when adding text to an existing search, apply
3959         the new query to the existing query model.
3960         
3961         * sources/rb-library-source.c: (rb_library_source_dispose):
3962         (rb_library_source_finalize): Chain dispose up to the parent class.
3963         (rb_library_source_constructor): Update for rb-library-browser
3964         changes. 
3965         (impl_search): Ensure search_text is NULL if the search box is empty,
3966         and use the subset flag to _do_query if text has been appended to an
3967         existing search.
3968         (search_action_changed), (impl_reset_filters):
3969         (rb_library_source_browser_changed_cb),
3970         (rb_library_source_do_query): Use the browser's output model as the
3971         query model for the source.
3973         Rework library and playlist sources to use a single query chain,
3974         and to limit the entries shown in property views based on the search
3975         terms.  Fixes bug #322787.
3977 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3979         * configure.ac:  Enable metadata helper by default, and fix a typo.
3981 2006-03-13  James Livingston  <jrl@ids.org.au>
3983         Make RBRefStrings lazily create the folded and sort-key strings when
3984         they are first used. This will same some memory by not creating ones
3985         that are never used, and delaying some of the others to when the user
3986         resorts or performs a similar action. Fixes bug 332992.
3988         * rhythmdb/rb-refstring.c: (rb_refstring_free),
3989         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
3990         (rb_refstring_get), (rb_refstring_get_folded),
3991         (rb_refstring_get_sort_key), (rb_refstring_hash),
3992         (rb_refstring_equal):
3993         * rhythmdb/rb-refstring.h:
3994         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3996 2006-03-12  William Jon McCann  <mccann@jhu.edu>
3998         * data/ui/rhythmbox-ui.xml:
3999         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4000         * lib/rb-stock-icons.h:
4001         * shell/rb-shell-player.c:
4002         * shell/rb-shell.c: (rb_shell_constructor):
4003         * shell/rb-source-header.c: (force_no_shadow),
4004         (ui_manager_add_widget_cb), (rb_source_header_constructor),
4005         (rb_source_header_class_init), (rb_source_header_init),
4006         (merge_source_ui_cb), (toolbar_set_homogeneous),
4007         (rb_source_header_set_source_internal),
4008         (rb_source_header_set_property), (rb_source_header_get_property),
4009         (rb_source_header_set_source), (rb_source_header_new),
4010         (rb_source_header_filter_changed_cb):
4011         * shell/rb-source-header.h:
4012         * sources/rb-library-source.c: (rb_library_source_class_init),
4013         (rb_library_source_init), (search_action_to_prop),
4014         (search_action_changed), (rb_library_source_constructor),
4015         (impl_search), (impl_reset_filters), (impl_get_search_actions),
4016         (construct_query_from_selection):
4017         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4018         (rb_podcast_source_init), (search_action_to_prop),
4019         (search_action_changed), (rb_podcast_source_constructor),
4020         (construct_query_from_selection), (impl_get_ui_actions),
4021         (impl_get_search_actions):
4022         * sources/rb-source.c: (rb_source_class_init),
4023         (rb_source_get_ui_actions), (default_get_search_actions),
4024         (rb_source_get_search_actions):
4025         * sources/rb-source.h:
4027         Add a search bar.  Fixes #328618
4029 2006-03-12  James Livingston  <jrl@ids.org.au>
4031         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
4032         * shell/main.c: (main): make --no-update not stat files checking for
4033         changes, instead of doing nothing. Fixes bug 125177.
4035 2006-03-12  James Livingston  <jrl@ids.org.au>
4037         * podcast/rb-podcast-manager.c:
4038         (rb_podcast_manager_thread_parse_feed):
4039         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
4040         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
4041         having an invalid mime-type. Fixed bug 329813.
4043 2006-03-12  James Livingston  <jrl@ids.org.au>
4045         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
4046         Finally lets us close bug 309609.
4048         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
4049         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
4050         0.10
4052         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
4053         inverted logic of the editable check.
4055 2006-03-12  James Livingston  <jrl@ids.org.au>
4057         Make API doc generation work again. Fixes bug 334276.
4059         * doc/reference/Makefile.am:
4060         * doc/reference/tmpl/rb-debug.sgml:
4061         * doc/reference/tmpl/rb-druid.sgml:
4062         * doc/reference/tmpl/rb-entry-view.sgml:
4063         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
4064         * doc/reference/tmpl/rb-metadata.sgml:
4065         * doc/reference/tmpl/rb-shell.sgml:
4066         * doc/reference/tmpl/rhythmbox-unused.sgml:
4067         * doc/reference/tmpl/rhythmdb.sgml:
4069 2006-03-12  James Livingston  <jrl@ids.org.au>
4071         * shell/rb-shell-clipboard.c:
4072         (rb_shell_clipboard_set_source_internal),
4073         (rb_shell_clipboard_sync): don't try to use the source's entry view if
4074         it doesn't have one. Fixes bug 331673.
4076         * sources/rb-source.c: (rb_source_class_init): provide a default
4077         have_url implementation that returns FALSE.
4079 2006-03-12  James Livingston  <jrl@ids.org.au>
4081         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
4082         doing a distclean. Fixes bug 334221.
4085         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
4087         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
4089 2006-03-11  James Livingston  <jrl@ids.org.au>
4091         * shell/rb-shell.c: (rb_shell_window_state_cb),
4092         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
4093         update the window width/height when iconified. Stops the window
4094         changing size when it is restored from the tray, fixing bug 333824. 
4096 2006-03-11  James Livingston  <jrl@ids.org.au>
4098         Try to get cvs to actually add the necessary files for plugin support
4100 2006-03-11  James Livingston  <jrl@ids.org.au>
4102         Add a plugin framework, with basic support for Python plugins (based
4103         on gedit's). Closes bug 330523.
4105         * Makefile.am:
4106         * shell/Makefile.am:
4107         * configure.ac: necessary autofoo.
4109         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
4111         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
4112         * lib/rb-file-helpers.h:
4114         * data/glade/plugins/glade:
4115         * lib/rb-preferences.h:
4116         * plugins/*:
4117         * bindings/*: plugin framework
4119         * plugins/sample/*:
4120         * plugins/sample-python/*: sample plugins
4122         * plugins/audioscrobbler/*:
4123         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
4124         (rb_audioscrobbler_set_property),
4125         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
4126         submission into a plugin. shell/audioscrobbler.* should really be
4127         moved, but that sucks with cvs.
4129         * shell/rb-shell.h:
4130         * shell/rb-shell.c: (rb_shell_constructor),
4131         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
4132         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
4133         (rb_shell_quit): start and stop plugin framework.
4135 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4137         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
4138         (rhythmdb_entry_delete):
4139         Emit entry-deleted signals when rhythmdb_commit is called, rather than
4140         immediately, so we can't get change notifications afterwards.  
4141         Fixes #331732.
4142         (rhythmdb_process_metadata_load): Add a commit after removing an
4143         entry so we can recreate it with a different type without getting
4144         confused.
4146 2006-03-11  James Livingston  <jrl@ids.org.au>
4148         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
4149         use the drive name for audio CDs, use "Unknown CD".
4151 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4153         patch by:  James Henstridge  <james@jamesh.id.au>
4155         * sources/rb-removable-media-source.c:
4156         (rb_removable_media_source_constructor):
4157         Get the device name from the GnomeVFSDrive if possible,
4158         since this is usually a more descriptive name.  Fixes #333080.
4160 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4162         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
4164         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
4165         Don't automatically download episodes when configured for manual
4166         updating.  Fixes #331564.
4168 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4170         * rhythmdb/rhythmdb-property-model.c:
4171         (rhythmdb_property_model_iter_from_string):
4172         Return an iterator for the 'all' property when name == NULL,
4173         and don't write to *iter if iter == NULL.
4175 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4177         * shell/rb-shell-player.c: (rb_shell_player_do_next):
4178         When switching to the play queue, still call _go_next on the normal
4179         play order, so self-emptying auto playlists ("play count = 0" etc.)
4180         don't restart once the queue is empty.
4182         * shell/rb-tray-icon.c:
4183         Change shortcut for 'show notifications' to 'o' so it doesn't clash
4184         with 'next'.
4186 2006-03-05  James Livingston  <jrl@ids.org.au>
4188         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
4189         don't submit tracks which could not be played. Fixed bug 333013.
4191         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
4192         tracks which could not be played.
4194 2006-03-05  James Livingston  <jrl@ids.org.au>
4196         Sync musicbrainz lookup code from Sound-Juicer cvs.
4198         * metadata/sj-metadata-musicbrainz.c:
4199         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
4200         (get_offline_track_listing), (artist_and_title_from_title),
4201         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
4202         (mb_list_albums), (mb_get_submit_url):
4203         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
4204         * metadata/sj-metadata.h:
4205         * metadata/sj-structures.c: (track_details_free),
4206         (album_details_free):
4207         * metadata/sj-structures.h:
4209 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4211         * lib/rb-debug.h:
4212         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
4213         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
4214         (rb_profiler_reset), (rb_profiler_free):
4215         Filter debug output by matching the file and function names against a
4216         match string.
4218         * shell/main.c: (main):
4219         Add -D command line option to specify the debug match string.
4221         * shell/rb-removable-media-manager.c:
4222         (rb_removable_media_manager_mount_volume):
4223         Fix some typos in debug output.
4225 2006-03-03  James Livingston  <jrl@ids.org.au>
4227         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
4228         * shell/rb-shell.c: (rb_shell_load_uri):
4229         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
4230         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
4231         use the new "recurse" property from totem-plparser, if present. Stop
4232         RB hanging for new users who don't have a 'net connection. From bug
4233         331508.
4235 2006-03-02  Bastien Nocera  <hadess@hadess.net>
4237         * shell/rb-removable-media-manager.c:
4238         (rb_removable_media_manager_mount_volume):
4239         * sources/Makefile.am:
4240         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
4241         Fix missing files on make dist (conditional files), only build the
4242         N770 support if there's HAL support, as we have no other ways of
4243         detecting it
4245 2006-03-03  James Livingston  <jrl@ids.org.au>
4247         * shell/rb-shell-clipboard.c:
4248         (rb_shell_clipboard_set_source_internal): really fix it this time.
4249         hopefully.
4251 2006-03-03  James Livingston  <jrl@ids.org.au>
4253         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
4254         with the idle function not being removed.
4256 2006-03-02  James Livingston  <jrl@ids.org.au>
4258         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
4259         * widgets/rb-entry-view.h: add function for determining whether all
4260         entries are selected.
4262         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
4263         (rb_shell_clipboard_set_source_internal),
4264         (rb_shell_clipboard_finalize),
4265         (rb_shell_clipboard_idle_poll_deletions),
4266         (rb_shell_clipboard_entryview_changed_cb),
4267         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
4268         removals, to update things.
4270         (rb_shell_clipboard_sync): update the Select All and Select None
4271         sensitivity, based on what is selected. Fixed bug 172220.
4273 2006-03-02  James Livingston  <jrl@ids.org.au>
4275         * widgets/rb-library-browser.c: (rebuild_child_model): save and
4276         restore the selections of later models. This means that selecting the
4277         artist for the selected album does not reset the album selection.
4279 2006-03-02  James Livingston  <jrl@ids.org.au>
4281         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
4282         Stops it emitting critical warnings.
4284 2006-03-02  James Livingston  <jrl@ids.org.au>
4286         * lib/rb-file-helpers.c: (rb_uri_append_uri):
4287         * lib/rb-file-helpers.h: Add uri concatenation function for when the
4288         second fragment is already escaped.
4290         * sources/rb-generic-player-source.c:
4291         (rb_generic_player_source_class_init),
4292         (rb_generic_player_source_constructor), (impl_show_popup),
4293         (rb_generic_player_source_load_playlists),
4294         (rb_generic_player_source_transform_playlist_uri),
4295         (handle_playlist_entry_cb), (visit_playlist_dirs),
4296         (default_load_playlists), (default_transform_playlist_uri):
4297         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
4298         the device. Allow subclasses to override the playlist loading, and
4299         (playlist uri)->(actual uri) mapping. A lot of devices which have
4300         playlists won't work right now, but people will see them and hopefully
4301         file bugs.
4303         * sources/rb-psp-source.c: (rb_psp_source_class_init),
4304         (rb_psp_source_create_playlists): Adapt the PSP for the above change
4305         
4306         * sources/Makefile.am:
4307         + sources/rb-nokia770-source.{c,h}:
4308         * shell/rb-removable-media-manager.c:
4309         (rb_removable_media_manager_mount_volume): Add support for reading
4310         playlists of Nokia 770s.
4312 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4314         * data/glade/podcast-properties.glade:
4315         * podcast/rb-podcast-properties-dialog.c:
4316         (rb_podcast_properties_dialog_init),
4317         (rb_podcast_properties_dialog_update),
4318         (rb_podcast_properties_dialog_update_location),
4319         (rb_podcast_properties_dialog_update_download_location):
4320         Add 'download location' field showing the path to the downloaded copy.
4321         Fixes #330696.
4323 2006-03-01  Bastien Nocera  <hadess@hadess.net>
4325         * configure.ac: simplify HAVE_HAL define
4327 2006-03-01  Bastien Nocera  <hadess@hadess.net>
4329         * configure.ac:
4330         * lib/rb-file-helpers.c: (rb_uri_append_path):
4331         * lib/rb-file-helpers.h:
4332         * shell/rb-removable-media-manager.c:
4333         (rb_removable_media_manager_mount_volume):
4334         * sources/Makefile.am:
4335         * sources/rb-ipod-source.c:
4336         * sources/rb-psp-source.*:
4337         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
4338         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
4340 2006-03-02  James Livingston  <jrl@ids.org.au>
4342         * shell/rb-shell-player.c: (rb_shell_player_set_property),
4343         (rb_shell_player_play), (rb_shell_player_jump_to_current),
4344         (swap_playing_source), (rb_shell_player_playpause),
4345         (rb_shell_player_sync_buttons), (actually_set_playing_source),
4346         (rb_shell_player_set_playing_source_internal): check for the entry
4347         view being NULL before trying to use it. Lets us support sources which
4348         don't have an entry view. From bug 331673.
4350 2006-03-01  Bastien Nocera  <hadess@hadess.net>
4352         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
4353         use gnome_vfs_read_entire_file with a URI, not a local filename
4355 2006-03-01  James Livingston  <jrl@ids.org.au>
4357         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
4358         first-seen and last-seen when merging duplicate entries.
4360 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4362         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
4363         * widgets/rb-property-view.h:  New function, allowing custom 
4364         interactive search functions for property views.
4365         
4366         * sources/rb-podcast-source.c: 
4367         (feed_select_change_cb): Only do a new query when the selection
4368         actually changes.
4369         (rb_podcast_source_constructor),
4370         (rb_podcast_source_feed_title_search_func):
4371         Interactive search function for podcast feed titles.  Fixes #327451.
4373 2006-03-01  James Livingston  <jrl@ids.org.au>
4375         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
4376         the uri in the callback, since it causes symbols to not be escaped.
4377         Fixes bug 332976.
4379         * data/ui/rhythmbox-ui.xml:
4380         * sources/rb-import-errors-source.c:
4381         (rb_import_errors_source_class_init),
4382         (rb_import_errors_source_constructor), (impl_get_status),
4383         (impl_move_to_trash),
4384         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
4385         import errors source
4386         
4387         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
4388         (rb_entry_view_append_column): unescape the URI for display.
4390 2006-03-01  James Livingston  <jrl@ids.org.au>
4392         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
4393         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
4394         function fails.
4396 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
4398         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
4399         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
4400         * sources/rb-play-queue-source.c:
4401         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
4402         (rb_play_queue_source_update_count):  Use "Play Queue" instead
4403         of "Queued Songs".
4405         Fixes #331637.
4407 2006-03-01  James Livingston  <jrl@ids.org.au>
4409         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
4410         Fixes bug 332913.
4412 2006-03-01  James Livingston  <jrl@ids.org.au>
4414         * daapsharing/rb-daap-mdns-browser-howl.c:
4415         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
4416         * daapsharing/rb-daap-mdns-publisher-avahi.c:
4417         (rb_daap_mdns_publisher_class_init),
4418         (rb_daap_mdns_publisher_finalize):
4419         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
4420         * player/rb-recorder-gst.c: (rb_recorder_class_init),
4421         (rb_recorder_finalize):
4422         * rhythmdb/rhythmdb-query-model.c:
4423         (rhythmdb_query_model_constructor):
4424         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
4425         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
4426         * sources/rb-playlist-source-recorder.c:
4427         (rb_playlist_source_recorder_style_set),
4428         (rb_playlist_source_recorder_class_init),
4429         (rb_playlist_source_recorder_finalize):
4430         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
4431         other classes in the same way, so they don't break when derived from.
4433 2006-03-01  James Livingston  <jrl@ids.org.au>
4435         * sources/rb-generic-player-source.c:
4436         (rb_generic_player_source_constructor): don't get the parent class in
4437         a dumb way, and it breaks when the class is derived from.
4439 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
4441         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
4443 2006-03-01  James Livingston  <jrl@ids.org.au>
4445         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
4446         not work in glib 2.8 systems.
4448 2006-03-01  James Livingston  <jrl@ids.org.au>
4450         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
4451         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
4452         say it is crap.
4454         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
4455         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
4456         podcasts on ion-local places
4458         * rhythmdb/gsequence.c: (g_sequence_node_new),
4459         (g_sequence_node_free): use gslice if we are building against glib
4460         2.10.
4462         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
4463         local files too, so it doesn't block.
4465 2006-02-28  James Livingston  <jrl@ids.org.au>
4467         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
4468         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
4469         stats the file. Stops the UI blocking while stats are done.
4471 2006-02-28  James Livingston  <jrl@ids.org.au>
4473         * sources/rb-static-playlist-source.c:
4474         (rb_static_playlist_source_class_init),
4475         (rb_static_playlist_source_constructor), (impl_reset_filters),
4476         (impl_get_property_views), (impl_browser_toggled),
4477         (rb_static_playlist_source_do_query),
4478         (rb_static_playlist_source_browser_changed_cb): add browsers to static
4479         playlists. From bug 118862.
4481         * sources/rb-play-queue-source.c:
4482         (rb_play_queue_source_class_init): disable them for the play queue.
4484 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
4486         * data/glade/library-prefs.glade:  Add a mnemonic.
4487         * sources/rb-library-source.c:
4488         (rb_library_source_location_button_clicked_cb):  Use title
4489         capitalization for window title.
4491 2006-02-28  James Livingston  <jrl@ids.org.au>
4493         * sources/rb-auto-playlist-source.c:
4494         (construct_query_from_selection): don't create a subquery for only one
4495         criteria, as it's a silly effifiency degredation.
4497 2006-02-28  James Livingston  <jrl@ids.org.au>
4499         * rhythmdb/rhythmdb.h:
4500         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4501         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
4502         saved to disk
4504         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
4505         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
4506         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
4507         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
4508         IGNORE (e.g. known video stream) create an entry of the Ignore type.
4509         This will make importing files quicker as we don't need to try files
4510         that we know are not going to be interesting - especially useful when
4511         using the library watching facility.
4513         Fixes bug 323179.
4515 2006-02-28  James Livingston  <jrl@ids.org.au>
4517         * shell/rb-shell.c: (rb_shell_constructor),
4518         (rb_shell_set_visibility): fix browser and source-list pane
4519         positioning, that I broke with the "remember visibility" patch.
4521 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4523         * metadata/rb-metadata-dbus-service.c: (main):
4524         Change argument handling so you can use --debug with the --load and
4525         --can-save test modes.
4526         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
4527         Use a separate GMainContext, not the default one.  Probably fixes
4528         #332344.
4530 2006-02-27  James Livingston  <jrl@ids.org.au>
4532         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
4533         first starting up. Fixes bug 330342.
4535 2006-02-27  James Livingston  <jrl@ids.org.au>
4537         * sources/rb-sourcelist-model.c:
4538         (rb_sourcelist_model_set_dnd_targets):
4539         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
4540         COPY action for draging sources and tracks, not MOVE as well. Stops
4541         Nautilus moving file away, and fixes bug 332488.
4543 2006-02-27  James Livingston  <jrl@ids.org.au>
4545         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
4547         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
4548         and Last Played metadata off iPods. Closes bug 324648.
4550 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4552         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
4553         Disable audioscrobbler when run with the --no-registration flag, since
4554         last.fm doesn't allow multiple concurrent clients per user.
4556 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4558         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
4559         Rename renamable sources when F2 is pressed when the sourcelist has
4560         focus.  Fixes #330700.
4562 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4564         * shell/rb-playlist-manager.c: (cleanup_edit_data),
4565         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
4566         (rb_playlist_manager_cmd_edit_automatic_playlist):
4567         Fix various crashes when deleting auto playlists previously edited
4568         by disconnecting signal handlers when the query editor is closed or
4569         the playlist is deleted.
4571 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4573         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
4574         removed load failure dialog, and actually use the friendly file type
4575         name in error messages.
4577 2006-02-24  James Livingston  <jrl@ids.org.au>
4579         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
4581         * sources/rb-library-source.c:
4582         (rb_library_source_location_button_clicked_cb),
4583         (rb_library_source_preferences_sync),
4584         (rb_library_source_library_location_cb): convert the library URI to
4585         for display, and back again. Fixes bug 332356.
4587 2006-02-23  James Livingston  <jrl@ids.org.au>
4589         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
4590         (rhythmdb_process_metadata_load), (monitor_subdirectory),
4591         (rhythmdb_sync_library_location): don't monitor files at all if
4592         watching is turned off. From bug 323096.
4594 2006-02-23  James Livingston  <jrl@ids.org.au>
4596         * data/rhythmbox.schemas:
4597         * lib/rb-preferences.h:
4598         * shell/rb-shell.c: (rb_shell_constructor),
4599         (rb_shell_set_visibility): remember main window visibility between
4600         sessions. Fixes bug 127320.
4602 2006-02-23  James Livingston  <jrl@ids.org.au>
4604         * data/glade/library-prefs.glade:
4605         * sources/rb-library-source.c: (impl_get_config_widget),
4606         (rb_library_source_location_button_clicked_cb),
4607         (rb_library_source_preferences_sync),
4608         (rb_library_source_library_location_cb),
4609         (rb_library_source_watch_toggled_cb): change the library-location
4610         widgets from the file-chooser drop menu to a text entry and Browse
4611         button. This is needed to prevent the location from chaning if the
4612         directory cannot be found. Fixes bug 328414.
4614 2006-02-23  James Livingston  <jrl@ids.org.au>
4616         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
4617         item. Fixes bug 329042.
4619 2006-02-23  James Livingston  <jrl@ids.org.au>
4621         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
4623         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
4624         comma in some podcast feeds. Fixes bug 332194.
4626 2006-02-23  James Livingston  <jrl@ids.org.au>
4628         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
4629         lower priority.
4631         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
4632         the internal audio cd URIs from "cdda://device:track" to
4633         "cdda://track#device" as it makes processing much easier.
4635         * shell/rb-shell-player.c: (rb_shell_player_open_location):
4636         * player/rb-player-gst.c: don't have the shell close the player
4637         between songs, as doing that should be backend-specific. Make the
4638         gstreamer backend close before starting a new track, unless the old
4639         and new ones are both tracks on the same audio cd. Just seek in that
4640         case.
4642 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4644         * doc/reference/rhythmbox.types: Fix doc build a bit more.
4646 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4648         * configure.ac: Enable more warnings in my stupid setup too.
4649         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
4650         #332210.
4652 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4654         * sources/rb-missing-files-source.h,
4655         * sources/rb-missing-files-source.c,
4656         * sources/rb-import-errors-source.h,
4657         * sources/rb-import-errors-source.c:
4658         Add library meta-sources, showing missing files and import errors.
4659         Fixes #167763, #142322.
4661         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
4662         * sources/rb-sourcelist-model.h:
4663         * sources/rb-sourcelist.c: (rb_sourcelist_append),
4664         (match_source_to_iter), (rb_sourcelist_source_to_iter),
4665         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
4666         (visibility_notify_cb):
4667         Store source visibility in the sourcelist model, so we can determine
4668         child source counts correctly and get the sourcelist expander column
4669         right.
4670         
4671         * widgets/rb-entry-view.h:
4672         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
4673         (rb_entry_view_append_column), (set_column_visibility):
4674         Allow the creator of the entry view to specify which columns are
4675         always visible.
4677         * sources/rb-source.h:
4678         * sources/rb-source.c: (_autohide_update_visibility),
4679         (_rb_autohide_source_row_deleted_cb),
4680         (_rb_autohide_source_row_inserted_cb),
4681         (_rb_source_hide_when_empty):
4682         Allow sources to automatically hide themselves when empty.
4683         
4684         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
4685         * sources/rb-library-source.c: (rb_library_source_constructor):
4686         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4687         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
4688         Explicitly specify which columns are always visible.
4689         
4690         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4691         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
4692         Remove load error signal handling and load failure dialog.
4693         Create missing files and import errors sources for the library.
4695         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
4696         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
4697         Create DB entries for import errors rather than emitting the 'load
4698         error' signal; mark loaded entries visible.
4699         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
4700         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
4701         (rhythmdb_prop_get_type): Store string form of last seen time for
4702         hidden entries, since it's used in the missing files source.
4703         (rhythmdb_entry_import_error_get_type): 
4704         Add entry type for import errors.
4705         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
4706         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
4707         (rhythmdb_entry_move_to_trash_set_error),
4708         (rhythmdb_entry_move_to_trash):  
4709         Correct spelling, add missing rhythmdb_commit.
4710         * rhythmdb/rhythmdb.h:  
4711         Add import error entry type and last seen string property.
4712         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
4713         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4714         (save_entry):  Ignore string form of 'last seen' property.
4716         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
4717         Don't try to play hidden entries or import error entries.
4719         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
4720         * sources/Makefile.am: Add meta-source files
4721         * widgets/Makefile.am: Remove load failure dialog files
4723 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4725         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
4726         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
4727         few bits and pieces.
4729 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4731         * metadata/test-metadata.c: (load_metadata_cb):
4732         Fix compile warning for ignoring return value from getcwd, #332064.
4734 2006-02-21  James Livingston  <jrl@ids.org.au>
4736         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
4737         (edit_auto_playlist_deleted_cb),
4738         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
4739         playlist editor non-modal. Fixes bug 320030.
4741 2006-02-21  James Livingston  <jrl@ids.org.au>
4743         * shell/rb-shell.c: (rb_shell_constructor):
4744         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
4745         (rb_header_set_show_artist_album):
4746         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
4747         (rb_song_display_box_sync): make the queue sidebar and song display
4748         not get affected by gtk_widget_show_all. Fixes bug 332001.
4750 2006-02-21  James Livingston  <jrl@ids.org.au>
4752         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4754         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
4755         feeds which use timezone names instead of offsets. Doesn't actually
4756         parse the timezone name since they are not standardised. Fixes bug
4757         331691.
4759 2006-02-21  James Livingston  <jrl@ids.org.au>
4761         * help/C/figures/rb-notification-area.png:
4762         * help/C/figures/rb-sidebar.png:
4763         * help/C/quick-reference.xml: remove obsolete files from CVS.
4765         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
4766         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
4767         (rhythmdb_query_free), (rhythmdb_query_serialize),
4768         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
4769         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
4771         * widgets/rb-query-creator-properties.c: add prefix and suffix
4772         (escapedStringCriteriaGetWidgetData): use better escaping, so it
4773         doesn't escape the ':' separator in uris.
4775 2006-02-21  James Livingston  <jrl@ids.org.au>
4777         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
4778         on startup.
4780 2006-02-21  James Livingston  <jrl@ids.org.au>
4782         * NEWS: update with recent changes
4784 2006-02-21  James Livingston  <jrl@ids.org.au>
4786         * shell/rb-shell.c: (rb_shell_constructor),
4787         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
4788         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
4789         (rb_druid_browse_clicked_cb), (do_response):
4790         * widgets/rb-druid.h: Make running the druid not block RBShell
4791         starting up. This is required so that bonobo registration doesn't time
4792         out. Fixed bug 318766.
4794 2006-02-21  James Livingston  <jrl@ids.org.au>
4796         * rhythmdb/rhythmdb-property-model.c:
4797         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
4798         hash table after using it, not before. Fixed bug 331922.
4800 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4802         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
4803         (rb_shell_view_queue_as_sidebar_changed_cb):
4804         When playing from the queue, only attempt to highlight the queue
4805         source in the source list if it's actually visible there.  Otherwise,
4806         leave the preempted source highlighted.  Mostly fixes #330819.
4808 2006-02-20  James Livingston  <jrl@ids.org.au>
4810         * rhythmdb/rhythmdb-property-model.c:
4811         (rhythmdb_property_model_row_inserted_cb),
4812         (rhythmdb_property_model_prop_changed_cb),
4813         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
4814         store the roperty value in the entry-mapping table, so that receiving
4815         the remove signal from a query model before we get notified of a
4816         change doesn't cause a crash. Fixes bug 331770.
4818 2006-02-20  James Livingston  <jrl@ids.org.au>
4820         * data/ui/rhythmbox-ui.xml:
4821         * sources/rb-play-queue-source.c:
4822         (rb_play_queue_source_class_init),
4823         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
4824         playlist things in the queue popup source. From 330490.
4826         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
4827         previous commit
4829 2006-02-20  James Livingston  <jrl@ids.org.au>
4831         * widgets/rb-song-info.c: (rb_song_info_response_cb),
4832         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
4833         attempt to sync data for non-editable entries when using
4834         next/previous. Don't write our Year if it wasn't changed. Fixes bug
4835         331762.
4837 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
4839         * .cvsignore:
4840         * Makefile.am:
4841         * autogen.sh:
4842         * configure.ac:
4843         * help/.cvsignore:
4844         * help/Makefile.am: ported to gnome-doc-utils
4845         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
4846         * help/ChangeLog: added, for translators
4847         * help/C/rhytmbox-C.omf: removed, no longer used
4848         Know issue: figures are installed, but some are not showed; manual
4849         description added, but not showed in Yelp while browsing. I'll
4850         investigate, maybe are needed some little changes to
4851         help/C/rhythmbox.xml.
4853 2006-02-20  James Livingston  <jrl@ids.org.au>
4855         * data/ui/rhythmbox-ui.xml:
4856         * help/C/figures/rb-adv.png:
4857         * help/C/figures/rb-asst-finish.png:
4858         * help/C/figures/rb-asst-library.png:
4859         * help/C/figures/rb-asst-start.png:
4860         * help/C/figures/rb-basic.png:
4861         * help/C/figures/rb-browser.png:
4862         * help/C/figures/rb-context-menu.png:
4863         * help/C/figures/rb-empty.png:
4864         * help/C/figures/rb-full-play.png:
4865         * help/C/figures/rb-group-auto.png:
4866         * help/C/figures/rb-group-create.png:
4867         * help/C/figures/rb-group.png:
4868         * help/C/figures/rb-imported.png:
4869         * help/C/figures/rb-iradio-add.png:
4870         * help/C/figures/rb-iradio.png:
4871         * help/C/figures/rb-nextprev.png:
4872         * help/C/figures/rb-nobrowse-play.png:
4873         * help/C/figures/rb-notification-area-menu.png:
4874         * help/C/figures/rb-player.png:
4875         * help/C/figures/rb-prefs-general.png:
4876         * help/C/figures/rb-prefs-ipod.png:
4877         * help/C/figures/rb-prefs-library.png:
4878         * help/C/figures/rb-prefs.png:
4879         * help/C/figures/rb-repeat.png:
4880         * help/C/figures/rb-search.png:
4881         * help/C/figures/rb-shuffle.png:
4882         * help/C/figures/rb-stats.png:
4883         * help/C/figures/rb-toolbar-editor.png:
4884         * help/C/figures/rb-volume-mute.png:
4885         * help/C/figures/rhythmbox-group.png:
4886         * help/C/figures/rhythmbox-tray-icon.png:
4887         * help/C/user-guide.xml: remove old stuff from cvs
4889 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4891         * metadata/rb-metadata-dbus-client.c: 
4892         * metadata/rb-metadata-dbus-service.c:
4893         * metadata/rb-metadata-dbus.c:
4894         * metadata/rb-metadata-dbus.h:
4895         New files, adding an external service for reading and writing
4896         metadata, and an implementation of the RBMetaData interface that uses
4897         dbus to communicate with it.
4898         
4899         * metadata/rb-metadata.h,
4900         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
4901         (rb_metadata_get_field_name): Put metadata details in a static array
4902         instead of using a hash table, and add a field for language code (not
4903         used for anything)
4904         * metadata/rb-metadata-gst.c: Updates for changes in
4905         rb-metadata-common.c, fix signal handler closure leak for the typefind
4906         element's have-type signal, and add XML to the list of types we ignore.
4907         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
4908         Update for changes to rb_metadata_get_field_type
4909         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
4910         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
4911         here and there.
4912         
4913         * configure.ac: Add --enable-metadata-helper option (not enabled by
4914         default) to use the external metadata service
4915         * metadata/Makefile.am: Add new files
4916         * metadata/test-metadata.c:  Test program for the metadata service
4918         Fixes #329597. 
4920 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4922         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
4923         * sources/rb-podcast-source.c: (impl_get_ui_actions),
4924         (rb_podcast_source_cmd_new_podcast):
4925         Move 'new podcast' action to the podcast source, and add it to the
4926         toolbar.  Fixes #331562.
4928 2006-02-19  James Livingston  <jrl@ids.org.au>
4930         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
4931         menus, and away from move-to-trash. Fixes bug 331013.
4933 2006-02-19  James Livingston  <jrl@ids.org.au>
4935         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
4936         when deleting last entry. Fixes bug 331712.
4938 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4940         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
4941         (rb_entry_view_button_press_cb):
4942         * widgets/rb-entry-view.h: Emit show-popup when right clicked
4943         anywhere, and include a flag indicating whether the click was over an
4944         entry or not.
4945         
4946         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
4947         (rb_playlist_source_songs_show_popup_cb):
4948         * sources/rb-playlist-source.h:
4949         Add the 'over entry' flag to the class show popup method, and in the
4950         default handler, ignore right clicks when not over an entry.
4951         
4952         * sources/rb-iradio-source.c:
4953         (rb_iradio_source_songs_show_popup_cb):
4954         * sources/rb-library-source.c:
4955         (rb_library_source_songs_show_popup_cb):
4956         * sources/rb-podcast-source.c:
4957         (rb_podcast_source_songs_show_popup_cb):
4958         Show the source list popup menu when right clicked while not over an
4959         entry.
4961         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
4962         For the queue sidebar, always display the popup so the 'clear queue'
4963         action is available regardless of where you click.  For the queue
4964         source, only display the popup when right clicked over an entry.
4965         Fixes #331392.
4967 2006-02-19  James Livingston  <jrl@ids.org.au>
4969         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
4970         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
4971         entry view, when we're not even using it
4973         * rhythmdb/rhythmdb-property-model.c:
4974         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
4975         function, rather than a copy of the code.
4977         * shell/rb-playlist-manager.c:
4978         (rb_playlist_manager_playlist_row_inserted_cb),
4979         (rb_playlist_manager_set_source_internal),
4980         (rb_playlist_manager_playlist_entries_changed): use the query-model
4981         directly, rather than the source's entry view.
4983         * shell/rb-source-header.c: don't use the entry view, just select the
4984         source widget.
4986 2006-02-18  James Livingston  <jrl@ids.org.au>
4988         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
4990         * help/C/figures/rb-iradio-main.png:
4991         * help/C/figures/rb-notification-area-menu.png:
4992         * help/C/figures/rb-notification-window.png:
4993         * help/C/figures/rb-notification-zone.png:
4994         * help/C/figures/rb-podcast-main.png:
4995         * help/C/figures/rb-statusbar.png:
4996         * help/C/figures/rb-toolbar-prevplaynext.png:
4997         * help/C/figures/rb-toolbar-repeat.png:
4998         * help/C/figures/rb-toolbar-shuffle.png:
4999         * help/C/figures/rb-toolbar.png:
5000         * help/C/figures/rb-volume-changer.png:
5001         * help/C/figures/rb-window-small.png:
5002         * help/C/figures/rb-window.png:
5003         * help/C/rhythmbox.xml: Update user guide with some of the changes
5004         that have occurred after 0.8.8. From bug 314001.
5006 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5008         * rhythmdb/rhythmdb-query-results.h,
5009           rhythmdb/rhythmdb-query-results.c:
5010         New interface for objects that accept query results from RhythmDB.
5012         * rhythmdb/rhythmdb-query-model.c:
5013         (rhythmdb_query_model_query_results_init),
5014         (rhythmdb_query_model_set_query),
5015         (rhythmdb_query_model_add_results),
5016         (rhythmdb_query_model_query_complete):
5017         * rhythmdb/rhythmdb-query-model.h:
5018         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
5020         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
5021         (rhythmdb_tree_do_full_query):
5022         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
5023         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
5024         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
5025         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
5026         * rhythmdb/rhythmdb.h:
5027         Pass query results through the RhythmDBQueryResults interface, rather
5028         than directly to a RhythmDBQueryModel.
5030         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
5031         (rb_podcast_manager_db_entry_deleted_cb):
5032         * sources/rb-auto-playlist-source.c:
5033         (rb_auto_playlist_source_do_query),
5034         (rb_auto_playlist_source_set_query):
5035         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
5036         * sources/rb-library-source.c: (rb_library_source_constructor),
5037         (rb_library_source_do_query):
5038         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5039         (rb_podcast_source_do_query):
5040         * rhythmdb/rhythmdb-property-model.c:
5041         (rhythmdb_property_model_drag_data_get):
5042         Cast the query model to RhythmDBQueryResults when passing to one of
5043         the RhythmDB query methods.
5045         * rhythmdb/Makefile.am: Add new files.
5047 2006-02-18  James Livingston  <jrl@ids.org.au>
5049         * data/ui/rhythmbox-ui.xml:
5050         * shell/rb-playlist-manager.c:
5051         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
5052         "queue playlist" item to source context menu. Fixes bug 330490.
5054 2006-02-18  James Livingston  <jrl@ids.org.au>
5056         * data/glade/general-prefs.glade:
5057         * shell/rb-shell-preferences.c:
5058         (rb_shell_preferences_column_check_changed_cb),
5059         (rb_shell_preferences_sync):
5060         * sources/rb-library-source.c: (rb_library_source_constructor):
5061         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
5062         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
5063         (rb_entry_view_append_column): Add a "quality" colume which indicates
5064         the bitrate of media. Part of bug 167659.
5066 2006-02-18  James Livingston  <jrl@ids.org.au>
5068         * shell/rb-play-order.c: (do_next_idle_cb),
5069         (default_playing_entry_removed): move to next track when playing entry
5070         is deleted. Fixes bug 131150.
5072         * shell/rb-shell-player.h: remove ancient stuff
5074 2006-02-17  William Jon McCann  <mccann@jhu.edu>
5076         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
5077         (rb_shell_clipboard_set_property): 
5078         * shell/rb-shell.c (rb_shell_sync_party_mode):
5079         Trigger a resync of the clipboard properties when changing party mode.
5081 2006-02-17  William Jon McCann  <mccann@jhu.edu>
5083         * sources/rb-static-playlist-source.c: Fix includes.
5085         * sources/rb-source.c (rb_source_can_rename) 
5086         (rb_source_can_delete, rb_source_can_move_to_trash):
5087         Return FALSE if in party mode.
5089         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
5090         Replace fullscreen with party mode.
5091         (rb_shell_window_delete_cb): Don't quit if in party mode.
5092         (rb_shell_view_party_mode_changed_cb): Setup party mode.
5093         (window_state_event_cb): Try to deiconify shell when iconified
5094         in party mode.
5095         (rb_shell_sync_party_mode): Sync party mode properties.
5096         Currently, that means [de]sensitizing close, quit, and small-display,
5097         going into fullscreen mode with window stuck and kept above, and
5098         toggling queue-only for the shell player.
5099         (rb_shell_sync_smalldisplay): Sensitive party mode.
5100         (rb_shell_get_party_mode): Get party mode setting.
5102         * shell/rb-shell-player.c (rb_shell_player_class_init) 
5103         (rb_shell_player_set_property, rb_shell_player_get_property):
5104         Add queue-only property.
5105         (rb_shell_player_entry_activated_cb): If in party mode
5106         only queue the entry on activation.
5108         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
5109         Break out from set_properties.  Desensitize some actions when
5110         in party mode.
5111         (rb_playlist_manager_set_property): Break out set_source_internal.
5113         * data/rhythmbox.schemas: Remove fullscreen mode.
5115         * data/ui/rhythmbox-ui.xml: Replace fullscreen
5116         action with party mode.
5118         Partial fix for #323933
5120 2006-02-17  James Livingston  <jrl@ids.org.au>
5122         * configure.ac:
5123         * shell/rb-removable-media-manager.c:
5124         (get_nautilus_burn_drive_for_path),
5125         (rb_removable_media_manager_playing_uri_changed_cb): only use
5126         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
5127         over the list when it doesn't.
5129 2006-02-17  James Livingston  <jrl@ids.org.au>
5131         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
5132         (rb_iradio_source_first_time_changed): Only do the import on the
5133         first change from FALSE to TRUE.
5135         * sources/rb-library-source.c:
5136         (rb_library_source_preferences_sync),
5137         (rb_library_source_library_location_cb): set the first-run done flag
5138         if the user presses close and then sets their watches library
5139         location. Fixes bug 325997.
5141 2006-02-17  James Livingston  <jrl@ids.org.au>
5143         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
5144         removable media manager gobject properties
5146         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
5147         (split_drive_from_cdda_uri),
5148         (rb_removable_media_manager_playing_uri_changed_cb),
5149         (rb_removable_media_manager_load_media): stop polling a cd drive
5150         when we are playing from it. Part of bug 330716.
5152 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5154         * rhythmdb/rhythmdb-query-model.c:
5155         (rhythmdb_query_model_set_property),
5156         (rhythmdb_query_model_finalize),
5157         (rhythmdb_query_model_base_entry_removed):
5158         Propagate entry removal from base models out to attached property
5159         models.  Fixes the rest of #331165.
5161 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5163         * rhythmdb/rhythmdb-property-model.c:
5164         (rhythmdb_property_model_row_inserted_cb),
5165         (rhythmdb_property_model_prop_changed_cb),
5166         (rhythmdb_property_model_insert):
5167         Don't store NULL as a hash table value if we want to use
5168         g_hash_table_lookup to check if a key exists, and get the checks for
5169         how and whether to handle entry changes the right way around.
5170         Fixes #331211 and half of #331165.
5172 2006-02-16  James Livingston  <jrl@ids.org.au>
5174         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
5175         the audio cd's TOC in a separate thread, so it doesn't block the UI.
5176         Fixes bug 329942.
5178 2006-02-16  James Livingston  <jrl@ids.org.au>
5180         * widgets/rb-library-browser.c: (reset_view_cb): make View All
5181         actually reset the browsers.
5183 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5185         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5186         Escape the strings we pass into libnotify so we don't get blank
5187         notifications when the song name contains '&' etc.  Fixes #330784.
5189 2006-02-16  James Livingston  <jrl@ids.org.au>
5191         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
5192         enable "View All" when there is only a search box and no browser.
5193         Fixes bug 331395.
5195 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5197         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
5198         popup menu, which I forgot to commit with the patch for bug #330014.
5200 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5202         * shell/rb-shell-player.c: (open_location_thread):
5203         Sync button and entry view state once we've started the player, so the
5204         entry view gets into the playing state for iradio.
5206 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5208         * shell/rb-shell-player.c: (open_location_thread):
5209         Take GDK lock before doing anything UI-related.
5211 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5213         * shell/rb-shell.c: Move 'new iradio station' action to
5214         iradio source.
5216         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
5217         (rb_iradio_source_init), (rb_iradio_source_finalize),
5218         (rb_iradio_source_constructor):
5219         Remove some unused stuff.
5221         (guess_uri_scheme), (rb_iradio_source_add_station),
5222         (rb_iradio_source_add_from_playlist),
5223         (impl_get_ui_actions), (new_station_location_added),
5224         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
5225         action, include it in the toolbar, and make sure the URI we add has a
5226         scheme.  Fixes #327059, more or less.
5228 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5230         * sources/rb-play-queue-source.c:
5231         (rb_play_queue_source_class_init),
5232         (rb_play_queue_source_constructor),
5233         (rb_play_queue_source_update_count),
5234         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
5235         Add a toolbar button to clear the play queue, and make it sensitive
5236         only when there are entries in the queue.  Fixes #330014.
5238         * sources/rb-source.c: (_rb_source_register_action_group):
5239         * sources/rb-source.h:  Add helper function to register an
5240         action group for a source.
5242         * sources/rb-library-source.c: (rb_library_source_constructor):
5243         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5244         (register_action_group):  Use _rb_source_register_action_group.
5246 2006-02-15  James Livingston  <jrl@ids.org.au>
5248         * widgets/rb-song-info.c: (rb_song_info_add_completion),
5249         (rb_song_info_constructor), (rb_song_info_set_property): make
5250         tag-editing completion work for albums too.
5252 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5254         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5255         Check the 'limit' checkbox for time-limited playlists.
5257 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
5259         * widgets/rb-song-info.c: Prove text-completion when editing title,
5260         artist or album
5262 2006-02-14  James Livingston  <jrl@ids.org.au>
5264         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
5265         tray icon popup menu. Fixes bug 331026.
5267 2006-02-14  James Livingston  <jrl@ids.org.au>
5269         * data/iradio-initial.pls: update the Virgin Radio stations to use the
5270         Ogg Vorbis streams, instead of the MP3 ones.
5272 2006-02-14  James Livingston  <jrl@ids.org.au>
5274         * rhythmdb/rhythmdb-property-model.c:
5275         (rhythmdb_property_model_class_init),
5276         (rhythmdb_property_model_drag_data_get):
5277         * rhythmdb/rhythmdb-query-model.c:
5278         (rhythmdb_query_model_title_sort_func):
5279         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
5280         LOCATION as the key. Fixes bug 330601.
5282 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5284         * sources/rb-playlist-source.c: (playlist_iter_func):
5285         Make it compile with older versions of totem-plparser too.      
5287 2006-02-13  James Livingston  <jrl@ids.org.au>
5289         * rhythmdb/rhythmdb.h:
5290         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
5291         structure private, since things should use the accessor functions
5292         rather than manipulating it directly - Only RhythmDB and the
5293         implementation classes should access it directly. Part of the RhythmDB
5294         cleanup of bug 330226.
5296         * iradio/rb-station-properties-dialog.c:
5297         (rb_station_properties_dialog_update_title),
5298         (rb_station_properties_dialog_update_title_entry),
5299         (rb_station_properties_dialog_update_genre),
5300         (rb_station_properties_dialog_update_location),
5301         (rb_station_properties_dialog_update_play_count),
5302         (rb_station_properties_dialog_update_bitrate),
5303         (rb_station_properties_dialog_update_last_played),
5304         (rb_station_properties_dialog_update_rating),
5305         (rb_station_properties_dialog_update_playback_error),
5306         (rb_station_properties_dialog_sync_entries):
5307         * podcast/rb-feed-podcast-properties-dialog.c:
5308         (rb_feed_podcast_properties_dialog_update_title),
5309         (rb_feed_podcast_properties_dialog_update_title_label),
5310         (rb_feed_podcast_properties_dialog_update_author),
5311         (rb_feed_podcast_properties_dialog_update_location),
5312         (rb_feed_podcast_properties_dialog_update_copyright),
5313         (rb_feed_podcast_properties_dialog_update_language),
5314         (rb_feed_podcast_properties_dialog_update_summary):
5315         * podcast/rb-podcast-manager.c:
5316         (rb_podcast_manager_entry_downloaded),
5317         (rb_podcast_manager_db_entry_added_cb),
5318         (download_progress_update_cb),
5319         (rb_podcast_manager_db_entry_deleted_cb):
5320         * podcast/rb-podcast-properties-dialog.c:
5321         (rb_podcast_properties_dialog_update_title),
5322         (rb_podcast_properties_dialog_update_title_label),
5323         (rb_podcast_properties_dialog_update_feed),
5324         (rb_podcast_properties_dialog_update_location),
5325         (rb_podcast_properties_dialog_update_play_count),
5326         (rb_podcast_properties_dialog_update_bitrate),
5327         (rb_podcast_properties_dialog_update_last_played),
5328         (rb_podcast_properties_dialog_update_rating),
5329         (rb_podcast_properties_dialog_update_date),
5330         (rb_podcast_properties_dialog_update_description):
5331         * rhythmdb/rhythmdb-query-model.c:
5332         (rhythmdb_query_model_entry_changed_cb),
5333         (rhythmdb_query_model_remove_from_main_list),
5334         (rhythmdb_query_model_update_limited_entries),
5335         (rhythmdb_query_model_drag_data_get),
5336         (rhythmdb_query_model_album_sort_func):
5337         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5338         (save_entry):
5339         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
5340         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
5341         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
5342         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
5343         (rhythmdb_entry_get_double):
5344         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5345         * shell/rb-play-order-random-by-age-and-rating.c:
5346         (rb_random_by_age_and_rating_get_entry_weight):
5347         * shell/rb-play-order-random-by-age.c:
5348         (rb_random_by_age_get_entry_weight):
5349         * shell/rb-play-order-random-by-rating.c:
5350         (rb_random_by_rating_get_entry_weight):
5351         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
5352         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
5353         (rb_shell_player_set_playing_entry),
5354         (rb_shell_player_sync_replaygain),
5355         (rb_shell_player_sync_with_source),
5356         (rb_shell_player_get_playing_song_duration), (info_available_cb):
5357         * sources/rb-playlist-source.c: (playlist_iter_func),
5358         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
5359         (rb_playlist_source_entry_added_cb):
5360         * sources/rb-podcast-source.c:
5361         (rb_podcast_source_post_status_cell_data_func):
5362         * sources/rb-source.c: (rb_source_update_play_statistics):
5363         * sources/rb-sourcelist-model.c:
5364         (rb_sourcelist_model_drag_data_get):
5365         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
5366         (rb_static_playlist_source_add_entry),
5367         (rb_static_playlist_source_remove_entry):
5368         * widgets/rb-entry-view.c: (type_ahead_search_func),
5369         (rb_entry_view_playing_cell_data_func),
5370         (rb_entry_view_rating_cell_data_func),
5371         (rb_entry_view_pixbuf_clicked_cb):
5372         * widgets/rb-header.c: (rb_header_get_duration):
5373         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
5374         (rb_song_info_populate_dialog),
5375         (rb_song_info_update_playback_error),
5376         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
5377         (rb_song_info_update_location), (rb_song_info_update_play_count),
5378         (rb_song_info_update_last_played), (rb_song_info_update_rating),
5379         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
5380         (rb_song_info_sync_entry_single): fix the huge number of times that
5381         the internals got accessed directly.
5383 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5385         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
5386         trash' are grouped together.
5387         * shell/main.c: (main): Pass no-registration flag in to RBShell
5388         constructor, rather than mysteriously always passing TRUE.
5389         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
5390         Set dirty flag when entries are removed from the model, so the play
5391         queue is marked dirty appropriately.
5392         * AUTHORS: update my email address
5394 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5396         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5398         * widgets/rb-druid.c: (path_dialog_response_cb):
5399         If the URI is local, don't display the 'file://' prefix.  
5400         Fixes #330919.
5402 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5404         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5405         Attach the notification to the tray icon widget, so libnotify
5406         positions it less badly.  Fixes #330876.
5408 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5410         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
5411         Reverse the selection list before returning it, so we get it in the
5412         right order.  Fixes #330283 and some other weirdness.
5414 2006-02-11  James Livingston  <jrl@ids.org.au>
5416         * shell/rb-shell.c: (rb_shell_constructor),
5417         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
5418         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
5419         make small-mode and fullscreen mutually exclusive, since they don't
5420         work together
5422         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
5423         Mode.
5425 2006-02-10  James Livingston  <jrl@ids.org.au>
5427         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
5428         since it can cause it to be slower than real-time. Should fix bug
5429         322270.
5431 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5433         * rhythmdb/rhythmdb-query-model.c:
5434         (rhythmdb_query_model_set_property):
5435         Think just a little bit harder about that last commit.
5437 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5439         * rhythmdb/rhythmdb-query-model.c:
5440         (rhythmdb_query_model_set_property):
5441         Get the check for hidden entries the right way around.
5442         Fixes #330527, #330514.
5444         (rhythmdb_query_model_set_sort_order):
5445         Ignore no-op sort order changes, so we don't get critical
5446         messages when selecting 'all' in auto playlist browsers.
5448 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5450         Patch by: Christophe Fergeau  <teuf@gnome.org>
5452         * sources/rb-removable-media-source.c:
5453         (rb_removable_media_source_init),
5454         (rb_removable_media_source_constructor):
5455         Move icon setup code to the constructor, as the volume property
5456         haven't been set yet when _init is called.
5458 2006-02-09  William Jon McCann  <mccann@jhu.edu>
5460         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
5461         Make the source pixbuf a dynamic property.
5463         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
5464         (rb_source_set_pixbuf, rb_source_set_property) 
5465         (rb_source_get_property): Add icon property.
5467         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
5468         (rb_auto_playlist_source_init):
5469         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
5470         (rb_static_playlist_source_init):
5471         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
5472         (rb_removable_media_source_init): 
5473         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
5474         (rb_podcast_source_init): 
5475         * sources/rb-library-source.c (rb_library_source_class_init) 
5476         (rb_library_source_set_property, rb_library_source_get_property): 
5477         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
5478         (rb_iradio_source_init): Remove impl_get_pixbuf and
5479         set icon property on source base class.
5481         * sources/rb-daap-source.c (rb_daap_get_icon): Get
5482         a different icon for when the share is password protected
5483         and locked.
5484         (rb_daap_source_new): Set icon property.
5485         (composite_icons): Composite an emblem on a pixbuf.
5486         (create_pixbufs): Load global pixbufs.
5487         (destroy_pixbufs): unref global pixbufs.
5488         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
5489         (connection_auth_cb, connection_connected_cb) 
5490         (connection_disconnected_cb): Update icon when connection
5491         status changes.
5492         (rb_daap_source_activate): Connect signals.
5494         * daapsharing/rb-daap-share.c (name_collision_cb): Run
5495         dialog with parent.
5497         * daapsharing/rb-daap-marshal.list: Add new signal.
5499         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
5500         (rb_daap_collision_dialog_new_run): Set parent of dialog.
5502         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
5503         Add authenticate, connected, and disconnected signals.
5504         (connection_get_password): emit authenticate signal instead
5505         of running dialog directly.
5506         (connection_connected, connection_disconnected): Emit signals.
5507         (handle_login): Emit connected signal.
5508         (handle_logout): Emit disconnected signal.
5509         (rb_daap_connection_do_something): Fix leak.
5511         Fixes #330291
5513 2006-02-09  James Livingston  <jrl@ids.org.au>
5515         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
5516         entries from the base model if we don't have show-hidden set. Fixes
5517         bug 330514.
5519 2006-02-08  William Jon McCann  <mccann@jhu.edu>
5521         * daapsharing/rb-daap-share.c (message_get_session_id):
5522         Ugh. Use strtoul instead of atoi.
5523         (session_id_validate): Add debug statements.
5525 2006-02-08  William Jon McCann  <mccann@jhu.edu>
5527         * daapsharing/rb-daap-connection.c (http_response_handler):
5528         Report the actual uri from the message in debug statements.
5530 2006-02-08  William Jon McCann  <mccann@jhu.edu>
5532         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
5533         Add context argument.
5534         (message_get_session_id): New function to parse session id from
5535         the message.
5536         (message_get_revision_number): Break out function to parse
5537         revision number from the message.
5538         (session_id_validate): New function to validate given session id
5539         is valid for given context (ie. client address).
5540         (session_id_generate): Generate a random session id.
5541         (session_id_create): Create a unique session id and store it.
5542         (session_id_remove): Remove a session id from the store.
5543         (login_cb): Create a session id instead of using a constant one.
5544         (logout_cb): Validate session id.
5545         (update_cb): Use new message_get_revision_number function.
5546         (databases_cb): Validate session id.
5547         (server_cb): Add server context to argument list for callbacks.  It
5548         is needed to look up the remote host.
5549         (db_entry_changed_cb): Use braces.
5550         (soup_auth_callback): Remove FIXME.
5551         (rb_daap_share_server_start): Create session id store.
5552         (rb_daap_share_server_stop): Destroy session id store.
5554         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
5555         Don't base64-encode password here since it needs to be
5556         combined with the username first.
5558         * daapsharing/rb-daap-connection.c (build_message):
5559         Add username to Authorization token.
5560         (handle_login, handle_song_listing) 
5561         (rb_daap_connection_do_something): Session id
5562         must be an unsigned int.
5564         Fixes #329814
5566 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5568         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
5569         Don't check if we've got a playing entry, ask the player object (duh).
5570         Might actually fix #329993.     
5572 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5574         * sources/rb-static-playlist-source.c:
5575         (rb_static_playlist_source_add_list_uri):
5576         Canonicalise URIs before trying to add them to the playlist, and 
5577         don't try to add files to the database for which there is 
5578         already an entry.
5580 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5582         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
5583         Don't ask the entry view if we're playing, just check if we've got a
5584         playing entry.  Fixes #329993.
5586 2006-02-08  James Livingston  <jrl@ids.org.au>
5588         * rhythmdb/rhythmdb-query-model.c:
5589         (rhythmdb_query_model_set_property),
5590         (rhythmdb_query_model_finalize),
5591         (rhythmdb_query_model_base_complete): remove
5592         rhythmdb_query_model_base_entry_prop_changed, so that two signals
5593         don't get emitted for entry changes. Fixes bug 330301.
5595         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
5596         (rb_library_browser_init), (rb_library_browser_constructor),
5597         (rb_library_browser_new): do stuff in the constructor, not the init
5598         function, so that the db property gets set on RBPropertyViews
5599         correctly. Fixes a crash when dragging properties to a playlist.
5601 2006-02-07  William Jon McCann  <mccann@jhu.edu>
5603         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
5604         Actually stop soup server.  Fixes #329816.
5606 2006-02-07  James Livingston  <jrl@ids.org.au>
5608         * lib/rb-util.h:
5609         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
5610         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
5611         (collate_values_cb), (rb_collate_hash_table_keys),
5612         (rb_collate_hash_table_values): add functions to compare, copy and
5613         free string-lists. add functions to collate the keys or values of a
5614         hash table into a list.
5616         * rhythmdb/rhythmdb-property-model.c:
5617         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
5618         (_remove_entry_cb), (_add_entry_cb),
5619         (rhythmdb_property_model_set_property),
5620         (rhythmdb_property_model_get_property),
5621         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
5622         (rhythmdb_property_model_row_inserted_cb),
5623         (rhythmdb_property_model_prop_changed_cb),
5624         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
5625         that are hidden, storing those that we have counted in a hash-table.
5627         * shell/Makefile.am: fix build order issue
5629         * shell/rb-shell-player.c: (rb_shell_player_set_property):
5630         * sources/rb-source.h:
5631         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
5632         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
5633         * sources/rb-podcast-source.c: (feed_select_change_cb): add
5634         browser-toggled method, rename _get_exta_views to _get_property_views,
5635         since several things depend on returning only that.
5637         * sources/rb-source.c: (rb_source_class_init),
5638         (rb_source_browser_toggled), (default_get_property_views),
5639         (rb_source_get_property_views), (rb_source_row_deleted_cb),
5640         (rb_source_gather_hash_keys),
5641         (rb_source_gather_selected_properties): above changes, and move some
5642         utility functions up from RBLibraryView
5644         * widgets/rb-property-view.c:
5645         (rb_property_view_selection_changed_cb): fix leak.
5647         * rhythmdb/rhythmdb-query-model.c:
5648         (rhythmdb_query_model_set_property),
5649         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
5650         (rhythmdb_query_model_set_sort_order),
5651         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
5652         query model being resorted.
5654         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
5655         NULL query.
5657         * rhythmdb/rhythmdb.h:
5658         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
5659         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
5660         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
5661         two queries. Add a function to append "property={X,Y,Z,...}" to a
5662         query.
5664         * sources/rb-library-source.c: (rb_library_source_class_init),
5665         (rb_library_source_finalize), (rb_library_source_constructor),
5666         (rb_library_source_cmd_choose_genre),
5667         (rb_library_source_cmd_choose_artist),
5668         (rb_library_source_cmd_choose_album), (impl_search),
5669         (impl_get_property_views), (impl_reset_filters),
5670         (rb_library_source_preferences_sync),
5671         (rb_library_source_browser_views_activated_cb),
5672         (rb_library_source_state_prefs_sync),
5673         (construct_query_from_selection), (rb_library_source_do_query),
5674         (rb_library_source_browser_changed_cb):
5675         * widgets/Makefile.am:
5676         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
5677         browser" widgets, which contains several property views, based on the
5678         code from RBLibrarySource. Make RBLibrarySource use it.
5680         * sources/rb-auto-playlist-source.c:
5681         (rb_auto_playlist_source_class_init),
5682         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
5683         (rb_auto_playlist_source_constructor), (impl_reset_filters),
5684         (impl_get_property_views), (impl_browser_toggled),
5685         (construct_query_from_selection),
5686         (rb_auto_playlist_source_do_query),
5687         (rb_auto_playlist_source_set_query),
5688         (rb_auto_playlist_source_browser_changed_cb): Use the new
5689         library-browser widget to add browsers to automatic playlists.
5691 2006-02-07  James Livingston  <jrl@ids.org.au>
5693         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
5694         properly.
5695         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
5696         type of the source is taken into account. Fixes bug 329621.
5698 2006-02-07  James Livingston  <jrl@ids.org.au>
5700         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5701         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
5702         1.1, and perform URI canonicalistion when first upgrading. This should
5703         fix our remaining canonicalisation issues, such as bug 329988.
5705 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
5707         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
5708         Track the playing entry when the entry view isn't in the playing
5709         state, so we don't have to get the state changes exactly right.
5710         Fixes #330135.
5712 2006-02-06  James Livingston  <jrl@ids.org.au>
5714         * shell/rb-shell-player.c: (open_location_thread),
5715         (rb_shell_player_open_location): fix several iradio issues: having to
5716         press play after double-clicking on a station, not working correctly
5717         without a http:// prefix, and ignoring totem-plparser results other
5718         than success or error (e.g. IGNORE).
5720 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
5722         Addition of dbus methods for dealing with static playlists and the
5723         play queue.  Fixes #329958.
5725         * shell/Makefile.am:
5726         * shell/rb-playlist-manager.h:
5727         * shell/rb-playlist-manager.xml:
5728         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
5729         (rb_playlist_manager_get_playlists),
5730         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
5731         (rb_playlist_manager_create_static_playlist),
5732         (rb_playlist_manager_delete_playlist),
5733         (rb_playlist_manager_add_to_playlist),
5734         (rb_playlist_manager_remove_from_playlist),
5735         (rb_playlist_manager_export_playlist):
5736         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
5737         to create, delete, list, modify, export, and import  static playlists.
5738         
5739         * shell/main.c: (main): Register playlist manager object with dbus.
5741         * shell/rb-shell.h:
5742         * shell/rb-shell.xml:
5743         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
5744         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
5745         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
5746         object, and implement the addToQueue and removeFromQueue methods.
5747         
5748         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
5749         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
5750         formats.
5752 2006-02-05  James Livingston  <jrl@ids.org.au>
5754         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
5755         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
5756         (save_entry): allow storage of booleans in the on-disk db, and
5757         save/load the HIDDEN property.
5759         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
5760         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
5761         to the state it was when RB shutdown. This makes RB appear to start
5762         faster, as tracks can appear before the stat is done. Remote files
5763         still start hidden. From bug 325215.
5765 2006-02-05  James Livingston  <jrl@ids.org.au>
5767         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
5768         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
5769         really cares about the difference from "entry-added", and it isn't
5770         emitted by the tree backend anyway.
5772         * rhythmdb/rhythmdb-query-model.c:
5773         (rhythmdb_query_model_constructor):
5774         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
5775         remove the references to the entry-restored signal.
5777 2006-02-05  James Livingston  <jrl@ids.org.au>
5779         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
5780         issue.
5782 2006-02-05  James Livingston  <jrl@ids.org.au>
5784         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
5785         things are NULL before using g_object_unref. Fixes bug 327452.
5787         * player/rb-recorder-gst.c: (rb_recorder_construct):
5788         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
5789         rather than assertion.
5791         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
5792         emit a warning, rather than asserting if an unknown playlist type is
5793         encountered.
5795 2006-02-05  James Livingston  <jrl@ids.org.au>
5797         * widgets/Makefile.am:
5798         * widgets/rb-simple-view.c:
5799         * widgets/rb-simple-view.h: Move the two features that this class
5800         provides into RBPropertyView, and remove this class. Closes bug
5801         327500.
5803         * podcast/rb-feed-podcast-properties-dialog.c:
5804         * podcast/rb-feed-podcast-properties-dialog.h:
5805         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5806         (rb_podcast_source_feeds_show_popup_cb):
5807         * sources/rb-podcast-source.h:
5808         * widgets/rb-property-view.c: (rb_property_view_class_init),
5809         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
5810         (rb_property_view_append_column_custom),
5811         (rb_property_view_button_press_cb):
5812         * widgets/rb-property-view.h: Updated for the above change.
5814 2006-02-04  James Livingston  <jrl@ids.org.au>
5816         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
5817         too close to Move to Trash and people aren't likely to use it often.
5819 2006-02-04  James Livingston  <jrl@ids.org.au>
5821         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
5823 2006-02-04  James Livingston  <jrl@ids.org.au>
5825         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
5826         passed a path instead of a URI.
5828         * sources/rb-generic-player-source.c: (default_get_mount_path):
5829         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
5830         the path. This fixes bug 329723.
5832 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
5834         * daapsharing/rb-daap-structure.c:
5835         (rb_daap_content_code_string_as_int32):
5836         Use network byte order.
5838 2006-02-03  William Jon McCann  <mccann@jhu.edu>
5840         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
5841         Use a hash for source lookup.
5842         (mdns_service_added, mdns_service_removed): Handle
5843         service-added and service-removed signals from RBDaapMdnsBrowser.
5844         (remove_source): GDestroyNotify function for when sources
5845         are removed from the hash.
5846         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
5847         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
5848         (rb_daap_sources_shutdown): Update.
5849         (source_host_find): GHRFunc for finding a source by ip.
5850         (rb_daap_source_find_for_uri): Use the hash source lookup.
5852         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
5853         Namespace keys.
5854         (password_check_button_toggled_cb): Handle password enabled.
5855         (share_name_entry_focus_out_event_cb): Namespace keys.
5856         Handle changes more robustly.
5857         (share_password_entry_focus_out_event_cb): Handle password entry.
5858         (add_daap_preferences): Connect to password signals.
5860         * lib/rb-preferences.h: Add DAAP keys.
5862         * data/glade/daap-prefs.glade: Add password UI.
5864         * data/rhythmbox.schemas: Add password keys.
5866         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
5867         assert with warning.
5869         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
5870         gconf keys to lib/rb-preferences.h.  Namespace
5871         the gconf keys.
5872         (create_share): Add password support.
5873         (enable_sharing_changed_cb): Namespaced keys.
5874         (require_password_changed_cb): Handle key change.
5875         (share_name_changed_cb): Namespaced keys.
5876         (share_password_changed_cb): Handle key change.
5877         (rb_daap_sharing_init): Namespaced keys.
5878         (rb_daap_sharing_shutdown): Ditto.
5880         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
5881         Add password property.
5882         (rb_daap_share_set_name): Break out prop set function.
5883         (published_cb): New RBDaapMdnsPublisher signal handler.
5884         (name_collision_cb): Ditto.
5885         (rb_daap_share_init): Create publisher object and
5886         connect to signals.
5887         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
5888         (rb_daap_share_set_property): Break out prop set functions.
5889         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
5890         Unref publisher.
5891         (rb_daap_share_new): Add password argument.  Start
5892         publishing and DAAP server.
5893         (message_set_from_rb_daap_structure): Change print to debug.
5894         (server_info_cb): Set auth method to publish.
5895         (logout_cb): Handle DAAP client logout.
5896         (update_cb): Remove C++ comments.
5897         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
5898         (server_cb): Add debug.
5899         (soup_auth_callback): Handle auth requests.
5900         (rb_daap_share_server_start): Split up functions for starting
5901         server and publishing.  Add auth handling to server.
5902         (rb_daap_share_server_stop): Split stop server and publish.
5903         No C++ comments.
5904         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
5905         Start and stop publishing.
5906         (rb_daap_share_restart): Restart server and publishing.
5907         (rb_daap_share_maybe_restart): Conditionally restart.
5909         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
5910         (rb_daap_collision_dialog_new_run): Don't use
5911         separators in dialogs.
5913         * daapsharing/rb-daap-connection.h: Add private
5914         data to class structure.
5916         * daapsharing/rb-daap-connection.c: Move
5917         some includes to top of file.  Make private
5918         data struct name consistent with others.
5919         (rb_daap_connection_class_init): Rename
5920         private.
5921         (rb_daap_connection_init): Get and store the pointer
5922         to the private data once instead of in every
5923         function.  Create a username value "Rhythmbox_VERSION".
5924         (connection_get_password): Don't get private.
5925         (build_message): Ditto.
5926         (http_response_handler): Don't init variables in
5927         declaration.  Add debug.  Spacing.
5928         (http_get, entry_set_string_prop, handle_server_info) 
5929         (handle_login, handle_update, handle_database_info) 
5930         (handle_song_listing, handle_playlists, handle_playlist_entries) 
5931         (rb_daap_connection_constructor, rb_daap_connection_logout) 
5932         (rb_daap_connection_state_done): Don't get private.
5933         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
5934         spacing.  Correctly base64 encode the Authentication token.
5935         Add username to auth token.
5936         (rb_daap_connection_get_playlists): Don't get private.
5937         (rb_daap_connection_dispose): Ditto.  Free username.
5938         (rb_daap_connection_set_property) 
5939         (rb_daap_connection_get_property): Don't get private.
5941         * daapsharing/Makefile.am: Conditionally
5942         compile MDNS backends.  Add marshall stuff.
5944         * daapsharing/.cvsignore: Update.
5946         * configure.ac: Add conditional to see which
5947         MDNS backend we should use.
5949         * daapsharing/rb-daap-mdns.[ch]: Removed files.
5951         * daapsharing/rb-daap-marshal.list:
5952         * daapsharing/rb-daap-mdns-browser-avahi.c:
5953         * daapsharing/rb-daap-mdns-browser-howl.c:
5954         * daapsharing/rb-daap-mdns-browser.h:
5955         * daapsharing/rb-daap-mdns-publisher-avahi.c:
5956         * daapsharing/rb-daap-mdns-publisher-howl.c:
5957         * daapsharing/rb-daap-mdns-publisher.h:
5958         Split rb-daap-mdns.c into two classes.  One for
5959         publishing and one for browsing.  Split out
5960         the avahi and howl backends into different files.
5962         Fixes #322966
5963         
5964 2006-02-04  James Livingston  <jrl@ids.org.au>
5966         patch by: Jan Schmidt <thaytan@mad.scientist.com>
5968         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
5969         crash if metadata reader gives us NULL for strings.
5971 2006-02-03  James Livingston  <jrl@ids.org.au>
5973         * shell/rb-shell-player.c: (open_location_thread),
5974         (rb_shell_player_open_location):
5975         retrieve iradio playlists files in a thread, so that with GStreamer
5976         0.10 the UI doesn't block while connecting to stations. The streamer
5977         connection is synchronous with 0.8, so that will still block (a bit).
5978         Fixed bug 128106.
5980         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
5981         because _open_entry does that automatically when it is ready to.
5983 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
5985         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5986         (rb_podcast_source_post_status_cell_data_func):
5987         Leave the podcast status column blank for episodes that have not been
5988         downloaded.
5990 2006-02-03  James Livingston  <jrl@ids.org.au>
5992         Add support for source-specific toolbar items, and make the Burn
5993         Playlist item only available for playlists. Also add Update All
5994         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
5996         * data/ui/rhythmbox-ui.xml:
5997         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
5998         (impl_get_ui_actions): make the Burn CD toolbar item only for
5999         playlists
6001         * lib/rb-stock-icons.c: (rb_stock_icons_init):
6002         * lib/rb-stock-icons.h: load the Eject icon as stock.
6004         * shell/rb-removable-media-manager.c: use the eject icon for the eject
6005         action
6007         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
6008         (rb_shell_select_source):
6009         * sources/rb-source.c: (rb_source_class_init),
6010         (rb_source_disconnect), (default_get_ui_actions),
6011         (rb_source_get_ui_actions):
6012         * sources/rb-source.h: add support for source-specific toolbar items
6014         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
6015         Eject and Rip toolbar items
6017         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
6018         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
6019         item.
6021 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
6023         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
6024         * shell/main.c: (main):
6025         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
6026         Replace all g_critical calls with g_warning, since none of them are
6027         the sort of thing the process should die over.  Fixes #329398.
6029 2006-02-03  James Livingston  <jrl@ids.org.au>
6031         * configure.ac: mention gst-plugins-base in the error message for not
6032         finding GStreamer 0.10, since not having that will cause it to fail.
6034 2006-02-03  James Livingston  <jrl@ids.org.au>
6036         * configure.ac: fix typo that means you get the wrong error message if
6037         you explicity request a particular playback engine, and it can't be
6038         found.
6040 2006-02-03  James Livingston  <jrl@ids.org.au>
6042         * data/glade/library-prefs.glade: allow the watched library location
6043         to be a non-local place.
6045 ============ Version 0.9.3
6048 2006-02-02  James Livingston  <jrl@ids.org.au>
6050         * NEWS: update NEWS
6051         * configure.ac: bump version to 0.9.3
6053         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
6054         <caillon@redhat.com>, fixed bug 329517. 
6056 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
6058         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
6060         * widgets/rb-song-info.c: (rb_song_info_constructor):
6061         Make year and disc number fields non-editable if tag editing
6062         is disabled.  Fixes #329463.
6064 2006-02-01  James Livingston  <jrl@ids.org.au>
6066         * rhythmdb/rhythmdb-property-model.c:
6067         (rhythmdb_property_model_row_inserted_cb),
6068         (rhythmdb_property_model_prop_changed_cb),
6069         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
6070         correctly. Fixes bug 327061.
6072         * rhythmdb/rhythmdb-query-model.c:
6073         (rhythmdb_query_model_entry_changed_cb): emit change notification of
6074         the HIDDEN property when an entry is removed for being hidden.
6076         * rhythmdb/rhythmdb-query-model.h:
6077         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
6078         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
6079         models's "connected" property. Whatever it was needed for seems to
6080         have gone.
6082 2006-02-01  James Livingston  <jrl@ids.org.au>
6084         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
6086         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
6087         (rb_shell_player_playing_changed_cb): block the signal to prevent
6088         re-entrancy. Fixes bug 329329 and fixes the first click of the play
6089         button pausing.
6091 2006-02-01  James Livingston  <jrl@ids.org.au>
6093         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
6094         /should/ now work, if the neccessary plugins get ported.
6096 2006-01-30  James Livingston  <jrl@ids.org.au>
6098         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
6099         string properties to "Unknown" is the string is empty. Kind of fixes
6100         bug 327495.
6102         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
6103         gettext calls once, rather than once per time the function is used.
6104         This stops us making tens of thousands of gettext calls on startup,
6105         which reduces the cpu-time of startup by 10-20%
6107 2006-01-29  James Livingston  <jrl@ids.org.au>
6109         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
6110         (rhythmdb_add_uri):
6111         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
6112         for files containing known video streams.
6115 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
6117         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
6118         required.
6120 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
6122         * INSTALL.quick: More random updates
6124         * rhythmdb/rhythmdb-query-model.c:
6125         (rhythmdb_query_model_class_init),
6126         (rhythmdb_query_model_set_property),
6127         (rhythmdb_query_model_get_property),
6128         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
6129         Remove user sort data handling, take a property ID and a reverse
6130         flag instead.
6131         (rhythmdb_query_model_insert_into_main_list),
6132         (rhythmdb_query_model_insert_into_limited_list),
6133         (rhythmdb_query_model_do_reorder),
6134         (_reverse_sorting_func):
6135         Handle reverse sorting by calling _reverse_sorting_func, which
6136         calls the real sort function and reverses the result.
6137         (rhythmdb_query_model_set_sort_order):
6138         Allow this to be called to set the initial sort order for limited
6139         queries, and handle reverse sorting when reordering.
6140         (rhythmdb_query_model_location_sort_func),
6141         (rhythmdb_query_model_album_sort_func),
6142         (rhythmdb_query_model_artist_sort_func),
6143         (rhythmdb_query_model_genre_sort_func),
6144         (rhythmdb_query_model_track_sort_func),
6145         (rhythmdb_query_model_double_ceiling_sort_func),
6146         (rhythmdb_query_model_ulong_sort_func),
6147         (rhythmdb_query_model_date_sort_func),
6148         (rhythmdb_query_model_string_sort_func):
6149         Sort functions moved from rb-entry-view.c.
6150         * rhythmdb/rhythmdb-query-model.h:
6151         Add the sort functions, and update the changed functions.
6152         
6153         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
6154         Just call _resort_model when the query model is set, since it
6155         does all the same things.
6156         (rb_entry_view_append_column):
6157         Rework bits so the rating column doesn't have to be so much of a
6158         special case.
6159         (rb_entry_view_append_column_custom):
6160         Take a property ID to sort on, rather than arbitrary custom data.
6161         (rb_entry_view_resort_model):
6162         Query model does all the reverse sort handling now.
6163         * widgets/rb-entry-view.h: Update _append_column_custom.
6165         * sources/rb-play-queue-source.c:
6166         (rb_play_queue_source_constructor):
6167         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
6168         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
6169         (rb_podcast_source_post_date_cell_sort_func),
6170         (rb_podcast_source_post_status_cell_sort_func),
6171         (rb_podcast_source_post_feed_cell_sort_func):
6172         Updates required by all the other changes.
6174         * rhythmdb/rhythmdb-property-model.c:
6175         (rhythmdb_property_model_drag_data_get):
6176         Sort the query results on the selected property,
6177         so they arrive in the expected order.  All the other changes were made
6178         to make this possible.  Fixes bug #327494.
6180 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
6181         
6182         * shell/rb-shell-clipboard.c:
6183         Use GTK_STOCK_REMOVE icon for the remove action in
6184         the play queue too.
6186 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
6188         * sources/rb-play-queue-source.c:
6189         (rb_play_queue_source_constructor),
6190         (rb_play_queue_source_update_count):
6191         Don't make the 'queued songs' column clickable,
6192         and add the queued song count to the column title.
6194 2006-01-29  James Livingston  <jrl@ids.org.au>
6196         * configure.ac: remove "experimental" marking from DAAP, and enable by
6197         default if the dependencies are found.
6199 2006-01-29  James Livingston  <jrl@ids.org.au>
6201         * NEWS: update NEWS
6203 2006-01-29  James Livingston  <jrl@ids.org.au>
6205         patch by: William Jon McCann  <mccann@jhu.edu>
6207         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
6208         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
6209         property used for the feed list. Fixes problem with feeds with no
6210         episodes not showing up.
6212 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
6213         
6214         * shell/rb-play-order-random-by-age-and-rating.c:
6215         (rb_random_by_age_and_rating_get_entry_weight):
6216         Fix compile errors, bug #328978.
6218 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
6220         * INSTALL.quick, README: Random updates
6221         * README.lirc: Add notes on controlling Rhythmbox with LIRC
6223 2006-01-28  James Livingston  <jrl@ids.org.au>
6225         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
6226         default rating back to 0 (from 2.5, which was needed for autorating).
6228         * shell/rb-play-order-random-by-age-and-rating.c:
6229         (rb_random_by_age_and_rating_get_entry_weight):
6230         * shell/rb-play-order-random-by-rating.c:
6231         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
6232         2.5 for the purposes of weighting entries.
6234 2006-01-28  James Livingston  <jrl@ids.org.au>
6236         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
6237         translator comments, to make it clearer what the "friendly time"
6238         formatting strings mean.
6240 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
6242         * daapsharing/rb-daap-connection.c: (http_response_handler):
6243         Fix the sense of the overflow check so it'll accept valid input.
6245 2006-01-27  James Livingston  <jrl@ids.org.au>
6247         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
6249         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
6250         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
6252 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
6254         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6255         
6256         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
6257         Don't include the artist field in the window title if it's blank.
6258         Fixes #325973.
6260 2006-01-26  William Jon McCann  <mccann@jhu.edu>
6262         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
6263         Use stock delete icon for move to trash and stock remove
6264         for remove menu item.
6266 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
6268         * shell/rb-shell.c: (rb_shell_constructor),
6269         (idle_handle_load_complete):  Don't start the playlist save
6270         timeout until we've loaded the playlists, otherwise we'll
6271         write an empty playlist file if startup takes too long.
6273 2006-01-25  William Jon McCann  <mccann@jhu.edu>
6275         * shell/rb-shell.c: Make view toolbar toggle use
6276         shift+ctrl+t.  Fixes #327585.
6278 2006-01-25  James Livingston  <jrl@ids.org.au>
6280         patch by: Christope Fergeau  <teuf@gnome.org>
6282         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
6283         (http_response_handler): fix a potential buffer overflow issue.
6285 2006-01-25  James Livingston  <jrl@ids.org.au>
6287         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
6288         Year column wide enough to display "Unknown"
6290 2006-01-25  James Livingston  <jrl@ids.org.au>
6292         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
6293         (rb_podcast_source_post_status_cell_data_func): make the episode
6294         status wording better. Part of bug 321607.
6296 2006-01-25  James Livingston  <jrl@ids.org.au>
6298         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
6299         others with a separator.
6301         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
6302         stock Delete icon.
6304 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
6306         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
6308 2006-01-23  James Livingston  <jrl@ids.org.au>
6310         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
6311         0.3.2. Fixed bug 328158.
6313 2006-01-23  James Livingston  <jrl@ids.org.au>
6315         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
6316         (gulong_gst_date_transform), (rb_metadata_class_init):
6317         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
6319 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
6321         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
6322         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
6323         (record_entry_change): Protect added_entries and changed_entries with
6324         a mutex, so it doesn't crash on startup on SMT/SMP machines.
6326 2006-01-23  James Livingston  <jrl@ids.org.au>
6328         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
6329         the browser for audio CDs.
6331 2006-01-22  James Livingston  <jrl@ids.org.au>
6333         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
6334         NEVER_FAIL as it causes the daemon-not-running error to never be
6335         reported, resulting in bug 319438 re-occurring.
6337 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
6339         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
6340         Just call the podcast manager's update method.  Unbreaks the 'update
6341         all feeds' command.
6343 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
6345         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
6347 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
6349         * configure.ac: Don't disable DAAP with gstreamer 0.10
6351         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
6352         (rb_daap_src_class_init), (rb_daap_src_init),
6353         (rb_daap_src_finalize), (rb_daap_src_set_property),
6354         (rb_daap_src_get_property), (rb_daap_src_write),
6355         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
6356         (_split_uri), (rb_daap_src_open):
6357         * daapsharing/rb-daap-src.h:
6358         Mostly fix seeking, handle chunked transfer encoding, and port to
6359         gstreamer 0.10.
6360         
6361         * player/rb-player-gst.c:
6362         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
6363         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
6365         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
6366         being fixed.
6368 2006-01-21  James Livingston  <jrl@ids.org.au>
6370         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
6371         for Year metadata in DAAP sources. Fixes bug 327700.
6373         * daapsharing/rb-daap-connection.c: (handle_song_listing):
6375 2006-01-20  William Jon McCann  <mccann@jhu.edu>
6377         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
6378         enum values instead of magic numbers.
6380         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
6381         Add number of songs that match each property title into
6382         the cell.  Also show the number of properties that match
6383         in the All entry.
6384         (rb_property_view_constructor): Use enum values instead of
6385         magic numbers.
6387         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
6388         Query podcast posts instead of feeds for browser.  Use
6389         post SUBTITLE which is the location for the property view.
6390         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
6391         (construct_query_from_selection) 
6392         (rb_podcast_source_cmd_delete_feed) 
6393         (rb_podcast_source_cmd_properties_feed) 
6394         (rb_podcast_source_cmd_update_feed): Use variable to make
6395         it clear what the selection data represents.
6396         (rb_podcast_source_feed_title_cell_data_func): Add number
6397         of posts that belong to each feed in the browser.
6399         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
6400         (rhythmdb_property_model_delete_prop): Decrement the refcount
6401         for the All entry.
6402         (rhythmdb_property_model_get_column_type): Use column enum
6403         values instead of magic numbers.  Add NUMBER column.
6404         (rhythmdb_property_model_get_value): Use enum.
6405         Add NUMBER column that represents the refcount for
6406         the title of that property.
6407         (rhythmdb_property_model_perform_sync): Don't fake up
6408         a title for All here.
6410         Fixes #327372.
6411         
6412 2006-01-21  James Livingston  <jrl@ids.org.au>
6414         Make Rhythmbox start faster by not blocking the UI while database
6415         initialisation and loading occurs. Closes bug 323348.
6417         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
6418         start 10 seconds later instead of immediately.
6419         
6420         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
6421         safe to call from any thread.
6423         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
6424         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
6425         so the UI doesn't block.
6427 2006-01-18  James Livingston  <jrl@ids.org.au>
6429         * sources/rb-static-playlist-source.c:
6430         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
6431         cause crashes. Oops. fixes bug 327477.
6433 2006-01-17  William Jon McCann  <mccann@jhu.edu>
6435         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
6436         Set GST element state to NULL before unreffing.
6437         Fixes #327422.
6439 2006-01-18  James Livingston  <jrl@ids.org.au>
6441         * sources/rb-static-playlist-source.c:
6442         (rb_static_playlist_source_do_query): don't filter on the SONG entry
6443         type, since the playlists can contain non-song entries. Fixes bug
6444         327448.
6446         * sources/rb-play-queue-source.c:
6447         (rb_play_queue_source_class_init): disable the search box for the
6448         queue.
6450 2006-01-18  James Livingston  <jrl@ids.org.au>
6452         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
6453         dragging of podcast episodes. Fixed bug 327450.
6455 2006-01-18  James Livingston  <jrl@ids.org.au>
6457         * rhythmdb/rhythmdb-query-model.c:
6458         (rhythmdb_query_model_drag_data_received): fix possible assertion when
6459         dragging to an emoty playlist.
6461 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
6463         * sources/rb-playlist-source-recorder.c:
6464         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
6466 2006-01-17  James Livingston  <jrl@ids.org.au>
6468         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
6470         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
6471         different number of tracks than exist on the cd, since that happens
6472         with audio+data hybrid CDs. Part of bug 325046.
6474 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
6476         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
6477         Remove useless call to gtk_tree_view_column_set_clickable().
6479         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
6480         Don't store sort data for columns if the sort function is NULL,
6481         so only sortable columns will be in the column sort data map.
6482         (rb_entry_view_set_columns_clickable): Only make columns we can sort
6483         on clickable.
6484         (rb_entry_view_constructor):  The 'playing icon' column is never
6485         clickable, so don't connect a signal handler for it.
6487         Fixes bug 326811.
6489 2006-01-17  James Livingston  <jrl@ids.org.au>
6491         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
6492         are 0.8 only. Fix element detection.
6494         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
6495         saving the new metadata failed
6497 2006-01-17  James Livingston  <jrl@ids.org.au>
6499         * shell/rb-shell-player.c: (do_next_idle),
6500         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
6501         (eos_cb): release audio device when a playlist finishes. Fixes bug
6502         323679.
6504 2006-01-17  James Livingston  <jrl@ids.org.au>
6506         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
6507         canonicalise the URIs when things are added via library watching.
6509 2006-01-16  William Jon McCann  <mccann@jhu.edu>
6511         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
6512         Off by one error in default speed index.
6514 2006-01-16  William Jon McCann  <mccann@jhu.edu>
6516         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
6517         (update_speed_combobox, update_speed_combobox):
6518         Get a list of the actually supported write speeds from
6519         n-c-b >= 2.13.90.  Otherwise use fallback list.
6521 2006-01-17  James Livingston  <jrl@ids.org.au>
6523         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
6524         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
6525         don't get stuck on recursive symlinks. Fixed bug 125452.
6527 2006-01-17  James Livingston  <jrl@ids.org.au>
6529         Add support for mass-storage audio players. Players are detected via
6530         either the HAL "audio_player" capability, or a ".is_audio_player" file
6531         in the root of the volume. Closes bug 325602.
6533         * configure.ac: separate using HAL from ipod support.
6535         * lib/rb-file-helpers.c: (rb_uri_is_local):
6536         * lib/rb-file-helpers.h: add function to determine whether a URI is
6537         local.
6539         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
6540         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
6541         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
6542         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
6543         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
6544         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
6545         directories can be scanned for files to add as  non-SONG entries.
6547         * shell/rb-removable-media-manager.c:
6548         (rb_removable_media_manager_mount_volume): add checking for
6549         mass-storage players.
6551         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
6552         * sources/rb-ipod-source.c: (rb_ipod_source_new),
6553         (hal_udi_is_ipod):
6554         * sources/rb-removable-media-source.c:
6555         (rb_removable_media_source_class_init),
6556         (rb_removable_media_source_constructor): move some things up to the
6557         RBRemovableMediaSource, rather than making subclasses do it.
6559         * sources/Makefile.am:
6560         * sources/rb-generic-player-source.c:
6561         * sources/rb-generic-player-source.h: add mass-storage player source.
6563 2006-01-16  James Livingston  <jrl@ids.org.au>
6565         patch by: William Jon McCann  <mccann@jhu.edu>
6567         * rhythmdb/rhythmdb-query-model.c:
6568         (rhythmdb_query_model_base_row_deleted): fix build issue from last
6569         commit.
6571 2006-01-16  James Livingston  <jrl@ids.org.au>
6573         Patch to add support for "chained queries" and putting hidden tracks
6574         in query models. Use chained queries to add search box support to
6575         normal playlists, and to make hidden entries not get lost. Fixes bug
6576         319278.
6578         * rhythmdb/rhythmdb-query-model.h:
6579         * rhythmdb/rhythmdb-query-model.c:
6580         (rhythmdb_query_model_class_init),
6581         (rhythmdb_query_model_set_property),
6582         (rhythmdb_query_model_get_property):
6583         (rhythmdb_query_model_finalize): add "show-hidden" and
6584         "base-model" properties.
6586         (rhythmdb_query_model_set_connected),
6587         (rhythmdb_query_model_has_pending_changes),     
6588         (rhythmdb_query_model_entry_added_cb),
6589         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
6590         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
6591         (rhythmdb_query_model_remove_entry),
6592         (rhythmdb_query_model_drag_data_received),
6593         (rhythmdb_query_model_base_row_inserted),
6594         (rhythmdb_query_model_base_row_deleted),
6595         (rhythmdb_query_model_base_non_entry_dropped),
6596         (rhythmdb_query_model_base_complete),
6597         (rhythmdb_query_model_base_entry_prop_changed),
6598         (rhythmdb_query_model_base_rows_reordered),
6599         (rhythmdb_query_model_row_drop_possible): handle base-model by
6600         chaining events and operations where necessary. Make hidden entries
6601         not get added only if "show-hidden" is false.
6603         (rhythmdb_query_model_child_index_to_base_index),
6604         (rhythmdb_query_model_base_index_to_child_index),
6605         (rhythmdb_query_model_get_entry_index): utility functions for handling
6606         base-model entries.
6608         (rhythmdb_query_model_reapply_query): apply the current query, and
6609         remove entries that don't match it.
6611         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
6612         empty queries.
6614         * sources/rb-source.c: (rb_source_set_property): move the unref later
6615         to fix problem if it is the last reference.
6617         * sources/rb-static-playlist-source.c:
6618         (rb_static_playlist_source_class_init),
6619         (rb_static_playlist_source_init),
6620         (rb_static_playlist_source_finalize),
6621         (rb_static_playlist_source_constructor), (impl_reset_filters),
6622         (impl_search), (rb_static_playlist_source_do_query),
6623         (impl_save_contents_to_xml),
6624         (rb_static_playlist_source_add_location_internal): use a chained query
6625         model to filter out hidden entries and implement the search box.
6627 2006-01-15  James Livingston  <jrl@ids.org.au>
6629         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
6630         the default playlist loading, which I broke earlier.
6632 2006-01-15  James Livingston  <jrl@ids.org.au>
6634         patch by: William Jon McCann  <mccann@jhu.edu>
6636         * sources/rb-playlist-source.c: (playlist_iter_func): use
6637         totem-plparser's new API version macros to check for API changes.
6638         Handle the recent API change.
6640 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
6642         * sources/rb-library-source.c: (impl_get_config_widget):
6643         Ref the preferences object to match the unref in the
6644         finalizer.  Fixes some portion of #323505.
6646 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
6648         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
6649         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
6650         Fix valgrind warnings about accessing uninitialised values.
6652 2006-01-14  William Jon McCann  <mccann@jhu.edu>
6654         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
6656 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
6658         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
6659         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
6660         Stops the 'now playing' icon from being displayed after the play
6661         order finishes.
6663 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
6665         * podcast/rb-podcast-manager.c:
6666         (rb_podcast_manager_db_entry_deleted_cb):
6667         Don't try to delete files we never downloaded, and cancel downloads
6668         for deleted episodes.  Fixes bug #326862.
6669         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
6670         Don't complain about NULL data items in the selection list.
6672 2006-01-14  James Livingston  <jrl@ids.org.au>
6674         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
6675         Make the name ofthe queue non editable. Fixes bug 326918.
6677 2006-01-13  William Jon McCann  <mccann@jhu.edu>
6679         * sources/rb-playlist-source-recorder.c (burn_cd) 
6680         (ask_rewrite_disc): Don't use our locally copied functions
6681         if we have at least 2.13.
6683 2006-01-13  William Jon McCann  <mccann@jhu.edu>
6685         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
6686         Correct the argument type for the process_error signal.
6687         May fix bug #323154.
6689 2006-01-13  James Livingston  <jrl@ids.org.au>
6691         save the queue to disk when exiting, and reload on startup. Fixed bug
6692         326677 .
6694         * shell/rb-playlist-manager.c:
6695         (rb_playlist_manager_load_playlists),
6696         (rb_playlist_manager_save_playlists_async): don't disable saving of
6697         the queue
6699         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
6700         add the queue source as a gobject property.
6702         * sources/rb-play-queue-source.c:
6703         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
6704         code to save the queue to xml
6706         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
6707         load the queue from xml.
6708         * sources/rb-playlist-xml.h:
6710         * sources/rb-static-playlist-source.c:
6711         (rb_static_playlist_source_load_from_xml),
6712         (rb_static_playlist_source_new_from_xml):
6713         * sources/rb-static-playlist-source.h: split the playlist xml loading
6714         from the static playlist creation function, so the queue can use it.
6716 2006-01-13  James Livingston  <jrl@ids.org.au>
6718         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
6719         assertion that should be there. Fixes bug 325923.
6720         
6721         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
6722         return NULL if the entry already exists (e.g. as another type).
6723         * daapsharing/rb-daap-connection.c: (handle_song_listing):
6724         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
6725         (rb_podcast_manager_insert_feed):
6726         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
6727         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
6728         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
6729         for the above function returning NULL.
6731 2006-01-12  James Livingston  <jrl@ids.org.au>
6733         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
6734         is enabled. Fixes bug 326673.
6735         
6736         * doc/reference/tmpl/eggtrayicon.sgml:
6737         * doc/reference/tmpl/rb-daap-src.sgml:
6738         * doc/reference/tmpl/rb-source.sgml:
6739         * doc/reference/tmpl/rb-statusbar.sgml:
6740         * doc/reference/tmpl/rb-tree-model-sort.sgml:
6741         * doc/reference/tmpl/rhythmbox-unused.sgml:
6742         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
6744 2006-01-11  James Livingston  <jrl@ids.org.au>
6746         * widgets/rb-song-info.c: (rb_song_info_constructor),
6747         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
6748         (rb_song_info_populate_dialog): fill in the fields if all tracks have
6749         the same value for properties. From bug 326054.
6751 2006-01-11  James Livingston  <jrl@ids.org.au>
6753         * sources/rb-source.h:
6754         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
6755         (rb_shell_player_set_playing_source_internal), (eos_cb):
6756         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
6757         every entry.
6759         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
6760         source use this. Closes bug 322077.
6762 2006-01-10  William Jon McCann  <mccann@jhu.edu>
6764         * widgets/eggtrayicon.c (egg_tray_icon_notify):
6765         In order for set_icon_data_from_pixbuf() to be
6766         effective, one must not set an icon in _new().
6768 2006-01-10  William Jon McCann  <mccann@jhu.edu>
6770         * widgets/eggtrayicon.c (egg_tray_icon_init) 
6771         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
6772         (egg_tray_icon_notify): Add support for libnotify 0.3.
6773         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
6774         * configure.ac: Determine the version of libnotify.
6775         Fixes #326333.
6777 2006-01-08  James Livingston  <jrl@ids.org.au>
6779         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
6780         trying to share a track with unknown length.
6782 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
6784         * shell/rb-shell-player.c: (rb_shell_player_init):
6785         Sync volume on startup so it doesn't default to 0.
6787 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
6789         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6790         (rb_shell_player_get_property), (rb_shell_player_open_location),
6791         (info_available_cb):  Add the iradio streamed song title as a
6792         property, and emit a signal when it changes.
6794         * shell/rb-shell.c: (rb_shell_constructor),
6795         (rb_shell_player_elapsed_changed_cb),
6796         (rb_shell_player_stream_song_changed_cb):
6797         Issue a notification when the iradio song title changes.
6798         Fixes #326166.
6800 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
6802         * shell/rb-shell-player.c: (rb_shell_player_init),
6803         (rb_shell_player_finalize), (rb_shell_player_set_property),
6804         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
6805         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
6806         (rb_shell_player_set_volume_relative),
6807         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
6808         (rb_shell_player_get_mute):
6809         * shell/rb-shell-player.h:
6810         * shell/rb-shell-player.xml:
6811         Store volume as a property on RBShellPlayer, rather than in gconf.
6812         Add some methods to control volume via dbus.
6814         * shell/rb-shell.c: (rb_shell_constructor),
6815         (rb_shell_volume_widget_changed_cb),
6816         (rb_shell_player_volume_changed_cb):
6817         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
6818         Update volume using player properties rather than gconf, and sync the
6819         volume with the volume control button when something else changes it.
6820         Fixes #323840.
6822 2006-01-07  William Jon McCann  <mccann@jhu.edu>
6824         * shell/rb-tray-icon.c (tray_popup_position_menu):
6825         Make tray menu align with edge of panel.
6827         patch from Jaap A. Haitsma <jaap@haitsma.org>
6828         Fixes #319913
6830 2006-01-07  William Jon McCann  <mccann@jhu.edu>
6831         * shell/rb-shell.c (sourcelist_drag_received_cb): 
6832         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
6833         (rb_playlist_manager_new_playlist_from_selection_data):
6834         Make a reasonable default name for playlists created from
6835         dropped data.  Fixes #326116.
6837 2006-01-07  William Jon McCann  <mccann@jhu.edu>
6839         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
6840         Use new gconf key.
6841         (burn_cd): Always eject CD after burning.  Too many drives
6842         get confused if we don't.  Save the speed used if the burn
6843         was completed successfully.
6845         * data/rhythmbox.schemas: Use our own speed instead of from
6846         n-c-b. The situation is that the default_speed for n-c-b is most
6847         likely the maximum write speed.  This is fine for n-c-b because it
6848         has burn-proof turned on.  We can't turn it on for audio CDs
6849         because the results are poor in quality.  So we'll just pick a
6850         default that should work for everyone (4).
6852 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
6853         
6854         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
6855         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
6857 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
6859         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
6860         in my previous commit.  Fixes #326037.
6862 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
6864         patch by: Jonathan Matthew
6866         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
6867         error on Fedora Rawhide.
6869 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
6871         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
6872         Assume HTTP URLs ending with .xml or .rss are podcasts.
6873         (rb_shell_add_uri): Handle adding podcast feeds.
6875         * sources/rb-podcast-source.c: (rb_podcast_source_new):
6876         Register as the source for podcast feeds.
6878 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
6880         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
6881         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
6882         (rb_shell_preferences_append_view_page):
6883         * shell/rb-shell-preferences.h:
6884         Fix typo in function name.  Fixes #325992.
6886 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
6888         * shell/rb-audioscrobbler.c:
6889         Add '+' to the list of characters to URI-encode, so it doesn't get
6890         interpreted as a space.
6892 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
6894         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
6895         (rb_daap_connection_do_something):  Don't crash if the DAAP server
6896         goes away while we're still trying to log in.
6898 2006-01-06  James Livingston  <jrl@ids.org.au>
6900         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
6902 2006-01-06  James Livingston  <jrl@ids.org.au>
6904         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
6905         support for Year to automatic playlists. Closes bug 321341.
6907         * rhythmdb/rhythmdb-query-model.c:
6908         (rhythmdb_query_model_set_property):
6909         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
6910         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
6911         (rhythmdb_query_free), (rhythmdb_query_serialize),
6912         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
6913         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
6914         * rhythmdb/rhythmdb.h: Support special
6915         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
6916         year in date.
6918         * widgets/rb-query-creator-properties.c:
6919         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
6920         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
6922 2006-01-06  James Livingston  <jrl@ids.org.au>
6924         * configure.ac: make the playback backend selection work correctly
6926         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
6927         (rb_daap_src_class_init), (rb_daap_src_dispose),
6928         (rb_daap_src_change_state), (rb_daap_src_initialize):
6929         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
6930         doesn't work for this class. Fixes bug 325934
6932 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
6934         * configure.ac: Fix check for libnotify.
6936 2006-01-05  William Jon McCann  <mccann@jhu.edu>
6938         * sources/rb-playlist-source.c (xml_get_and_trim_names):
6939         Get name element for current lang and remove all name nodes
6940         from the XML tree.
6941         (get_playlist_name_from_xml): Try to get name element or
6942         fall back to name attribute.
6943         (rb_playlist_source_new_from_xml): Get name before turning over
6944         to sub-types for parsing so that we can remove name elements
6945         from the tree if necessary.
6947         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
6948         Load default playlists file if per user playlists are not found.
6950         * data/playlists.xml.in: 
6951         * data/Makefile.am: 
6952         * data/.cvsignore: Add default set of playlists.
6953         Fixes #323004
6955 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
6957         * shell/main.c: (main): Don't use the dbus interface to show the
6958         window if we're also going to use the bonobo interface.
6960 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
6962         * shell/rb-history.c: (rb_history_set_playing):
6963         Allow setting the playing song to NULL.
6964         (rb_history_append), (rb_history_delete_link):
6965         Don't randomly change position when entries are added and removed,
6966         it confuses play orders.
6967         
6968         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
6969         Random orders always have a next entry if the model is not empty.
6970         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
6971         Go back to the start of the history if we're past its end.
6973         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
6974         (rb_shuffle_play_order_go_next): Go back to the start of the history
6975         if we're past its end.
6976         (rb_shuffle_sync_history_with_query_model): Go back to the start of
6977         the history if the current entry is removed.
6979         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
6980         (rb_play_order_entry_deleted_cb): Only update have next/previous for
6981         the play order when the query has finished. This wasted about 10% CPU
6982         while the query was running.
6984         Fixes #324641: assertion failures when the query model was changed
6985         such that the playing song was no longer present.
6987 2006-01-05  James Livingston  <jrl@ids.org.au>
6989         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
6990         (rb_daap_src_dispose), (rb_daap_src_change_state):
6991         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
6992         (rhythmdb_gda_finalize):
6993         * widgets/rb-cell-renderer-pixbuf.c:
6994         * widgets/rb-cell-renderer-rating.c:
6995         (rb_cell_renderer_rating_class_init),
6996         (rb_cell_renderer_rating_finalize):
6997         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
6998         * widgets/rb-load-failure-dialog.c:
6999         (rb_load_failure_dialog_class_init),
7000         (rb_load_failure_dialog_finalize):
7001         * widgets/rb-rating.c: (rb_rating_class_init),
7002         (rb_rating_finalize):
7003         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
7004         (rb_search_entry_finalize): use G_DEFINE_TYPE
7006         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
7008 2006-01-05  James Livingston  <jrl@ids.org.au>
7010         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
7012         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
7013         the tarball.
7015         * shell/rb-history.c: (rb_history_class_init),
7016         (rb_history_finalize):
7017         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
7018         (rb_playlist_manager_finalize):
7019         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
7020         (rb_remote_init): use G_DEFINE_TYPE.
7022 2006-01-05  James Livingston  <jrl@ids.org.au>
7024         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
7025         changes
7027 2006-01-04  William Jon McCann  <mccann@jhu.edu>
7029         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
7030         Disable burn action when source is not a playlist.
7031         Fixes #323578.
7033 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
7035         Optionally use libnotify to display song change and other
7036         notifications, and provide an option to disable notifications.
7037         Fixes #320355 and innumerable informal complaints.
7039         * widgets/eggtrayicon.c: (egg_tray_icon_init),
7040         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
7041         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
7042         (egg_tray_icon_notify):
7043         * widgets/eggtrayicon.h:
7044         * configure.ac:
7045         * shell/Makefile.am:
7046         Optionally use libnotify instead of eggnotificationbubble.
7048         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
7049         (rb_tray_icon_constructor), 
7050         (rb_tray_icon_show_notifications_changed_cb),
7051         (rb_tray_icon_hide_notify_cb)
7052         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
7053         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
7054         EggNotificationBubble pointer to eggtrayicon.
7056         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
7057         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
7058         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
7060 2006-01-04  William Jon McCann  <mccann@jhu.edu>
7062         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
7063         Request a minimum size for the progress bar so that
7064         the window doesn't shrink too small.
7066 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
7068         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
7069         (add_db_entry), (db_entry_deleted_cb):
7070         Don't track the number of songs currently present, track the next ID
7071         to assign.  Fixes potential ID conflict problems.
7072         
7073         (db_entry_changed_cb), (rb_daap_share_start_publish),
7074         (rb_daap_share_stop_publish):
7075         Watch for db entry changes, and when songs become non-hidden after
7076         a successful stat, add them to the mapping tables.   Fixes #325178,
7077         making the DAAP server usable again.
7079 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
7080         
7081         * shell/rb-statusbar.c: (rb_statusbar_class_init),
7082         (rb_statusbar_construct), (rb_statusbar_init),
7083         (rb_statusbar_finalize), (rb_statusbar_set_property),
7084         (rb_statusbar_get_property), (rb_statusbar_new),
7085         (rb_statusbar_sync_with_source):
7086         * shell/rb-statusbar.h:
7087         Remove visibility management code, stop watching for play order
7088         changes (status bar doesn't show play order any more), remove unused
7089         'player' property, and some other minor cleanup.
7090         
7091         * shell/rb-shell.c: (rb_shell_constructor),
7092         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
7093         (rb_shell_sync_statusbar_visibility):
7094         Manage status bar visibility here rather than in the status bar
7095         itself, so we can take small mode into account.  Fixes #323589.
7097 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
7099         * widgets/eggnotificationbubble.c: (draw_bubble):
7100         Move the bubble off the visible screen while setting up bevels.  
7101         Fixes #316810.
7103 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
7105         * shell/rb-shell-player.c: (rb_shell_player_init),
7106         (rb_shell_player_finalize): 
7107         Remove unused structure members.
7108         
7109         (do_next_idle), (rb_shell_player_error):
7110         Only queue one call to do_next_idle, so we don't skip tracks if we get
7111         two errors for the same song.  Fixes #325216.
7113 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
7115         * data/glade/podcast-feed-properties.glade,
7116          podcast/rb-feed-podcast-properties-dialog.c:
7117         (rb_feed_podcast_properties_dialog_init),
7118         (rb_feed_podcast_properties_dialog_update):
7119         Add 'last episode' field to the podcast feed properties dialog.
7121         * podcast/rb-feed-podcast-properties-dialog.c:
7122         (rb_feed_podcast_properties_dialog_update_last_update),
7123         (rb_feed_podcast_properties_dialog_update_last_episode),
7124          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
7125         Use last-seen property for the time at which we last updated the feed,
7126         and post-time for the time the last episode was published.
7128         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
7129         Handle upgrades from 0.9.2; if no post-time was found for a podcast
7130         feed, use last-seen (which in 0.9.2 was the last post time).
7132         Fixes #323894.
7134 2006-01-01  James Livingston  <jrl@ids.org.au>
7136         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
7138         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
7139         year from the ipod database.
7141 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
7143         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
7144         Only set the pipeline back to NULL state for really uninteresting
7145         files.  This was causing deadlocks with various video files.
7146         Fixes #324912.
7148 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
7150         * data/glade/song-info-multiple.glade:
7151         Add disc number label and field.
7152         * widgets/rb-song-info.c: (rb_song_info_construct_single),
7153         (rb_song_info_constructor): 
7154         Handle widgets for disc number.
7155         (rb_song_info_sync_entries_multiple):
7156         Set disc number property on selected entries.
7157         Fixes #324777.
7159 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
7161         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
7162         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
7163         Activate the default widget when enter is pressed in these dialogs.
7164         Fixes #322887.
7166 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
7168         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
7169         Use rb_shell_player_get_playing_entry, so we get the right entry
7170         when playing from the queue.  Fixes #325379.
7172 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
7174         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
7175         Include podcast posts with no publication date.  Typically
7176         seen in static collections rather than feeds.
7178 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
7180         * shell/main.c: (main): Don't attempt to handle
7181         bonobo-only arguments if we couldn't get a bonobo
7182         client proxy.
7184 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
7186         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
7187         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
7188         abort if daap sharing is disabled and then re-enabled.
7190 2005-12-29  William Jon McCann  <mccann@jhu.edu>
7192         * podcast/rb-podcast-parse.c (rb_insert_item):
7193         Add debugging.
7194         (rb_podcast_parser_start_element): Support itunes:image.
7195         Add debugging.  Don't abuse the break statement.  Warn
7196         if state is unknown.
7197         (rb_podcast_parser_end_element): Add debugging.  Warn
7198         if state is unknown.
7199         (rb_podcast_parser_characters): Warn if state is unknown.
7201         Fixes parsing of feeds that use the itunes:image element.
7202         Fixes #324632
7204 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
7206         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
7207         (stations_view_drag_data_received_cb):
7208         Remove calls to rhythmdb_entry_lookup_by_location, as
7209         rb_iradio_source_add_station does that anyway.
7210         
7211         (rb_iradio_source_add_from_playlist):
7212         If the URL doesn't point to a playlist, add it as the stream
7213         URL instead.
7215 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
7217         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
7218         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
7219         so we don't get an assertion failure.
7220         Fixes #325025.
7222 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
7224         * shell/main.c: (load_uri_args): don't compile this in if
7225         neither bonobo nor dbus are enabled.  Fixes #324890.
7227 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
7229         * sources/rb-audiocd-source.c:
7230         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
7231         so it closes the device.
7233 2005-12-20  James Livingston  <jrl@ids.org.au>
7235         * metadata/rb-metadata-gst.c: make the state changes time-out again,
7236         so that it doesn't spend forever getting stuck on the one file. Don't
7237         report errors for failing to change state on known non-audio files.
7239         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
7240         audio sink creation if we can't create the gconfaudiosink. This lets
7241         it work with only gst-plugins-base on 0.10.
7243 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
7245         * rhythmdb/rhythmdb-query-model.c:
7246         (rhythmdb_query_model_set_sort_order):
7247         Fix a tiny memory leak in the previous commit.
7249 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
7251         * rhythmdb/rhythmdb-query-model.c:
7252         (rhythmdb_query_model_set_sort_order):
7253         Don't try to emit reorders for empty query models, since it doesn't
7254         achieve anything and it results in a few warnings.
7256 2005-12-19  William Jon McCann  <mccann@jhu.edu>
7258         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
7259         Make burn dialog non-resizable so that the expander can shrink.
7260         Fixes #308951.
7262 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
7264         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
7265         add entries without a location, rather than those with one.
7267 2005-12-19  James Livingston  <jrl@ids.org.au>
7269         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
7270         the error isn't set.
7272 2005-12-19  James Livingston  <jrl@ids.org.au>
7273         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
7274         add entries without a location. Fixes bug 324290.
7276         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
7277         without a location.
7279         * shell/main.c: (main): don't crash if dbus initialisation fails
7280         without setting an error
7282 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
7284         * sources/rb-library-source.c: Remove unused structure members
7285         (rb_library_source_do_query): Actually use the cached 'all' query.
7286         Fixes #324025.
7287         
7288 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
7290         * sources/rb-audiocd-source.c 
7291         (rb_audiocd_get_cd_info): tab
7292         (rb_audiocd_scan_songs): Return boolean success/failure,
7293         fix error messages a bit.
7294         (metadata_cb): Don't crash if we have no tracks
7295         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
7296         the CD.
7297         Fixes #324222.
7299 2005-12-15  William Jon McCann  <mccann@jhu.edu>
7301         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
7302         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
7303         key.
7305         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
7306         Fixes #324157
7308 2005-12-14  William Jon McCann  <mccann@jhu.edu>
7310         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
7311         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
7312         (fullscreen_changed_cb): 
7313         * lib/rb-preferences.h: 
7314         * data/ui/rhythmbox-ui.xml: 
7315         * data/rhythmbox.schemas:
7316         Add fullscreen mode.
7318         Fixes #324075.
7320 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
7322         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
7323         configure.  It was not working with RPM.
7324         * data/Makefile.am: Switched dbus directory location to use
7325         datadir instead of variable that was not working.
7327 2005-12-13  James Livingston  <jrl@ids.org.au>
7329         patch by: Alex Lancaster <alexl@users.sourceforge.net>
7331         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
7332         the podcast browser work again. Closes bug 323856.
7334 2005-12-12  William Jon McCann  <mccann@jhu.edu>
7336         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
7337         Remove C99ism.
7339         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
7340         (rb_utf_friendly_time):
7341         * lib/rb-cut-and-paste-code.h:
7343         * podcast/rb-feed-podcast-properties-dialog.c:
7344         (rb_feed_podcast_properties_dialog_parse_time):
7345         * podcast/rb-podcast-properties-dialog.c:
7346         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
7347         to display the date in a more user friendly way.
7348         For example, if the feed was updated yesterday it will say:
7349         Last updated: Yesterday 10:00 AM
7350         instead of printing the date.
7352 2005-12-12  William Jon McCann  <mccann@jhu.edu>
7354         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
7355         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
7356         (rb_validate_item_propert, rb_podcast_parser_start_element) 
7357         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
7358         Use RB style.  Check for NULL before strcmp.  No C++ comments.
7359         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
7360         Don't set invalid mime type when mime type is NULL.  Fix leaks.
7361         (rb_podcast_parse_date): Add support for some real world
7362         date formats.
7363         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
7364         (rb_podcast_parse_item_free): Style and no need to check
7365         for NULL before g_free.
7367         May fix #323742
7369 2005-12-12  James Livingston  <jrl@ids.org.au>
7371         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
7372         with gstreamer 0.10, which replaced audioscale.
7374         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
7375         function to free the SoupSession
7377         * shell/rb-source-header.c: (rb_source_header_set_property),
7378         (rb_source_header_disclosure_toggled_cb),
7379         (rb_source_header_view_browser_changed_cb),
7380         (rb_source_header_sync_control_state):
7381         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
7382         * sources/rb-library-source.c: (rb_library_source_class_init):
7383         * sources/rb-source.c: (rb_source_class_init),
7384         (rb_source_get_status), (default_get_browser_key),
7385         (rb_source_get_browser_key), (rb_source_can_browse),
7386         (rb_source_notify_status_changed),
7387         (rb_source_notify_filter_changed):
7388         * sources/rb-source.h: seperate the enabling of browsers from the use
7389         of a gconf key.
7391 2005-12-11  William Jon McCann  <mccann@jhu.edu>
7393         * data/glade/podcast-feed-properties.glade: 
7394         * data/glade/podcast-properties.glade: Use scrolled viewports
7395         for description text.  Fix regression of #320509.
7397 2005-12-11  James Livingston  <jrl@ids.org.au>
7399         * sources/rb-auto-playlist-source.c:
7400         (rb_auto_playlist_source_class_init), (impl_reset_filters),
7401         (impl_search), (rb_auto_playlist_source_do_query),
7402         (rb_auto_playlist_source_set_query),
7403         (rb_auto_playlist_source_get_query): add support for the search box
7404         to automatic playlists.
7406         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
7407         memory leak.
7409 2005-12-11  James Livingston  <jrl@ids.org.au>
7411         * NEWS: update NEWS
7413 2005-12-11  James Livingston  <jrl@ids.org.au>
7415         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
7416         (rhythmdb_load), (monitor_subdirectory),
7417         (rhythmdb_sync_library_location):  start the library sync and
7418         monitoring in an idle callback.
7420 2005-12-10  William Jon McCann  <mccann@jhu.edu>
7422         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
7423         (rb_podcast_source_constructor): Remove unused pixbuf column.
7424         (rb_podcast_source_set_property, rb_podcast_source_get_property):
7425         Use consistent style.
7427         Fixes #322961.
7429 2005-12-11  James Livingston  <jrl@ids.org.au>
7431         * rhythmdb/rhythmdb-property-model.c:
7432         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
7433         (rhythmdb_property_model_insert),
7434         (rhythmdb_property_model_delete_prop):
7435         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
7436         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
7437         (destroy_tree_property):
7438         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
7439         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
7440         GMemChunks, they are crap and deprecated. Improves startup-time and
7441         memory usage slightly.
7443 2005-12-10  William Jon McCann  <mccann@jhu.edu>
7445         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
7446         Added license and website info.
7448         * MAINTAINERS.old: Add Colin.
7449         * MAINTAINERS: Add James.
7450         * AUTHORS: Put back in order.  Add extra space between name and email
7451         to make it easier to read.  Add James and jonathan.
7453         * widgets/rb-song-info.c (rb_song_info_init) 
7454         (rb_song_info_constructor): Make sure close button is primary/rightmost.
7456 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
7458         Play queue implementation. Closes bug 107787.
7460         * data/rhythmbox.schemas: add items for whether the queue should be
7461         displayed as a sidebar, and the height of the sourcelist if it is.
7463         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
7464         playlist, and podcast popups; add 'view queue as sidebar' menu item,
7465         add popups for queue as source and as sidebar.  We need a separate
7466         popup for the sidebar view because otherwise it's hard to tell which
7467         of the visible entry views the action came from.
7469         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
7471         * po/POTFILES.in: Add new file
7473         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
7474         Add helper function for deciding if a podcast episode is available for
7475         playback.
7477         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
7478         reorder entries in the query model.
7479         (idle_process_update): Handle new update type used to insert entries
7480         at a particular position in the query model.
7481         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
7482         parameter to specify the position (-1 meaning 'at the end').
7483         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
7484         parameter.
7485         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
7486         bad entry removal updates for entries that aren't in the model.
7487         (rhythmdb_query_model_emit_reorder): Add helper function for
7488         reordering rows.
7489         (rhythmdb_query_model_move_entry): New method for moving entries
7490         around in the model
7491         (rhythmdb_query_model_entry_added_cb),
7492         (rhythmdb_query_model_update_limited_entries),
7493         (rhythmdb_query_model_do_reorder),
7494         (rhythmdb_query_model_do_insert): Pass through the index parameter,
7495         use rhythmdb_query_model_emit_reorder where appropriate.
7497         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
7498         Don't allow the queue to be deleted.
7499         (handle_playlist_entry_cb): Update for method signature change
7500         (rb_playlist_manager_save_playlists_async),
7501         (rb_playlist_manager_get_playlists): Don't save the play queue,
7502         don't report it as a playlist.
7504         * shell/rb-play-order.c: Include queue play order in the list of
7505         available orders.
7507         * shell/rb-shell.c
7508         (rb_shell_class_init), (rb_shell_get_property): Add new property 
7509         for access to the clipboard object.
7510         (rb_shell_constructor): Handle playing-from-queue signal to update the
7511         sourcelist display; add queue sidebar in to UI, listen for queue
7512         sidebar pane changes, and read initial settings from gconf.
7513         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
7514         Only tell the sourcelist the source has changed if the new source is 
7515         not the queue, as we update the sourcelist differently in that case.
7516         (rb_shell_set_window_title): Only use the cached window title if the
7517         playing state was the same when it was created.
7518         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
7519         (rb_shell_sync_pane_visibility): Only hide the side pane if the
7520         sourcelist is hidden and the queue is shown as a source.
7521         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
7522         mode, since it doesn't make any sense.
7523         (sourcelist_visibility_changed_cb): Update the visibility of the pane
7524         too.
7525         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
7526         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
7527         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
7528         playing from queue shown as sidebar.
7530         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
7531         MusicProperties action here from rb-shell-player.c, since it acts like
7532         cut/copy/paste etc.
7533         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
7534         (rb_shell_clipboard_get_property): new property for queue source.
7535         Watch for selection changes in the sidebar entry view as well as the
7536         normal one.
7537         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
7538         actions and MusicProperties.
7539         (rb_shell_clipboard_cmd_queue_delete),
7540         (rb_shell_clipboard_cmd_add_song_to_queue),
7541         (rb_shell_clipboard_cmd_song_info),
7542         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
7544         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
7545         actually came from (could be the playing source, or the queue), add a 
7546         new play order object for the queue, add a property for the queue
7547         source, add a signal for when we switch between playing from the
7548         source and from the queue.
7549         (rb_shell_player_set_property): Handle playing directly from the
7550         queue so we stop once the queue is empty.  Create queue play order
7551         when we get the queue source.
7552         (rb_shell_player_get_playing_source): Return the source we're actually
7553         playing from.
7554         (rb_shell_player_get_playing_entry): Get playing entry from queue if
7555         that's where it is.
7556         (rb_shell_player_set_playing_entry): Update the queue play order if 
7557         that's where we're playing from.
7558         (rb_shell_player_play_order_update_cb): Take has next/previous for the
7559         queue into consideration too.
7560         (swap_playing_source): Helper function for switching the playing
7561         source.
7562         (rb_shell_player_do_previous): Check the queue, even though there's
7563         never a previous entry in it (yet), swap playing source if it changed.
7564         (rb_shell_player_do_next): Check the queue for entries to play before
7565         the normal play order, and swap playing source if it changed.
7566         (rb_shell_player_do_previous_or_seek): Check the queue for previous
7567         entries to go to as well.
7568         (rb_shell_player_playpause): Check the queue before the selection and
7569         the play order, and swap playing source if it changed.
7570         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
7571         (rb_shell_player_entry_activated_cb): Use
7572         rb_podcast_manager_entry_downloaded, do some tapdancing to make
7573         activating queue entries work properly (move the activated entry to
7574         the start of the queue and then play it); if we were playing from the
7575         queue, clear its playing entry so it'll start again from the start
7576         after the activated entry.
7577         (rb_shell_player_sync_buttons): MusicProperties action handler moved
7578         to rb-shell-clipboard.c
7579         (actually_set_playing_source): Add helper for updating the playing
7580         source.
7581         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
7582         signal if we stop or start doing so; use actually_set_playing_source; 
7583         emit playing-source-changed if we actually did change source.
7585         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
7586         rb_static_playlist_source_add_location.
7588         * sources/rb-library-source.c (rb_library_source_class_init): Allow
7589         enqueueing of songs from the library.
7591         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
7592         enqueueing of sonsg from playlists.
7593         (rb_playlist_source_entry_added_cb): Add extra parameter for
7594         rhythmdb_query_model_add_entry.
7595         
7596         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
7597         Implement (can_)add_to_queue for this class.
7598         (rb_podcast_source_entry_activated): Use
7599         rb_podcast_manager_entry_downloaded.
7600         (impl_can_add_to_queue): Return TRUE if at least one entry that has
7601         been downloaded is selected.
7602         (impl_add_to_queue): Only add downloaded entries to the queue.
7604         * sources/rb-source.{c,h}:
7605         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
7606         methods.
7607         (rb_source_class_init): Don't allow enqueueing by default; implement 
7608         add_to_queue though.
7609         (default_add_to_queue): Add all selected entries to the queue.
7610         
7611         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
7612         would be playing if there wasn't anything in the queue).
7613         (set_source_playing): Helper function for manipulating tree store.
7614         (rb_sourcelist_set_playing_source): Use set_source_playing
7615         (rb_sourcelist_preempt_playing_source): Update preempted source
7616         pointer, manipulate source states.
7618         * sources/rb-static-playlist-source.{c,h}:
7619         (rb_static_playlist_source_add_location_internal),
7620         (rb_static_playlist_source_add_location),
7621         (rb_static_playlist_source_add_entry): Add index parameter for
7622         specifying where in the playlist the new entry goes.
7623         (rb_static_playlist_source_new_from_xml), (impl_paste),
7624         (rb_static_playlist_source_add_list_uri),
7625         (rb_static_playlist_source_add_location_swapped),
7626         (rb_static_playlist_source_add_locations),
7627         (rb_static_playlist_source_non_entry_dropped),
7628         (rb_static_playlist_source_row_inserted):
7629         Handle new index parameter everywhere it appears
7630         (rb_static_playlist_source_move_entry): New method for moving entries
7631         around in the playlist.
7633         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
7634         warnings when trying to scroll entry views that have never been
7635         displayed.
7637         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
7638         play order that removes the old entry when switching to a new one.
7640         * sources/rb-play-queue-source.{c,h}: New files, implementing a
7641         static playlist subclass that has a second entry view for the sidebar
7642         view using alternate formatting, and that displays the number of
7643         entries it contains in its source list entry.
7645 2005-12-10  James Livingston  <jrl@ids.org.au>
7647         * rhythmdb/rhythmdb-query-model.c:
7648         (rhythmdb_query_model_add_entry),
7649         (rhythmdb_query_model_drag_data_received):
7650         * sources/rb-static-playlist-source.c:
7651         (rb_static_playlist_source_non_entry_dropped): when things are
7652         dropped, ignore any blank lines in the list of uris. Make the source
7653         responsible for adding new items to the db.
7655         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
7656         empty string.
7658 2005-12-10  James Livingston  <jrl@ids.org.au>
7660         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7661         (rb_shell_player_sync_buttons),
7662         (rb_shell_player_selection_changed_cb): watch for the
7663         "selection-changed" signal, so that the Song Properties get enabled.
7664         Closes bug 323694.
7666 2005-12-10  James Livingston  <jrl@ids.org.au>
7668         * data/rhythmbox.schemas: fix the gconf schema
7670 2005-12-10  James Livingston  <jrl@ids.org.au>
7672         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
7673         the decoded-pad callback with gstreamer 0.8, it causes problems.
7675 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
7677         Remove more junk from RBEntryView. Closes bug 323640.
7679         * widgets/rb-entry-view.{c,h}:
7680         Remove unused private structure members, replace 'playing' boolean
7681         with an enum (so we know if we're paused too), and store a pointer to
7682         the RBShellPlayer too.  
7683         (rb_entry_view_class_init), (rb_entry_view_set_property),
7684         (rb_entry_view_get_property):
7685         Remove 'entry-selected' and 'changed' signals and
7686         'playing-entry' property, add 'selection-changed' signal and
7687         'shell-player' and 'playing-state' properties.
7688         (rb_entry_view_new): Take the shell player object reference
7689         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
7690         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
7691         No longer needed, shell player is the place to get this information.
7692         (rb_entry_view_busy), (rb_entry_view_get_duration),
7693         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
7694         (rb_entry_view_get_next_from_entry),
7695         (rb_entry_view_get_previous_from_entry),
7696         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
7697         (rb_entry_view_get_num_entries):
7698         Removed, callers should go to the query model directly.
7699         (rb_entry_view_playing_song_changed): Update active query model, emit
7700         row changed signals to update pixbufs, and scroll to the playing song
7701         when the playing song changes, based on a signal from the shell
7702         player.
7703         (queue_changed_sig), (rb_entry_view_row_changed_cb),
7704         (emit_entry_changed): Evil, removed.
7705         (rb_entry_view_selection_changed_cb): Remove old signals, add new
7706         selection-changed signal.
7707         (rb_entry_view_select_none), (rb_entry_view_select_entry):
7708         Remove selection lock.  It didn't work anyway.
7709         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
7710         (rb_entry_view_emit_row_changed): Simple helper function to emit
7711         row-changed signals.
7713         * widgets/Makefile.am: Entry view needs headers from the shell/
7714         directory.
7715         * widgets/rb-song-info.{c,h}: Use the query model for everything except
7717         scrolling the entry view to show the entry being displayed.
7718         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
7719         'source' property so we can watch for query model changes.
7720         (rb_song_info_finalize): Unref objects, disconnect signal handlers
7721         (rb_song_info_set_property): Watch for query model changes, don't
7722         watch for entry view changes.
7723         (rb_song_info_new): Take source as a parameter, use the source's entry
7724         view unless one was specifically supplied.
7725         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
7726         Use query model rather than entry view to move between songs.
7727         (rb_song_info_update_buttons): Use query model.
7728         (rb_song_info_query_model_changed_cb): Handle query model changes.
7730         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
7731         Only one copy of the code to enable/disable the CD burning action
7732         (rb_playlist_manager_playlist_entries_changed):
7733         Use the query model to get the number of entries, not the entry view.
7735         * shell/rb-play-order-random-by-age-and-rating.c,
7736         shell/rb-play-order-random-by-age.c,
7737         shell/rb-play-order-random-by-rating.c,
7738         shell/rb-play-order-random-equal-weights.c:
7739         Use G_DEFINE_TYPE
7741         * shell/rb-shell-player.{c,h}:
7742         Remove a few unused entries from the structure.
7743         (rb_shell_player_set_property):
7744         Don't use the 'changed' signal on the entry view (it's evil)
7745         (rb_shell_player_have_first): No longer needed
7746         (rb_shell_player_play): Just tell the entry view it's playing
7747         (rb_shell_player_playpause): Tell the entry view it's paused
7748         when pausing.
7749         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
7750         (rb_shell_player_property_row_activated_cb):
7751         Get the entry to play using the query model, not the entry view.
7752         (rb_shell_player_sync_buttons): Update entry view state while we're
7753         here.
7754         (rb_shell_player_set_playing_source_internal): Update entry view state
7755         (rb_shell_player_get_playing): Ask the entry view, not the player.
7756         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
7757         and rb_shell_set_window_title work properly, so you get "(Paused)" in
7758         the window title and tray icon tooltip.
7759         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
7761         * sources/rb-iradio-source.c, sources/rb-library-source.c,
7762         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
7763         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
7764         view constructor, pass the source in to the song info widget
7765         constructor.
7767         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
7768         Use 'selection-changed' instead of 'changed', since that's what the
7769         clipboard cares about.
7770         (rb_shell_clipboard_set_source): Don't die if source == NULL
7772 2005-12-10  James Livingston  <jrl@ids.org.au>
7774         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
7775         * sources/rb-playlist-source-recorder.c:
7776         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
7777         stuff not use the deprecated API when compiled against 2.13
7779 2005-12-10  James Livingston  <jrl@ids.org.au>
7781         patch by: Alex Lancaster <alexl@users.sourceforge.net>
7783         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
7784         problem where the genre tag was getting set to the artist. Closes bug
7785         323642.
7787 2005-12-09  William Jon McCann  <mccann@jhu.edu>
7789         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
7790         Return NULL if can't get first iter.
7792         Fixes #323663
7794 2005-12-09  William Jon McCann  <mccann@jhu.edu>
7796         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
7797         updated rb_station_properties_dialog_new API.
7798         (rb_iradio_source_add_from_playlist): New public function.
7799         (rb_iradio_source_first_time_changed): Use add_from_playlist.
7801         * shell/rb-shell.c (new_station_location_added): Handle
7802         iradio location added signal.
7803         (rb_shell_cmd_new_station): Use new iradio station dialog.
7805         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
7806         (rb_station_properties_dialog_new): Don't squeeze new
7807         station functionality into this class.
7808         (rb_station_properties_dialog_response_cb): ditto.
7809         (rb_station_properties_dialog_update_title): Make
7810         consistent with other properties dialogs.
7811         (rb_station_properties_dialog_location_changed_cb): Do nothing.
7813         * iradio/rb-new-station-dialog.[ch]: 
7814         * iradio/Makefile.am: Add new station dialog.
7816         * data/glade/station-new.glade: New file based on
7817         new podcast feed dialog.
7818         * data/glade/station-properties.glade: Updated to
7819         be consistent with song properties dialog.
7821         Fixes #323306.
7823 2005-12-10  James Livingston  <jrl@ids.org.au>
7825         patch by: Ståle Lyngaas <staale@lyngaas.com>
7827         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
7828         submit songs longer than 30 minutes. Fixes bug 323639.
7830 2005-12-09  William Jon McCann  <mccann@jhu.edu>
7832         * shell/rb-shell.c (idle_save_playlist_manager): Use new
7833         async save function.
7834         (rb_shell_finalize): Remove save timeout sources.  Reorder
7835         steps a bit to make saving db and playlists a bit more
7836         failsafe in case something goes wrong later.
7837         (rb_shell_constructor): Keep track of save timeout source.
7838         (add_to_library_response_cb): Keep track of db save timeout source.
7840         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
7841         g_atomic.
7842         (rb_playlist_manager_shutdown): New function to shutdown
7843         threads etc. before exit.
7844         (rb_playlist_manager_finalize): Moved handling outstanding
7845         threads stuff to shutdown since if there are outstanding threads
7846         they hold a ref and finalize is never called.
7847         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
7848         of signal which may be required for sync save.
7849         (rb_playlist_manager_save_playlists_async): Renamed old
7850         save_playlists to save_playlists_async.  Use g_atomic.
7851         (rb_playlist_manager_save_playlists): New function to
7852         perform sync saves (symmetric with RhythmDB API).
7853         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
7855         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
7856         Style consistency anality.
7857         (rhythmdb_finalize): Remove save timeout source.
7858         (rhythmdb_set_property, rhythmdb_get_property) 
7859         (rhythmdb_process_events): More anality and keep track of
7860         save timeout source.
7861         (action_thread_main): No need to call g_thread_exit.
7862         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
7863         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
7864         (write_encoded_gvalue, read_encoded_property): La la la.
7866         Fixes #322940.
7868 2005-12-10  James Livingston  <jrl@ids.org.au>
7870         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
7871         non-audio files.
7873 2005-12-10  James Livingston  <jrl@ids.org.au>
7875         * Makefile.am:
7876         * configure.ac: remove the rpm spec files, so that automake works.
7877         oops
7879         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
7880         locking issue
7882 2005-12-09  James Livingston  <jrl@ids.org.au>
7884         * debian/: try to get cvs to actually remove the files
7886 2005-12-09  James Livingston  <jrl@ids.org.au>
7888         * rhythmbox.spec.in:
7889         * debian/: remove the distro package stuff, they are *really* old, and
7890         downstream manage it anyway.
7892 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
7894         Rework play orders to work off query models rather than 
7895         entry views, and track the playing entry themselves rather
7896         than relying on the entry view to do it.  This makes the entry
7897         view mostly just a widget. Closes bug 323612.
7899         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
7900         Use query model rather than entry view to get the number
7901         of entries in playlists.
7903         * rhythmdb/rhythmdb-query-model.{c.h}
7904         (rhythmdb_query_model_tree_path_to_entry),
7905         (rhythmdb_query_model_iter_to_entry),
7906         (rhythmdb_query_model_get_next_from_entry),
7907         (rhythmdb_query_model_get_previous_from_entry):
7908         New utility functions for iterating through query models.
7909         (rhythmdb_query_model_compute_status_normal):
7910         Have one copy of this code, not four.
7912         * shell/rb-play-order.{c,h}:
7913         Add signals for when next/previous availability changes, and
7914         when the playing entry is removed, and add a property for
7915         the current playing entry.  Add gtkdoc comments too.
7916         (rb_play_order_class_init): Add new property and signals.
7917         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
7918         (rb_play_orer_query_model_changed_cb),
7919         (rb_play_order_query_model_changed): 
7920         Use query model rather than entry view.
7921         (rb_play_order_set_property), (rb_play_order_get_property):
7922         Handle new playing-entry property.  Call playing_entry_changed virtual
7923         method so subclasses can do any processing required.
7924         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
7925         (rb_play_order_set_playing_entry):
7926         Just use the playing-entry property.
7927         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
7928         Utility methods for subclasses.
7929         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
7930         Update next/previous availability, check if the playing entry
7931         was removed.
7932         (default_playing_entry_removed):
7933         Keep the current behaviour of just stopping playback when the 
7934         playing entry is deleted.
7935         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
7936         these for subclasses that don't have go_next/go_previous, but do
7937         have get_next/get_previous.
7938         (rb_play_order_update_have_next_previous): Emit signal if the
7939         availability of next/previous entries has changed.
7941         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
7942         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
7943         Use G_DEFINE_TYPE, replace entry view iterator with query model 
7944         methods.
7945         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
7946         on the last song in the shuffled order, go back to the start. This
7947         means if you press 'play' again you'll get the whole order again, not
7948         just one song.
7950         * shell/rb-shell-player.c:
7951         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
7952         play order rather than the entry view.
7953         (rb_shell_player_set_property): Update the play order when the
7954         selected source changes and we aren't playing anything.
7955         (rb_shell_player_sync_play_order): Copy the playing entry across to
7956         the new play order so playback continues from the same song, and watch
7957         for updates to have_next/have_previous.
7958         (rb_shell_player_play_order_update_cb): Enable/disable the
7959         next/previous actions when next/previous entry availability changes.
7960         (rb_shell_player_jump_to_current): Just use the play order's idea of
7961         what's playing, not the entry view's; if not playing anything, clear
7962         the selection, so when a playlist ends and you hit play again, it'll
7963         start at the start rather than the end.
7964         (rb_shell_player_do_previous): restructure a bit.
7965         (rb_shell_player_do_next): restructure, jump to new playing entry in
7966         an idle handler instead of directly.
7967         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
7968         song if there is one.
7969         (rb_shell_player_playpause): Jump to playing song, don't update the
7970         play order if we got the song from the selection.
7971         (rb_shell_player_playing_entry_deleted_cb): Not needed.
7972         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
7973         looks after next/previous actions now.  Don't break if called while
7974         there is no selected source.
7975         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
7976         (rb_shell_player_set_playing_source_internal),
7977         (rb_shell_player_error): No need to track the attempted playing entry
7978         any more, since the play order does that.
7980         * shell/rb-shell.c:
7981         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
7982         rb_shell_player_get_playing_entry rather than going through the entry
7983         view.
7985         * shell/rb-statusbar.c (rb_statusbar_set_property),
7986         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
7987         than the entry view for status bar text changes.
7988         (rb_statusbar_sync_status): Ask the query model directly
7990         * sources/rb-source.{c}: Add query model property.
7991         (default_get_status): Get status text from query model, should be
7992         suitable for most sources.
7993         (rb_source_set_property): Listen for changes to the query model 
7994         to update the status text.
7995         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
7996         (idle_emit_status_changed): Emit status-changed signals when query
7997         model changes. 
7999         * sources/rb-library-source.c, sources/rb-podcast-source.c:
8000         (impl_get_status): Not needed, RBSource does this now
8001         (rb_library_source_do_query) (rb_podcast_source_do_query): 
8002         Update RBSource's query model reference.
8004         * sources/rb-playlist-source.c:
8005         Remove query-model property, since RBSource has one now
8006         (impl_get_status): Not needed, RBSource does this now
8007         (rb_playlist_source_row_deleted): Use query model iterator helper
8008         function.
8009         (rb_playlist_source_set_query_model): Update RBSource's query model
8010         reference too.
8012         * sources/rb-iradio-source.c:
8013         (impl_get_status): Ask the query model directly.
8014         (rb_iradio_source_do_query): Update RBSource's query model reference
8015         when we create a new query.
8017         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
8018         Use query model rather than entry view.
8020         * widgets/rb-entry-view.{c,h}: 
8021         Remove playing_entry_deleted signal (now in play order).
8022         (entry_from_tree_path), (entry_from_tree_iter): Not needed
8023          as RhythmDBQueryModel has equivalent helper functions.
8024         (rb_entry_view_*): Use query model helpers instead of the above two
8025         functions.
8027 2005-12-09  James Livingston  <jrl@ids.org.au>
8029         * configure.ac:
8030         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
8031         (rb_recorder_enabled):
8032         * shell/rb-removable-media-manager.c: (poll_tray_opened):
8033         * sources/rb-playlist-source-recorder.c:
8034         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
8035         whether libnautilusburn has the _drive_unref function, and if so use
8036         it. Stops it complaining about deprecated API.
8038 2005-12-09  James Livingston  <jrl@ids.org.au>
8040         * configure.ac: drop the minimum gstreamer version back down, it
8041         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
8043 2005-12-09  James Livingston  <jrl@ids.org.au>
8045         * widgets/rb-song-info.c: (rb_song_info_class_init),
8046         (rb_song_info_show), (rb_song_info_constructor),
8047         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
8048         (rb_song_info_forward_clicked_cb): save metadata changes when the
8049         Next/Previous buttons are pressed (closes bug 320952). use
8050         G_DEFINE_TYPE.
8052 2005-12-09  James Livingston  <jrl@ids.org.au>
8054         Patch by: <jonathan@kaolin.hn.org>
8056         * sources/rb-iradio-source.c:
8057         (stations_view_drag_data_received_cb):
8058         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
8059         of urls. Fixes bug 323610.
8061 2005-12-09  James Livingston  <jrl@ids.org.au>
8063          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
8064          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
8066         * configure.ac:
8067         * metadata/rb-metadata-gst.c:
8068         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
8069         (rb_player_construct), (rb_player_new):
8070         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
8071         (rb_recorder_gst_signal_error), (pipe_message),
8072         (rb_recorder_new_pad_cb), (rb_recorder_construct),
8073         (rb_recorder_new):
8074         * shell/main.c: (main):
8075         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
8076         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
8078 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
8080         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
8082         * shell/rb-playlist-manager.c:
8083           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
8084           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
8085           (rb_playlist_manager_set_automatic_playlist),
8086           (rb_playlist_manager_cmd_new_automatic_playlist),
8087           (rb_playlist_manager_cmd_edit_automatic_playlist):
8088            Use new playlist subclasses.
8089           (rb_playlist_manager_save_playlists): Only read the dirty flag
8090            for local playlists, minor pointless reformatting
8092         * sources/Makefile.am: add new files
8094         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
8095           split lots of stuff out into two
8096           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
8097           make RBPlaylistSource abstract, add virtual methods for showing a
8098           popup for the entry view and saving the playlist to XML.
8099           Other stuff is subclass-specific, or already virtual in RBSource.
8101         * sources/rb-playlist-xml: Define playlist XML tags and attributes
8102           in one place, since they're used across three source files now
8104         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
8105           Use new static playlist class
8107         * sources/rb-ipod-source.c: (add_rb_playlist):
8108           Use new static playlist class
8110         * sources/rb-static-playlist-source.{c,h},
8111         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
8112         files.
8114         * po/POTFILES.in: add new files
8116 2005-12-07  James Livingston  <jrl@ids.org.au>
8118         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
8119         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
8120         metadata loads not attempt to write changes to disk.
8122 2005-12-07  James Livingston  <jrl@ids.org.au>
8124         patch by: Alex Lancaster <alexl@users.sourceforge.net>
8126         * data/glade/song-info-multiple.glade:
8127         * widgets/rb-song-info.c: (rb_song_info_constructor),
8128         (rb_song_info_sync_entries_multiple): allow the year to be changed on
8129         multiple songs at once.
8131 2005-12-06  James Livingston  <jrl@ids.org.au>
8133         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
8134         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
8136 2005-12-06  James Livingston  <jrl@ids.org.au>
8138         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
8139         names rather than adding a horizontal scroll bar.
8141 2005-12-06  James Livingston  <jrl@ids.org.au>
8143         * rhythmdb/rhythmdb-query-model.c:
8144         (rhythmdb_query_model_update_limited_entries),
8145         (rhythmdb_query_model_drag_data_received): remove some pointless debug
8146         messages
8148         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
8149         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
8150         always hide rather than remove DB entries, which will make RB not lose
8151         information when tag editing happens or people move files to trash and
8152         then change their mind. Also fix some races where the monitoring code
8153         would notice the temporary files generated by saving metadata.
8155 2005-12-05  William Jon McCann  <mccann@jhu.edu>
8157         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
8158         Hide internals and add tooltips.
8159         (rb_song_display_box_size_allocate): Hide internals.
8160         (sanitize_string, info_url): Copied from rb-header.
8161         (rb_song_display_box_sync): New public function.
8163         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
8164         (rb_header_init): Use a separate row for the seek bar.
8165         (rb_header_finalize): Don't unref widgets.
8166         (rb_header_sync): Use rb_song_display_box_sync.
8167         (rb_header_set_urldata)
8168         (rb_header_set_show_artist_album): Hide instead of remove widgets.
8169         (rb_header_set_show_position_slider): Set visibility of seek bar.
8170         (rb_header_set_show_timeline): Set sensitivity of seek bar.
8171         (rb_header_get_elapsed_string): Don't shift when you first start playback.
8173         * shell/rb-statusbar.c (rb_statusbar_init)
8174         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
8176         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
8177         (rb_shell_constructor): Remove hseparator.  Monitor
8178         toolbar visibility settings.  Add toolbar.  Add
8179         volume button to toolbar.  Add tooltips for volume button.
8180         (rb_shell_view_toolbar_changed_cb) 
8181         (rb_shell_sync_toolbar_visibility)
8182         (toolbar_visibility_changed_cb): Set visibility of
8183         toolbar.
8184         (rb_shell_sync_smalldisplay): Set the toolbar style to
8185         icons only when in small display mode.
8186         (rb_shell_volume_widget_changed_cb): Save volume setting.
8188         * shell/rb-shell-player.c (rb_shell_player_constructor):
8189         Remove pause and stop actions.  Make play action "important"
8190         so that text is visible in horizontal toolbar position.
8191         Remove control buttons.
8192         (rb_shell_player_init) 
8193         (rb_shell_player_sync_song_position_slider_visibility):
8194         Set visbibility of seek bar.
8195         (rb_shell_player_cmd_play, rb_shell_player_playpause):
8196         Make play action a toggle.
8197         (rb_shell_player_sync_volume): Volume control moved
8198         to player.
8199         (gconf_song_position_slider_visibility_changed):
8200         Set visbibility of seek bar.
8201         (rb_shell_player_sync_buttons):
8202         Set sensitivity of actions instead of buttons.
8203         (rb_shell_player_playing_changed_cb): Add callback
8204         for player notify::playing changes.
8206         * lib/rb-preferences.h: Add hide toolbar and seek
8207         bar key names.
8209         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
8210         seek bar menu items.  Remove pause and stop actions
8211         from the control menu.  Add a toolbar.
8213         * data/rhythmbox.schemas: Add toolbar_hidden
8214         song_position_slider_hidden keys.
8216         Patch by: James Livingston  <jrl@ids.org.au>
8217                   William Jon McCann  <mccann@jhu.edu>
8218         Fixes #316238.
8220 2005-12-05  James Livingston  <jrl@ids.org.au>
8222         * data/glade/library-prefs.glade:
8223         * data/rhythmbox.schemas:
8224         * lib/rb-preferences.h:
8225         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
8226         (rhythmdb_sync_library_location):
8227         * sources/rb-library-source.c: (rb_library_source_class_init),
8228         (rb_library_source_finalize), (rb_library_source_constructor),
8229         (impl_get_config_widget), (rb_library_source_preferences_sync),
8230         (rb_library_source_watch_toggled_cb): allow people to disable library
8231         monitoring, because with nothing set the file chooser button selects
8232         the Home folder (and hence that will get monitored).
8234 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
8236         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
8237         attempt to fix problem with RSS parsing showing invalid feed types.
8238         Fixes bug 323153
8240 2005-12-04  James Livingston  <jrl@ids.org.au>
8242         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
8243         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
8244         importing a remote directory not block the UI.
8246 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
8248         * data/glade/podcast-feed-properties.glade:
8249         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
8251 2005-12-04  James Livingston  <jrl@ids.org.au>
8253         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
8255         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
8256         to && to fix a mistake in the earlier podcast patch.
8258 2005-12-03  James Livingston  <jrl@ids.org.au>
8260         * data/glade/podcast-new.glade:
8261         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
8262         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
8264         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
8265         GValue, which stops occasional errors.
8267         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
8268         compile issue.
8270 2005-12-03  James Livingston  <jrl@ids.org.au>
8272         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
8274         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
8275         crasher with some podcasts feeds.
8277 2005-12-03  James Livingston  <jrl@ids.org.au>
8279         * data/rhythmbox.schemas: fix the gconf schema
8281 2005-12-03  James Livingston  <jrl@ids.org.au>
8283         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
8284         add a selection timeout to the sourcelist. This lets you hold a track
8285         over the playlist source, and then have the view switch so you can
8286         insert the track in the middle of the playlist. Closes bug 323044.
8288         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
8289         (select_on_drag_timeout), (remove_select_on_drag_timeout),
8290         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
8291         (rb_tree_dnd_add_drag_dest_support):
8292         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
8293         timeout.
8295         * sources/rb-sourcelist-model.c:
8296         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
8297         the source list.
8299 2005-12-02  Bastien Nocera  <hadess@hadess.net>
8301         * data/glade/audioscrobbler-prefs.glade: add a space before the web
8302         links, so that the text doesn't touch the button
8304 2005-12-02  James Livingston  <jrl@ids.org.au>
8306         Add full support for gnome-vfs remote files. Closes bug 140355.
8308         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
8309         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
8310         for authentication information from the user doesn't block the UI.
8312         (rhythmdb_entry_set_visibility): don't emit the signal twice.
8314         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
8315         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
8316         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
8317         (rhythmdb_process_stat_event), (emit_load_error_idle),
8318         (rhythmdb_process_metadata_load),
8319         (rhythmdb_process_queued_entry_set_event),
8320         (rhythmdb_process_file_created_or_modified),
8321         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
8322         (queue_stat_uri), (add_thread_main),
8323         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
8324         (rhythmdb_load), (rhythmdb_save_thread_main),
8325         (threadsafe_entry_set), (rhythmdb_query_internal),
8326         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
8327         (rhythmdb_do_full_query_internal),
8328         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
8329         (rhythmdb_volume_unmounted_cb),
8330         (rhythmdb_check_changed_file): trivial changes to support the
8331         asynchronous stats.
8333         * shell/main.c: (main): activate the authentication manager.
8335         * shell/rb-playlist-manager.c:
8336         (rb_playlist_manager_cmd_load_playlist),
8337         (rb_playlist_manager_cmd_save_playlist):
8338         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
8339         (rb_shell_cmd_add_file_to_library):
8340         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
8341         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
8342         remote files.
8344 2005-12-02  James Livingston  <jrl@ids.org.au>
8346         * shell/rb-playlist-manager.c: makes playlist menu items use the
8347         elipses correctly. Fixes bug 322283.
8349 2005-12-02  James Livingston  <jrl@ids.org.au>
8351         * shell/rb-playlist-manager.c:
8352         (rb_playlist_manager_load_playlists): fix silly mistake
8354 2005-12-02  James Livingston  <jrl@ids.org.au>
8356         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
8357         print out metadata-write unless --debug was passed.
8359         * rhythmdb/rhythmdb.c: (rhythmdb_load):
8360         * shell/rb-playlist-manager.c:
8361         (rb_playlist_manager_load_playlists): block writes to disk if they are
8362         still being loaded.
8364 2005-12-02  James Livingston  <jrl@ids.org.au>
8366         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
8367         ctrl-T, because Ctrl-D is used by "small mode"
8369 2005-12-02  James Livingston  <jrl@ids.org.au>
8371         * shell/rb-shell-preferences.c:
8372         (rb_shell_preferences_append_view_page):
8373         * sources/rb-library-source.c: (impl_get_config_widget):
8374         * sources/rb-podcast-source.c: (impl_get_config_widget):
8375         * sources/rb-source.c: (rb_source_get_config_widget):
8376         * sources/rb-source.h: Make the preference actually work.
8378         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
8379         if Rhythmbox is being run for the first time.
8381 2005-12-02  James Livingston  <jrl@ids.org.au>
8383         Add support for Rhythmbox to watch your library, and automatically add
8384         new tracks. Fixes bug 160159.
8386         * data/glade/library-prefs.glade: add "library location" preference
8387         * data/rhythmbox.schemas: add gconf key for the library location
8389         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
8390         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
8391         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
8392         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
8393         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
8394         (rhythmdb_load_thread_main), (rhythmdb_load),
8395         (monitor_subdirectory), (monitor_library_directory),
8396         (monitor_entry_file), (rhythmdb_sync_library_location),
8397         (library_location_changed_cb), (rhythmdb_check_changed_file),
8398         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
8399         specifiec in the gconf key for new additions. Also fix monitoring code
8400         so that it works properly, and notices deletions.
8402         * lib/rb-preferences.h:
8403         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
8404         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
8405         * shell/rb-audioscrobbler.h:
8406         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
8407         (rb_shell_preferences_append_view_page),
8408         (rb_shell_preferences_new):
8409         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
8410         it's preferences pane, so that we don't need #ifdef's through
8411         rb-shell-preferences.
8413         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
8414         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
8415         "preferences" property, so that sources can acccess it. This is needed
8416         because the library location pref needs to take effect when the window
8417         is closed.
8419         * sources/rb-library-source.c:
8420         (rb_library_source_library_location_changed),
8421         (rb_library_source_dispose), (rb_library_source_finalize),
8422         (rb_library_source_constructor), (impl_get_config_widget),
8423         (rb_library_source_preferences_sync),
8424         (rb_library_source_process_library_location_change),
8425         (rb_library_source_prefs_update),
8426         (rb_library_source_process_library_handle_selection),
8427         (rb_library_source_library_location_cb): set up and control the
8428         "library location" preference.
8430         * sources/rb-audiocd-source.c:(rb_source_class_init):
8431         * sources/rb-source.c: (rb_source_class_init): remove some pointless
8432         code.
8434 2005-12-01  William Jon McCann  <mccann@jhu.edu>
8436         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
8437         (rb_feed_podcast_properties_dialog_update_title): 
8438         * data/glade/podcast-feed-properties.glade:
8439         Make the feed properties dialog consistent with the podcast
8440         properties dialog.
8442 2005-12-01  William Jon McCann  <mccann@jhu.edu>
8444         * metadata/.cvsignore: 
8445         * po/.cvsignore: 
8446         * podcast/.cvsignore: Updated.
8448         * shell/main.c (main): Support DBus 0.6 flags.
8450 2005-11-30  Bastien Nocera  <hadess@hadess.net>
8452         * data/ui/rhythmbox-ui.xml:
8453         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
8454         (rhythmbd_entry_move_to_trash_set_error),
8455         (rhythmdb_entry_move_to_trash):
8456         * rhythmdb/rhythmdb.h:
8457         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
8458         (rb_shell_clipboard_cmd_delete),
8459         (rb_shell_clipboard_cmd_move_to_trash):
8460         * sources/rb-library-source.c: (rb_library_source_class_init),
8461         (impl_delete), (impl_move_to_trash):
8462         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
8463         (impl_delete), (impl_move_to_trash):
8464         * sources/rb-removable-media-source.c:
8465         (rb_removable_media_source_class_init):
8466         * sources/rb-source.c: (rb_source_class_init),
8467         (rb_source_can_move_to_trash), (rb_source_delete),
8468         (rb_source_move_to_trash):
8469         * sources/rb-source.h:
8470         Add move_to_trash member for the sources, implement move to trash for
8471         the library and playlists
8472         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
8473         local files to the trash, and deleting them from the database
8474         (Closes: #315389)
8476 2005-11-30  William Jon McCann  <mccann@jhu.edu>
8478         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
8479         (rb_tray_icon_init, rb_tray_icon_finalize): 
8480         * shell/rb-statusbar.c (rb_statusbar_class_init) 
8481         (rb_statusbar_init, rb_statusbar_finalize): 
8482         * shell/rb-source-header.c (rb_source_header_class_init) 
8483         (rb_source_header_init, rb_source_header_finalize): 
8484         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
8485         (rb_shell_finalize): 
8486         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
8487         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
8488         * shell/rb-shell-player.c (rb_shell_player_class_init) 
8489         (rb_shell_player_init, rb_shell_player_finalize): 
8490         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
8491         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
8492         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
8493         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
8494         * shell/rb-play-order.c (rb_play_order_class_init) 
8495         (rb_play_order_init, rb_play_order_finalize): 
8496         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
8497         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
8498         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
8499         (rb_random_play_order_init, rb_random_play_order_finalize): 
8500         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
8501         (rb_history_finalize): 
8502         * shell/rb-commander.c (rb_commander_class_init) 
8503         (rb_commander_init, rb_commander_finalize): 
8504         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
8505         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
8506         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
8507         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
8508         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
8509         (rb_podcast_properties_dialog_init) 
8510         (rb_podcast_properties_dialog_finalize): 
8511         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
8512         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
8513         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
8514         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
8515         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
8516         (rb_feed_podcast_properties_dialog_init) 
8517         (rb_feed_podcast_properties_dialog_finalize): 
8518         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
8519         (rb_metadata_init, rb_metadata_finalize): 
8520         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
8521         (rb_station_properties_dialog_init) 
8522         (rb_station_properties_dialog_finalize): 
8523         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
8524         (rb_daap_share_init, rb_daap_share_dispose): 
8526         Use g_type_class_add_private in all classes. Closes bug 313688.
8527         
8528 2005-11-30  James Livingston  <jrl@ids.org.au>
8530         patch by: William Jon McCann <mccann@jhu.edu> to use
8531         g_type_class_add_private in all classes. Closes bug 313688.
8533         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
8534         (rb_thread_finalize):
8535         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
8536         (rb_player_finalize):
8537         * rhythmdb/rhythmdb-property-model.c:
8538         (rhythmdb_property_model_class_init),
8539         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
8540         * rhythmdb/rhythmdb-query-model.c:
8541         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
8542         (rhythmdb_query_model_finalize):
8543         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
8544         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
8545         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
8546         (rhythmdb_finalize):
8547         * sources/rb-daap-source.c: (rb_daap_source_class_init),
8548         (rb_daap_source_init), (rb_daap_source_dispose):
8549         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
8550         (rb_iradio_source_init), (rb_iradio_source_finalize):
8551         * sources/rb-library-source.c: (rb_library_source_class_init),
8552         (rb_library_source_init), (rb_library_source_finalize):
8553         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
8554         (rb_playlist_source_init), (rb_playlist_source_dispose):
8555         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
8556         (rb_podcast_source_init), (rb_podcast_source_finalize):
8557         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
8558         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
8559         * sources/rb-sourcelist-model.h:
8560         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
8561         (rb_sourcelist_init), (rb_sourcelist_finalize):
8562         * sources/rb-sourcelist.h:
8563         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
8564         * widgets/rb-cell-renderer-rating.c:
8565         (rb_cell_renderer_rating_init),
8566         (rb_cell_renderer_rating_class_init),
8567         (rb_cell_renderer_rating_finalize):
8568         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
8569         (rb_druid_finalize):
8570         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8571         (rb_entry_view_init), (rb_entry_view_finalize):
8572         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
8573         (rb_header_finalize):
8574         * widgets/rb-load-failure-dialog.c:
8575         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
8576         (rb_load_failure_dialog_finalize):
8577         * widgets/rb-property-view.c: (rb_property_view_class_init),
8578         (rb_property_view_init), (rb_property_view_finalize):
8579         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
8580         (rb_rating_finalize):
8581         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
8582         (rb_search_entry_init), (rb_search_entry_finalize):
8583         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
8584         (rb_simple_view_init), (rb_simple_view_finalize):
8585         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
8586         (rb_song_display_box_init), (rb_song_display_box_finalize):
8587         * widgets/rb-song-info.c: (rb_song_info_class_init),
8588         (rb_song_info_init), (rb_song_info_finalize):
8589         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
8590         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
8592 2005-11-30  James Livingston  <jrl@ids.org.au>
8594         * iradio/rb-station-properties-dialog.c:
8595         (rb_station_properties_dialog_init),
8596         (rb_station_properties_dialog_new):
8597         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
8598         * lib/rb-glade-helpers.h:
8599         * podcast/rb-feed-podcast-properties-dialog.c:
8600         (rb_feed_podcast_properties_dialog_init),
8601         (rb_feed_podcast_properties_dialog_new):
8602         * podcast/rb-podcast-properties-dialog.c:
8603         (rb_podcast_properties_dialog_init),
8604         (rb_podcast_properties_dialog_new):
8605         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
8606         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
8607         * sources/rb-library-source.c: (impl_get_config_widget):
8608         * sources/rb-playlist-source-recorder.c:
8609         (rb_playlist_source_recorder_init):
8610         * widgets/rb-song-info.c: (rb_song_info_construct_single),
8611         (rb_song_info_constructor): create a single rb_glade_boldify_label()
8612         in rb-glade-helpers, rather than having eight implementation
8613         throughout the code.
8615 2005-11-30  James Livingston  <jrl@ids.org.au>
8617         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
8618         * lib/rb-util.h:
8619         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
8620         move the duration->string function into rb-utils, as it gets used in a
8621         few places.
8623         patch by: William Jon McCann <mccann@jhu.edu>
8625         * data/glade/podcast-properties.glade:
8626         * podcast/rb-podcast-properties-dialog.c:
8627         (rb_podcast_properties_dialog_init),
8628         (rb_podcast_properties_dialog_update),
8629         (rb_podcast_properties_dialog_update_title),
8630         (rb_podcast_properties_dialog_update_feed),
8631         (rb_podcast_properties_dialog_update_duration),
8632         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
8633         info dialog look more like the song info dialog. Use the same "Feed"
8634         value that is displayed in the treeview (ie. the album field), displays
8635         the duration, uses units in the bitrate field, and sort the fields in
8636         the same order.
8638 2005-11-29  James Livingston  <jrl@ids.org.au>
8640         * rhythmdb/rhythmdb-marshal.list:
8641         * rhythmdb/rhythmdb.h:
8642         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
8643         (emit_load_error_idle), (rhythmdb_process_metadata_load),
8644         (entry_to_rb_metadata), (emit_save_error_idle),
8645         (action_thread_main): emit error signal when metadata write fails.
8647         * shell/rb-shell.c: (rb_shell_constructor),
8648         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
8649         "metadata save" error and display it to the user.
8651 2005-11-29  James Livingston  <jrl@ids.org.au>
8653         * data/ui/rhythmbox-ui.xml:
8654         * sources/rb-podcast-source.c:
8655         (rb_podcast_source_songs_show_popup_cb),
8656         (rb_podcast_source_cmd_download_post),
8657         (rb_podcast_source_cmd_cancel_download): split download and cancel
8658         download commands. Replace usage of "Post" with "Esisode". Fixes bug
8659         321653.
8661 2005-11-18  William Jon McCann  <mccann@jhu.edu>
8663         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
8664         title on alert dialogs per the HIG.
8666         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
8667         the term Burn.
8668         (free_song_list): Routine to free song list.
8669         (rb_playlist_source_recorder_finalize): Use free_song_list.
8670         (rb_playlist_source_recorder_add_from_model): Return FALSE
8671         if unable to add all songs.  Check that duration of all
8672         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
8673         Fixes #321753.
8675         * sources/rb-playlist-source-recorder.c (check_media_length)
8676         (rb_playlist_source_recorder_start): Only check the duration
8677         and current media if the playlist length is longer than a
8678         standard CD (74 min).  Otherwise, just let the Recorder do the
8679         check.
8680         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
8681         drive at init.
8682         (rb_recorder_set_device): Don't leak drives.
8683         (rb_recorder_get_media_length): Use drive that was already set.
8684         (rb_recorder_burn): Let the recorder handle checking media type/size.
8685         Fixes bug 321754.
8687 2005-11-29  James Livingston  <jrl@ids.org.au>
8689         * rhythmdb/rhythmdb-query-model.c:
8690         (rhythmdb_query_model_set_sort_order):
8691         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
8692         emitting the tree-model "resorted" signal.
8694         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8695         (rb_entry_view_finalize), (rb_entry_view_set_property),
8696         (rb_entry_view_constructor), (rb_entry_view_resort_model):
8697         * widgets/rb-entry-view.h: add a function to resort the entry view,
8698         using the above function.
8700         * sources/rb-iradio-source.c:
8701         (rb_iradio_source_songs_view_sort_order_changed_cb):
8702         * sources/rb-library-source.c: (rb_library_source_finalize),
8703         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
8704         * sources/rb-playlist-source.c:
8705         (rb_playlist_source_songs_sort_order_changed_cb):
8706         * sources/rb-podcast-source.c:
8707         (rb_podcast_source_posts_view_sort_order_changed_cb),
8708         (rb_podcast_source_do_query): use the above function instead of
8709         re-creating the query model. This makes changing the sorting an order
8710         of magnitude faster, as it uses a single resorted signal rather than
8711         deleting and re-adding everything (which emits 2N signals). Closes bug
8712         315389.
8714 2005-11-29  James Livingston  <jrl@ids.org.au>
8716         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
8717         autosizing, which results in large speedups. Closes bug 312122.
8719         * po/ja.po: change the date format, so that it is a constant width
8721         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8722         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8723         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
8724         (rb_entry_view_constructor): make columns use fixed widths,
8725         disable column autosizing, and enable fixed-height mode.
8727         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
8728         (rb_entry_view_get_time_date_column_sample):
8729         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
8730         and get the canonical date format for the locale.
8732 ============ Version 0.9.2
8734 2005-11-28  James Livingston  <jrl@ids.org.au>
8736         * configure.ac: bump version to 0.9.2
8737         * NEWS: update with changes for 0.9.2
8739 2005-11-28  James Livingston  <jrl@ids.org.au>
8741         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
8743         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
8744         Disable saving, renaming and delting for DAAP playlists.
8745         Fixes bug 322627.
8747 2005-11-28  James Livingston  <jrl@ids.org.au>
8749         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
8750         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
8751         prevent bug 322619.
8753         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
8754         * sources/rb-removable-media-source.c:
8755         (rb_removable_media_source_class_init): fix ipod browser visibility
8756         problem.
8758 2005-11-28  James Livingston  <jrl@ids.org.au>
8760         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
8761         Avahi 0.6 support actually work. Fixes bug 322519.
8763 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
8765         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
8766         avahi is specified in --with-mdns
8768 2005-11-27  James Livingston  <jrl@ids.org.au>
8770         patch by: Bastien Nocera <hadess@hadess.net>
8772         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
8773         not the private one. Fixes bug 322485.
8775 2005-11-26  James Livingston  <jrl@ids.org.au>
8777         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
8778         Avahi 0.6, as well as 0.5.
8780         * configure.ac:
8781         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
8782         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
8783         (add_service):
8785 2005-11-25  James Livingston  <jrl@ids.org.au>
8787         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
8788         321926.
8790 2005-11-25  James Livingston  <jrl@ids.org.au>
8792         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
8793         correct type for checking the date against 0. Stops a warning when
8794         saving metadata.
8796 2005-11-25  James Livingston  <jrl@ids.org.au>
8798         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
8799         adjustment to be inside the element's limits. Without this songs that
8800         have large ReplayGain values will recieve no increase because they are
8801         outside the acceptable range, causing them to remain quiet.
8803 2005-11-25  James Livingston  <jrl@ids.org.au>
8805         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
8806         * sources/rb-daap-source.c: (rb_daap_source_class_init):
8807         * sources/rb-ipod-source.c:
8808         * sources/rb-source.h:
8809         * sources/rb-library-source.h:
8810         * sources/rb-library-source.c: (rb_library_source_class_init),
8811         (rb_library_source_constructor),
8812         (rb_library_source_has_first_added_column),
8813         (rb_library_source_has_drop_support):
8814         * sources/rb-removable-media-source.c:
8815         (rb_removable_media_source_class_init): Make library-derived sources
8816         not show the Date Added column, as it doesn't make sense. Fixes bug
8817         322269.
8818         Move some of the feature funcs from the ipod and audio cd sources up to
8819         the removable media source.
8821 2005-11-24  James Livingston  <jrl@ids.org.au>
8823         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
8824         errors. oops.
8826 2005-11-24  James Livingston  <jrl@ids.org.au>
8828         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
8829         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
8830         (rb_iradio_source_constructor): Chain up dispose method and use
8831         G_DEFINE_TYPE
8833 2005-11-24  James Livingston  <jrl@ids.org.au>
8835         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
8836         mistake in the last commit that can cause crashes.
8838 2005-11-24  James Livingston  <jrl@ids.org.au>
8840         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
8841         instead of g_printerr.
8843         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
8844         rb_debug instead of g_warning. The message happens every time for
8845         removable media/daap shares, so it's not unusual.
8847 2005-11-24  James Livingston  <jrl@ids.org.au>
8849         patch by: Tom Parker <palfrey@tevp.net>
8851         * configure.ac: fix libsoup test for enabling daap
8853 2005-11-23  James Livingston  <jrl@ids.org.au>
8855         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
8856         (rb_query_creator_init), (rb_query_creator_constructor),
8857         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
8858         empty row to queries with no criteria. Fixes bug 322078. use
8859         G_DEFINE_TYPE.
8861 2005-11-23  James Livingston  <jrl@ids.org.au>
8863         patch by:  <baptiste.millemathias@gmail.com>
8865         * help/C/quick-reference.xml: update the quick reference to have the
8866         correct key bindings.
8868 2005-11-22  James Livingston  <jrl@ids.org.au>
8870         * sources/rb-library-source.c: (genres_selection_reset_cb),
8871         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
8872         reset the query when all browser selections are removed.
8874 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
8876         * podcast/rb-podcast-manager.c:
8877         (rb_podcast_manager_db_entry_deleted_cb):
8878         Use a custom loop to remove podcast posts, rather than
8879         gtk_tree_model_foreach(), as deleting the entries within
8880         that loop causes the iterator to return the first entry
8881         twice.  Instead, we need to find the next entry before
8882         removing the current one. Fixes bug 321956.
8883         (rb_podcast_manager_entry_remove_cb): No longer needed.
8885 2005-11-22  James Livingston  <jrl@ids.org.au>
8887         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
8888         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
8889         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
8891 2005-11-22  James Livingston  <jrl@ids.org.au>
8893         * sources/rb-podcast-source.c:
8894         (rb_podcast_source_post_date_cell_sort_func),
8895         (rb_podcast_source_post_status_cell_sort_func),
8896         (rb_podcast_source_post_feed_cell_sort_func):
8897         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
8898         (rb_entry_view_album_sort_func),
8899         (rb_entry_view_double_ceiling_sort_func),
8900         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
8901         the entry's location as a last resort when sorting, so the sort order
8902         is stable. This will stop entries moving around when two entries have
8903         the same sorting, and one of them gets played.
8905 2005-11-22  James Livingston  <jrl@ids.org.au>
8907         * daapsharing/rb-daap-connection.c:
8908         (rb_daap_connection_class_init), (rb_daap_connection_init),
8909         (connection_get_password), (build_message),
8910         (http_response_handler), (http_get), (handle_server_info),
8911         (handle_login), (handle_update), (handle_database_info),
8912         (handle_song_listing), (handle_playlists),
8913         (handle_playlist_entries), (rb_daap_connection_new),
8914         (rb_daap_connection_constructor), (rb_daap_connection_logout),
8915         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
8916         (rb_daap_connection_get_headers),
8917         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
8918         (rb_daap_connection_set_property),
8919         (rb_daap_connection_get_property):
8920         * daapsharing/rb-daap-connection.h:
8921         * sources/rb-daap-source.c: (rb_daap_source_dispose),
8922         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
8923         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
8924         of destroying the object when it is going to be used by a callback and
8925         fixes a double-free. Fixes bugs 321930 and 322007.
8927 2005-11-22  James Livingston  <jrl@ids.org.au>
8929         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
8930         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
8931         notification if there aren't any. Fixes bug 321968.
8933 2005-11-22  James Livingston  <jrl@ids.org.au>
8935         * rhythmdb/rhythmdb-property-model.c:
8936         (rhythmdb_property_model_set_property),
8937         (rhythmdb_property_model_finalize),
8938         (rhythmdb_property_model_compare),
8939         (rhythmdb_property_model_insert),
8940         (rhythmdb_property_model_delete_prop): Fix property model sorting
8941         where the display and sort keys are different. Fixes bug 321980.
8943 2005-11-22  James Livingston  <jrl@ids.org.au>
8945         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
8946         when import as a file or passed on the command line, and load them as
8947         playlists.
8949 2005-11-22  James Livingston  <jrl@ids.org.au>
8951         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
8953         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
8954         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
8955         a broken daap server. Fixes bug 321919.
8957 2005-11-22  James Livingston  <jrl@ids.org.au>
8959         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
8960         drag-and-drop for both the episodes and feeds list.
8961         
8962         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
8963         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
8964         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
8966         * widgets/rb-property-view.c: (rb_property_view_class_init),
8967         (rb_property_view_set_property), (rb_property_view_get_property),
8968         (rb_property_view_new), (rb_property_view_constructor):
8969         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
8970         (rb_simple_view_new), (rb_simple_view_constructor):
8971         * widgets/rb-simple-view.h: add a "draggable" property to property
8972         views and set it to false for the feed list. Fixes bug 321284.
8974 2005-11-22  James Livingston  <jrl@ids.org.au>
8976         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
8978         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
8979         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
8980         * sources/rb-ipod-source.c: (add_rb_playlist):
8981         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
8982         (rb_playlist_source_set_property),
8983         (rb_playlist_source_get_property), (rb_playlist_source_new),
8984         (impl_receive_drag), (rb_playlist_source_add_location),
8985         (rb_playlist_source_new_from_xml):
8986         * sources/rb-playlist-source.h: give playlists and (optional)
8987         entry-type, and reject entries that don't match. Fixes bug 322006.
8989 2005-11-21  James Livingston  <jrl@ids.org.au>
8991         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
8992         (rb_source_header_finalize): remove the weak references when the
8993         source header is finalised. Stops the callbacks being called after the
8994         object is destroyed.
8996 2005-11-21  James Livingston  <jrl@ids.org.au>
8998         * shell/main.c: (main): don't try to acquite bonobo/dbus when
8999         --no-registration was passed. It causes warnings that make it
9000         impossible to run with --no-registration --g-fatal-warnings
9002 2005-11-21  James Livingston  <jrl@ids.org.au>
9004         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
9005         of strings when they are still in use. Fixes bug 321547.
9007         (rb_daap_connection_destroy): fix memory leak
9009 2005-11-21  James Livingston  <jrl@ids.org.au>
9011         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
9012         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
9013         (rb_daap_mdns_resolve_cancel), (publish_cb),
9014         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
9015         support.
9017 2005-11-21  James Livingston  <jrl@ids.org.au>
9019         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
9020         sorting by genre
9022 2005-11-20  James Livingston  <jrl@ids.org.au>
9024         * podcast/rb-podcast-manager.c:
9025         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
9026         that we don't leak thread structures. Fixes bug 321636, and probably
9027         321775.
9029 2005-11-20  James Livingston  <jrl@ids.org.au>
9031         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
9032         (lookup_cd):
9033         * podcast/rb-podcast-manager.c: (start_job),
9034         (rb_podcast_manager_db_entry_deleted_cb),
9035         (rb_podcast_manager_entry_remove_cb):
9036         * podcast/rb-podcast-parse.c: (rb_insert_item),
9037         (rb_podcast_parse_load_feed):
9038         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
9039         * shell/rb-removable-media-manager.c:
9040         (rb_removable_media_manager_append_media_source):
9041         * shell/rb-shell.c: (add_to_library_response_cb):
9042         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
9043         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
9044         * sources/rb-iradio-source.c:
9045         (stations_view_drag_data_received_cb):
9046         * sources/rb-library-source.c: (string_list_equal),
9047         (impl_get_extra_views), (impl_receive_drag):
9048         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
9049         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
9050         (impl_receive_drag):
9051         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
9052         (rb_entry_view_append_column_custom), (harvest_entries):
9053         * widgets/rb-property-view.c:
9054         (rb_property_view_selection_changed_cb):
9055         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
9056         switch from using g_list_append to g_list_prepend. This changes
9057         operations from O(n^2) to O(n), which in cases like deleting a lot of
9058         tracks can give huge improvements in speed. Closes bug 321696.
9060 2005-11-20  James Livingston  <jrl@ids.org.au>
9062         * sources/rb-sourcelist.c: (rb_sourcelist_init),
9063         (rb_sourcelist_update_expander_visibility): fix indenting of child
9064         sources.
9066 2005-11-20  James Livingston  <jrl@ids.org.au>
9068         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
9069         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
9070         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
9071         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
9072         (add_service), (entry_group_cb): dynamically allocate memory, rather
9073         than using static variables.
9075         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
9076         re-enable the daap share if the name hasn't changed.
9077         * shell/rb-shell-preferences.c:
9078         (share_name_entry_focus_out_event_cb): don't ask the daap share to
9079         change it's name when the checkbox is disabled. Fixed bug 321748.
9081 2005-11-18  James Livingston  <jrl@ids.org.au>
9083         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
9084         as hidden if it is on the current workspace.
9086 2005-11-17  William Jon McCann  <mccann@jhu.edu>
9088         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
9089         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
9090         (rb_podcast_properties_dialog_parse_time): 
9091         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
9092         (rb_feed_podcast_properties_dialog_parse_time):
9093         Rework the way the last mod time strings are created.  It was using
9094         thread unsafe functions, not creating value UTF, and not not checking
9095         the value of the result before modifying it.  This new method fixes
9096         these problems.
9098 2005-11-18  James Livingston  <jrl@ids.org.au>
9100         Don't reset the search box when viewing a different source, because it
9101         will change what is being played. Closes 321593.
9103         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
9104         the search box
9106         * shell/rb-source-header.c: (rb_source_header_class_init),
9107         (rb_source_header_init), (rb_source_header_finalize): use
9108         G_DEFINE_TYPE.
9110         (rb_source_header_set_property),
9111         (rb_source_header_source_weak_destroy_cb),
9112         (rb_source_header_search_cb): store the search text when leaving a
9113         source and put it in the search box when viewing it again.
9115 2005-11-18  James Livingston  <jrl@ids.org.au>
9117         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9118         (save_entry):
9119         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
9120         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
9121         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
9122         time stamp.
9124         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
9125         last-seen as the timestamp of the last update of the feed. Don't
9126         re-add episodes that have been deleted. Closes 319759.
9128 2005-11-18  James Livingston  <jrl@ids.org.au>
9130         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
9131         that don't have the day name at the start. Closes 321645.
9133 2005-11-18  James Livingston  <jrl@ids.org.au>
9135         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
9136         (rb_podcast_manager_copy_post),
9137         (rb_podcast_manager_get_podcast_dir):
9138         * podcast/rb-podcast-manager.h:
9139         * sources/rb-podcast-source.c: (impl_get_config_widget),
9140         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
9141         download location switching to / if the prefs were opened before
9142         downloading an episode. Closes 321611.
9144 2005-11-18  James Livingston  <jrl@ids.org.au>
9146         * data/glade/podcast-new.glade:
9147         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
9148         (rb_new_podcast_dialog_set_property),
9149         (rb_new_podcast_dialog_get_property),
9150         (rb_new_podcast_dialog_response_cb),
9151         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
9152         for entering new podcast urls in. Closes bug 321610.
9154 2005-11-18  James Livingston  <jrl@ids.org.au>
9156         * sources/rb-podcast-source.c: (construct_query_from_selection),
9157         (rb_podcast_source_do_query): allow podcast list to be re-sorted
9158         without restarting RB. Closes bug 321612.
9160 2005-11-18  James Livingston  <jrl@ids.org.au>
9162         * widgets/rb-entry-view.c: (set_column_visibility),
9163         (rb_entry_view_sync_columns_visible): when changing visibility of one
9164         column, don't hide and re-show all the others. Makes a show/hide
9165         column operation a lot faster.
9167 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
9169         Closes bug 321702.
9171         * iradio/rb-station-properties-dialog.c
9172          (rb_station_properties_dialog_update_bitrate):
9173         Mark the bitrate value as being kbps, using the same
9174         translatable format string as rb-song-info.c
9176         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
9177          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
9179         * shell/rb-shell-player.c (info_available_cb):
9180          Use RB_METADATA_FIELD_BITRATE to update the iradio
9181          station's bitrate value.
9183 2005-11-17  James Livingston  <jrl@ids.org.au>
9185         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
9187         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
9188         free a NULL date.
9190 2005-11-17  James Livingston  <jrl@ids.org.au>
9192         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
9194         * lib/rb-stock-icons.c: emit a single warning rather than multiple
9195         assertions. Lookup the icon size correctly.
9197 2005-11-16  William Jon McCann  <mccann@jhu.edu>
9199         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
9200         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
9201         Fix build errors.
9203 2005-11-16  James Livingston  <jrl@ids.org.au>
9205         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
9206         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
9207         (rb_shell_preferences_sync_column_button): block the toggle signal of
9208         the column checkboxes while setting their initial state. This stops
9209         the visibility being re-set, which causes a lot of time being spent
9210         measuring the columns aagin when opening the prefs window.
9212         Use G_DEFINE_TYPE.
9214 2005-11-16  James Livingston  <jrl@ids.org.au>
9216         * sources/rb-sourcelist.c: (rb_sourcelist_init),
9217         (rb_sourcelist_edit_source_name): don't assume that the editable
9218         source name is in the first column, because it isn't. Fixes bug
9219         320137.
9221 2005-11-16  James Livingston  <jrl@ids.org.au>
9223         * daapsharing/rb-daap-mdns.h:
9224         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
9225         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
9226         parts can know why operations failed. Avahi can report that the daemon
9227         was not running. Howl doesn't do this (yet).
9228         
9229         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
9230         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
9231         (browse_cb): don't display mdns errors to the user, if it wa because
9232         the daemon was not running.
9234 2005-11-16  James Livingston  <jrl@ids.org.au>
9236         * rhythmdb/rhythmdb-property-model.c:
9237         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
9238         (rhythmdb_property_model_compare),
9239         (rhythmdb_property_model_insert),
9240         (rhythmdb_property_model_insert_prop),
9241         (rhythmdb_property_model_delete),
9242         (rhythmdb_property_model_delete_prop),
9243         (rhythmdb_property_model_get_value): use RBRefStrings rather than
9244         copying the string and re-creating the sort key. Saves a little bit of
9245         memory and time.
9247         (rhythmdb_property_model_perform_sync),
9248         (rhythmdb_property_model_sync): perform the count sync in an idle
9249         callback, so that it doesn't have to be re-run once per value when
9250         loading.
9252 2005-11-16  James Livingston  <jrl@ids.org.au>
9254         * rhythmdb/rhythmdb-query-model.c:
9255         (rhythmdb_query_model_entry_deleted_cb),
9256         (rhythmdb_query_model_remove_entry): remove deleted entries from the
9257         limited list. Stops problems if they are deleted, and then things on
9258         the main list are
9260 2005-11-16  James Livingston  <jrl@ids.org.au>
9262         * NEWS: update NEWS
9264         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
9265         button's minimise-to-tray action
9267 2005-11-16  James Livingston  <jrl@ids.org.au>
9269         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
9270         leak. Disable adding newly created files for now, because it doesn't
9271         work properly.
9273         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
9274         (rb_sourcelist_model_finalize):
9275         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
9276         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
9278 2005-11-16  James Livingston  <jrl@ids.org.au>
9280         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
9281         problem where a GError* wasn't being set to NULL. Actually check the
9282         result.
9284 2005-11-16  James Livingston  <jrl@ids.org.au>
9286         * doc/reference/tmpl/rb-entry-view.sgml:
9287         * doc/reference/tmpl/rhythmbox-unused.sgml:
9288         * doc/reference/tmpl/rhythmdb-query-model.sgml:
9289         * doc/reference/tmpl/rhythmdb.sgml:
9290         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
9291         docs, including the patch that was on bug 
9293         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
9294         API, because it should only be used by RhythmDB itself.
9296 2005-11-16  James Livingston  <jrl@ids.org.au>
9298         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
9299         pausing by middle clicking on the tray icon.
9301 2005-11-15  James Livingston  <jrl@ids.org.au>
9303         * configure.ac: enable audioscrobbler support by default, if libsoup
9304         is present.
9306 2005-11-15  James Livingston  <jrl@ids.org.au>
9308         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9309         Closes bug 321157.
9311         * configure.ac:
9312         * daapsharing/rb-daap-connection.c: (build_message),
9313         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
9314         support gzip encoded daap connections.
9316         (handle_song_listing): fix leak
9318 2005-11-15  James Livingston  <jrl@ids.org.au>
9320         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
9321         * sources/rb-podcast-source.c:
9322         (rb_podcast_source_post_date_cell_data_func): make the date format
9323         translatable again, so that translators can choose the best format for
9324         their locale (%x is huge in some locales)
9326 2005-11-15  James Livingston  <jrl@ids.org.au>
9328         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
9329         (end_job): mark podcast episodes as failed, if the metadata load
9330         fails. This will prevent people playing non-audio enclosures, helping
9331         stop bug 320366.
9333 2005-11-14  James Livingston  <jrl@ids.org.au>
9335         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
9336         video sink to fakesink. This will stop problems (potentially crashers)
9337         that will occur if the file contains a video stream.
9339         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
9340         rather than using magic numbers everywhere.
9342         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
9343         * sources/rb-podcast-source.c:
9344         (rb_podcast_source_songs_show_popup_cb),
9345         (rb_podcast_source_cmd_download_post),
9346         (rb_podcast_source_post_status_cell_data_func),
9347         (rb_podcast_source_entry_activated_cb): use the above constants.
9349         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
9350         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
9351         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
9352         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
9353         (cancel_job), (download_progress_cb),
9354         (rb_podcast_manager_cancel_download),
9355         (rb_podcast_manager_insert_feed): use the constants, and fix a
9356         trhead-safety issue.
9358 2005-11-14  Bastien Nocera  <hadess@hadess.net>
9360         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
9361         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
9362         entry-changed events after stats on startup, fixes entry deleted from
9363         filtered views not disappearing
9365 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
9367         Fix rhythmdb query model refcount and polling problems. Closes bug
9368         321410.
9370         * rhythmdb/rhythmdb-property-model.c:
9371         (rhythmdb_property_model_finalize):
9372          Unref the query model if we have one.
9374         * rhythmdb/rhythmdb-query-model.h:
9375          Remove poll and cancel methods.  Query cancellation
9376          never did anything anyway.
9378         * rhythmdb/rhythmdb-query-model.c:
9379         (rhythmdb_query_model_init): Remove GAsyncQueues.
9380          Replace the GAsyncQueue-based update processing
9381          with a simpler g_idle_add approach; still has the
9382          same queueing properties, but now we don't poll the
9383          model forever and updates are processed immediately.
9385         (_unref_entry), (rhythmdb_query_model_finalize):
9386          Unref DB entries when finalized
9388         (rhythmdb_query_model_has_pending_changes):
9389          Use our own counter to decide if there are updates pending
9391         (rhythmdb_query_model_process_update), (idle_process_update):
9392          Process updates using g_idle_add, or directly if possible
9394         (rhythmdb_query_model_signal_complete),
9395         (rhythmdb_query_model_add_entries):
9396          Change to new update processing method
9398         (idle_poll_model), (rhythmdb_query_model_poll):
9399          Remove GAsyncQueue-based update processing.
9401         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
9402          No need to poll the model any more - updates are processed
9403          directly for synchronous queries.
9405         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9406          Property model needs to be unref'd here
9408         * sources/rb-library-source.c: (rb_library_source_do_query):
9409          Don't try to cancel the active query (it never worked anyway),
9410          remove obsolete poll call, unref property models as required,
9411          and don't unref the cached 'all' query, since hold on to it.
9412          We unref it when the sort order changes, which forces the query
9413          to be rerun.
9415         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
9416          Unref the property model as required
9418         (rb_podcast_source_do_query):
9419          Treat any query with no selected feeds and no search text as
9420          an 'all' query.  Unref query models except for the cached
9421          'all' query, since we hold on to that.
9423         (rb_podcast_source_cmd_update_all):
9424          Unref the property model as required.
9426         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
9427          Don't try to cancel the query (it never worked anyway)
9429         (rb_entry_view_poll_model):
9430          No need for this any more.
9432         * widgets/rb-entry-view.h:
9433          Remove obsolete function rb_entry_view_poll_model
9435         * widgets/rb-property-view.c: (rb_property_view_set_property):
9436          Ref and unref the property model as required.
9438 2005-11-14  James Livingston  <jrl@ids.org.au>
9440         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9442         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
9443         for error. Closes bug 321416.
9445 2005-11-14  James Livingston  <jrl@ids.org.au>
9447         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9449         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
9450         a crasher if a feed's last-post value isn't set. Closes bug 321353.
9452 2005-11-14  James Livingston  <jrl@ids.org.au>
9454         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
9455         * shell/rb-removable-media-manager.c:
9456         (rb_removable_media_manager_set_uimanager):
9457         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
9458         translation domain for GTK action groups.
9460 2005-11-12  James Livingston  <jrl@ids.org.au>
9462         * po/POTFILES.in: remove the old station-new files
9464 2005-11-12  James Livingston  <jrl@ids.org.au>
9466         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9467         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
9468         (save_entry): cause Rhythmbox to re-read the metadata from a file,
9469         when upgrading from a pre-Date-supporting version to a version that
9470         supports Date metadata. Closes bug 320760.
9472 2005-11-12  James Livingston  <jrl@ids.org.au>
9474         Add "update all podcast feeds" command. Closes bug 319954.
9476         * data/ui/rhythmbox-ui.xml: add to source context menu.
9478         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9479         (register_action_group), (rb_podcast_source_cmd_download_post),
9480         (rb_podcast_source_cmd_delete_feed),
9481         (rb_podcast_source_cmd_properties_feed),
9482         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
9483         rather than the shell.
9485         (rb_podcast_source_update_feed_func),
9486         (rb_podcast_source_cmd_update_all): update every feed.
9488 2005-11-11  James Livingston  <jrl@ids.org.au>
9490         * shell/rb-shell-player.c: (rb_shell_player_class_init),
9491         (rb_shell_player_constructor), (rb_shell_player_finalize):
9492         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
9493         others follow the HIG recommentations.
9495 2005-11-11  James Livingston  <jrl@ids.org.au>
9497         * podcast/rb-podcast-manager.c:
9498         (rb_podcast_manager_subscribe_feed): check that the url is valid,
9499         before trying to use it.
9501 2005-11-11  James Livingston  <jrl@ids.org.au>
9503         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
9504         (rb_entry_view_append_column): When sorting by year, sort by album
9505         within a particular year.
9507 2005-11-11  James Livingston  <jrl@ids.org.au>
9509         * NEWS: updates
9511 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
9512         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
9513         spelling of "Language."
9515 2005-11-11  James Livingston  <jrl@ids.org.au>
9517         * rhythmdb/rhythmdb-property-model.c:
9518         (rhythmdb_property_model_row_inserted_cb),
9519         (rhythmdb_property_model_prop_changed_cb),
9520         (rhythmdb_property_model_entry_removed_cb),
9521         (rhythmdb_property_model_insert_prop),
9522         (rhythmdb_property_model_sync): display the count after the "All"
9523         entry of a property model.
9525         * widgets/rb-property-view.c: (rb_property_view_class_init),
9526         (rb_property_view_finalize), (rb_property_view_constructor): use
9527         G_DEFINE_TYPE
9529 2005-11-10  James Livingston  <jrl@ids.org.au>
9531         * rhythmdb/rhythmdb-query-model.c:
9532         (rhythmdb_query_model_remove_entry):
9533         * rhythmdb/rhythmdb-query-model.h: make
9534         rhythmdb_query_model_remove_entry return whether the entry was in the
9535         model.
9537         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
9538         don't add non-SONG entries, as it doesn't really work and can cause
9539         crashes.
9541         (rb_playlist_source_remove_location): assert if the playlist and model
9542         differ on whether the entry is in the playlist
9544 2005-11-10  James Livingston  <jrl@ids.org.au>
9546         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
9547         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
9548         (rb_podcast_manager_thread_parse_feed),
9549         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
9550         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
9551         emulating one with a list and mutex. Fixes a couple of threading
9552         issues.
9553         
9554         (rb_podcast_manager_insert_feed): fix some problems with ignoring
9555         updated feeds.
9556         
9557         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
9558         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
9559         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
9560         * podcast/rb-podcast-parse.c: (rb_insert_item),
9561         (rb_podcast_parse_channel_free):
9562         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
9563         fix some typos, and make a bit of code clearer.
9565 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
9567         Make the "delete podcast" dialog better. Closes bug 320899.
9569         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
9570         Add PROP_WINDOW for rb_shell_get_property so we can access the
9571         GtkWindow widget of the main window. 
9572         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
9573         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
9574         podcast feed delete dialog less confusing as well.
9576 2005-11-09  James Livingston  <jrl@ids.org.au>
9578         * shell/rb-removable-media-manager.c:
9579         (rb_removable_media_manager_mount_volume),
9580         (rb_removable_media_manager_scan): Fix a crasher where we were getting
9581         NULL for a cd volume.
9583 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
9585         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
9586         method return a gboolean indicating whether the changes
9587         to the entry have already been applied.
9589         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
9590         only modify the entry if impl_entry_set returns FALSE.
9592         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
9593         When setting the location of an entry, update the
9594         hash table mapping locations to entries.
9596 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
9598         * data/glade/Makefile.am:
9599         * iradio/Makefile.am:
9600           Remove 'new station' dialog.
9602         * iradio/rb-station-properties-dialog.h:
9603         * sources/rb-iradio-source.c: (impl_song_properties):
9604         * shell/rb-shell.c: (rb_shell_cmd_new_station):
9605          Add 'new station' mode parameter to
9606          rb_station_properties_dialog_new.
9608         * (rb_station_properties_dialog_response_cb),
9609         (rb_station_properties_dialog_create_station):
9610          When in 'new station' mode, create the station
9611          when OK button is pressed.
9613         * iradio/rb-station-properties-dialog.c:
9614         (rb_station_properties_dialog_location_changed_cb):
9615          Only enable OK button if a location is specified
9616         (rb_station_properties_dialog_init),
9617         (rb_station_properties_dialog_new),
9618         (rb_station_properties_dialog_update),
9619         (rb_station_properties_dialog_update_title),
9620         (rb_station_properties_dialog_rated_cb),
9621         (rb_station_properties_dialog_update_play_count),
9622         (rb_station_properties_dialog_update_bitrate),
9623         (rb_station_properties_dialog_update_last_played),
9624         (rb_station_properties_dialog_update_rating),
9625         (rb_station_properties_dialog_update_playback_error),
9626         (rb_station_properties_dialog_show):
9627          Handle 'new station' mode, where there's no current
9628          station to edit.
9630 2005-11-08  James Livingston  <jrl@ids.org.au>
9632         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
9633         keybinding for track columns consistent between library and playlist
9634         sources.
9636 2005-11-07  James Livingston  <jrl@ids.org.au>
9638         * data/ui/rhythmbox-ui.xml:
9639         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
9640         "Edit" item to playlist menu. Closes bug 311470.
9642 2005-11-07  James Livingston  <jrl@ids.org.au>
9644         patch by: Jaap A. Haitsma <jaap@haitsma.org>
9646         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
9647         confirmation to save dialogs, with gtk 2.8 or higher.
9649 2005-11-07 James Livingston  <jrl@ids.org.au>
9650         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
9651         requirement to a general on, because people are going to have it for
9652         the other dependencies.
9654 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
9656         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
9657         delete dialog less confusing.  Use HIG recommended button order.
9658         Closes bug 320840.
9660 2005-11-06  James Livingston  <jrl@ids.org.au>
9662         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
9663         drag-and-drop error.
9664         
9665         * sources/rb-library-source.c: (rb_library_source_constructor): only
9666         add drag-and-drop for the Library itself, subclasses can add support
9667         themselves if they want it.
9669         * sources/rb-removable-media-source.c:
9670         (rb_removable_media_source_class_init): by default removable media
9671         sources do not support dnd
9673 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
9675         * data/glade/station-properties.glade:
9676          Add box containing error icon and error message label
9677         * iradio/rb-station-properties-dialog.c:
9678         (rb_station_properties_dialog_class_init),
9679         (rb_station_properties_dialog_finalize):
9680          Change this class to use G_DEFINE_TYPE
9681         (rb_station_properties_dialog_init),
9682         (rb_station_properties_dialog_update),
9683         (rb_station_properties_dialog_update_playback_error):
9684          Display error icon and message when there is one, and hide the error
9685          box otherwise.
9686         (rb_station_properties_dialog_show): Hack widget show
9687          method to update the visibility of the error info box when showing
9688          the widget.  Otherwise the icon is displayed all the time (same thing
9689          is done in rb-song-info). Closes bug 320749.
9691 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
9693         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
9694         parsing of the duration of podcast episodes from the feed. Closes bug
9695         320748.
9697 2005-11-05  James Livingston  <jrl@ids.org.au>
9699         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
9700         release date metadata ("Year"). Closes bug 166093.
9702         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
9703         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
9704         (rb_metadata_gst_add_tag_data):
9705         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9706         (save_entry):
9707         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
9708         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
9709         (set_props_from_metadata), (rhythmdb_entry_set_internal),
9710         (rhythmdb_prop_get_type):
9711         * rhythmdb/rhythmdb.h: add support for "date" property
9712         
9713         * data/glade/general-prefs.glade:
9714         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
9715         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
9716         (rb_entry_view_append_column):
9717         * widgets/rb-entry-view.h:
9718         * sources/rb-library-source.c: (rb_library_source_constructor):
9719         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
9720         "Year" colums
9722         * data/glade/song-info.glade:
9723         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
9724         (rb_song_info_construct_single), (rb_song_info_constructor),
9725         (rb_song_info_populate_dialog), (rb_song_info_update_year),
9726         (rb_song_info_sync_entry_single): Add "Year" to song info window
9728         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
9729         sorted by year.
9731 2005-11-05  James Livingston  <jrl@ids.org.au>
9733         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
9734         description if it's very long.
9736 2005-11-05  James Livingston  <jrl@ids.org.au>
9738         pathc by: Artem Baguinski <femistofel@gmail.com>
9740         * help/C/Makefile.am:
9741         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
9742         Closes bug 320613.
9744 2005-11-05  James Livingston  <jrl@ids.org.au>
9746         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9748         * daapsharing/rb-daap-share.c: (write_next_chunk),
9749         (message_finished), (databases_cb): Use chunked file loading and
9750         sending in the DAAP server. This should reduce the amount of memory
9751         required to send files to the client.
9753 2005-11-05  James Livingston  <jrl@ids.org.au>
9755         * configure.ac: make the nautilus_burn_drive_door_is_open detection
9756         work better on some systems. Closes 320622.
9758 2005-11-05  James Livingston  <jrl@ids.org.au>
9760         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
9761         homepage, so that users can find out what AudioScrobbler is. Add
9762         access keys.
9764         * data/glade/daap-prefs.glade:
9765         * data/glade/general-prefs.glade:
9766         * data/glade/library-prefs.glade: make the indent be more consistent
9768         * data/glade/podcast-prefs.glade: 
9769         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9770         (impl_get_config_widget): move thing out of code into glade, where
9771         they belong
9773 2005-11-05  James Livingston  <jrl@ids.org.au>
9775         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
9776         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
9778 2005-11-04  James Livingston  <jrl@ids.org.au>
9780         * configure.ac: don't print DAAP configure info twice
9782 2005-11-04  James Livingston  <jrl@ids.org.au>
9784         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
9785         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
9786         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
9787         #ifdefs, since we removed the symbol. Oops
9789 2005-11-04  James Livingston  <jrl@ids.org.au>
9791         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
9792         after the connect line, not before. Oops.
9794 2005-11-04  James Livingston  <jrl@ids.org.au>
9796         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
9797         fix some warnings
9799 2005-11-03  James Livingston  <jrl@ids.org.au>
9801         * NEWS: update the news file
9803         * data/glade/general-prefs.glade: make the prefs refer to "time" not
9804         "duration" column.
9806         * data/ui/rhythmbox-ui.xml:
9807         * shell/rb-playlist-manager.c:
9808         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9809         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
9810         and "delete" for feeds.
9812 2005-11-03  James Livingston  <jrl@ids.org.au>
9814         * sources/rb-podcast-source.c: (impl_delete),
9815         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
9816         feed. Closes 319760.
9818 2005-11-03  James Livingston  <jrl@ids.org.au>
9820         Don't start playing from the remote site when a un-downloaded podcast
9821         is activated. Closes 319983.
9822         
9824         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
9825         (write_job_data), (download_progress_cb): write the local location as
9826         soon as any data is recieved
9828         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
9829         the mountpoint to NULL for podcast episodes that haven't yet been
9830         downloaded.
9831         
9832         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
9833         start playing a podcast if it hasn't been downloaded.
9834         
9835         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9836         (rb_podcast_source_entry_activated_cb): begin downloading when the
9837         podcast is activated.
9839 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
9841         * data/glade/general-prefs.glade:  Fix capitalization.
9842         * shell/rb-removable-media-manager.c:  Add a mnemonic.
9843         * sources/rb-podcast-source.c:
9844         (rb_podcast_source_songs_show_popup_cb),
9845         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
9847 2005-11-03  James Livingston  <jrl@ids.org.au>
9849         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
9851         * shell/rb-removable-media-manager.c:
9852         (rb_removable_media_manager_mount_volume): don't check network or
9853         autofs mounts, as they're not going to be removable media. Stops
9854         sending lots of warnings to syslog. Closes 320571.
9856         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
9857         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
9858         320570.
9860 2005-11-03  James Livingston  <jrl@ids.org.au>
9862         Add support for playing audio CDs. Metadata lookup is done using
9863         SoundJuicer's MusicBrainz lookup code, which can be switched to using
9864         the library when it gets broken out of S-J.
9865         
9866         Add a "rescan media" menu item, and commands for ejecting removable
9867         media.
9869         Move nautilus-cd-burner from optional to required depenency.
9871         * configure.ac:
9872         * data/ui/rhythmbox-ui.xml:
9873         * metadata/Makefile.am:
9874         + metadata/sj-error.c:
9875         + metadata/sj-error.h:
9876         + metadata/sj-metadata-marshal.list:
9877         + metadata/sj-metadata-musicbrainz.c:
9878         + metadata/sj-metadata-musicbrainz.h:
9879         + metadata/sj-metadata.c:
9880         + metadata/sj-metadata.h:
9881         + metadata/sj-structures.c:
9882         + metadata/sj-structures.h:
9883         * player/Makefile.am:
9884         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
9885         * po/POTFILES.in:
9886         * shell/Makefile.am:
9887         * shell/rb-removable-media-manager.c:
9888         (rb_removable_media_manager_dispose), (poll_tray_opened),
9889         (end_cd_drive_monitor), (begin_cd_drive_monitor),
9890         (rb_removable_media_manager_load_media),
9891         (rb_removable_media_manager_mount_volume),
9892         (rb_removable_media_manager_cmd_eject_medium),
9893         (rb_removable_media_manager_cmd_scan_media),
9894         (rb_removable_media_manager_check_volume),
9895         (rb_removable_media_manager_unmount_volume_swap),
9896         (rb_removable_media_manager_scan):
9897         * sources/Makefile.am:
9898         + sources/rb-audiocd-source.c:
9899         + sources/rb-audiocd-source.h:
9900         * tests/Makefile.am:
9902 2005-11-02  James Livingston  <jrl@ids.org.au>
9904         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9906         * sources/rb-iradio-source.c:
9907         (stations_view_drag_data_received_cb):
9908         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
9909         don't crash when the second uri is missing frm the drop, which
9910         browsers sometimes do.
9912 2005-11-01  James Livingston  <jrl@ids.org.au>
9914         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
9915         (rb_podcast_manager_insert_feed):
9916         * podcast/rb-podcast-manager.h:
9917         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
9918         (rb_set_item_value), (rb_validate_item_propert),
9919         (rb_podcast_parse_date), (rb_podcast_parse_time):
9920         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
9921         from the feed.
9923 2005-10-31  James Livingston  <jrl@ids.org.au>
9925         * ChangeLog:
9926         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
9927         huge
9929 2005-10-31  James Livingston  <jrl@ids.org.au>
9931         * sources/rb-podcast-source.c:
9932         (rb_podcast_source_post_date_cell_data_func): generate the date string
9933         in a way that is correct in all locales.
9934         
9935         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
9936         (rhythmdb_entry_sync_mirrored): make the last played/date added
9937         columns use the same format.
9939 2005-10-30  James Livingston  <jrl@ids.org.au>
9942         * podcast/rb-podcast-manager.c:
9943         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
9944         
9945         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
9946         iradio errors better.
9948 2005-10-30  James Livingston  <jrl@ids.org.au>
9950         patch by: Artem Baguinski <femistofel@gmail.com>
9952         * metadata/rb-metadata-gst.c: (rb_metadata_init):
9954 2005-10-30  James Livingston  <jrl@ids.org.au>
9956         * podcast/rb-podcast-manager.c:
9957         (rb_podcast_manager_subscribe_feed),
9958         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
9959         already been added, usually as a radio station. Closes 319434.
9961 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
9963         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
9964         mnemonics & resize issues)
9965         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
9966         & mnemonics)
9967         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
9968         widget for the "download location" label.
9970         Closes bug 320184.
9972 2005-10-29  James Livingston  <jrl@ids.org.au>
9974         Allow the search box to match words from multiple properties. Closes
9975         bug 139196. Thanks to the person from IRC who did a lot of the initial
9976         work.
9979         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
9980         * lib/rb-util.h: Add functions to split a string into words, and one
9981         to perform "search folding" which is currently like casefolding but
9982         also strips punctuation
9983         
9984         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
9985         (rhythmdb_query_preprocess):
9986         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
9987         against title, artist, album and genre (for the search box)
9988         
9989         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
9990         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9991         (save_entry), (search_match_properties),
9992         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
9993         splitting into words and matching across multiple properties.
9994         
9995         * sources/rb-library-source.c: (construct_query_from_selection): use
9996         the new SEARCH_MATCH property for the search box
9997         
9998         * widgets/rb-entry-view.c: (type_ahead_search_func):
10000 2005-10-29  James Livingston  <jrl@ids.org.au>
10002         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10003         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
10004         
10005         * shell/rb-playlist-manager.c:
10006         * shell/rb-shell.c: use the above stock ids, so that the icons get set
10007         correctly.
10008         
10009         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
10010         initial state of the shuffle/repeat menu items correctly. Patch from
10011         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
10013 2005-10-29  James Livingston  <jrl@ids.org.au>
10015         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
10016         double-free.
10017         
10018         * widgets/rb-cell-renderer-pixbuf.c:
10019         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
10020         icon go black when row is not selected
10021         
10022         * doc/reference/tmpl/rb-daap-connection.sgml:
10023         * doc/reference/tmpl/rhythmdb.sgml: doc updates
10025 2005-10-29  James Livingston  <jrl@ids.org.au>
10027         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
10028         silly mistake, where it could think partial downloads has been
10029         completed.
10031 2005-10-29  James Livingston  <jrl@ids.org.au>
10033         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
10035         * data/glade/song-info.glade:
10036         * widgets/rb-song-info.c: (rb_song_info_construct_single),
10037         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
10038         (rb_song_info_sync_entry_single): show the disc number in the song
10039         info window. From bug 311199.
10041 2005-10-29  James Livingston  <jrl@ids.org.au>
10043         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
10044         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
10045         regularly. Closes 155306.
10047 2005-10-29  James Livingston  <jrl@ids.org.au>
10049         * podcast/rb-podcast-manager.c:
10050         (rb_podcast_manager_download_entry),
10051         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
10052         (rb_podcast_manager_insert_feed):
10053         * podcast/rb-podcast-manager.h:
10054         * podcast/rb-podcast-parse.c: (rb_set_item_value),
10055         (rb_podcast_parser_start_element):
10056         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
10057         don't download them again. However, it can't resume
10058         partially-downloaded ones.
10060 2005-10-28  James Livingston  <jrl@ids.org.au>
10062         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
10063         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
10064         work. Don't attempt to write duration as a tag.
10066         Thanks to Artem Baguinski <femistofel@gmail.com>
10068 2005-10-28  James Livingston  <jrl@ids.org.au>
10070         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
10071         don't disable the status-bar menu item when the current source doesn't
10072         use the search box.
10074 2005-10-28  James Livingston  <jrl@ids.org.au>
10076         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
10077         crash if the file has unknown length
10079 2005-10-27  James Livingston  <jrl@ids.org.au>
10081         * daapsharing/rb-daap-connection.c:
10082         (rb_daap_connection_state_done): don't assert when a daap server
10083         doesn't have any playlists
10085 2005-10-27  James Livingston  <jrl@ids.org.au>
10087         * sources/rb-sourcelist-model.c:
10088         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
10089         source for the sourcelist. Closes bug 319817.
10091 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
10093         Patch by: Renato Araujo <renatox@gmail.com>
10095         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10096           Fix for a crasher caused by previous patch.
10098 2005-10-26  James Livingston  <jrl@ids.org.au>
10100         * data/glade/podcast-prefs.glade:
10101         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
10102         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
10103         * sources/rb-podcast-source.c: (rb_podcast_source_new):
10104         * podcast/rb-podcast-manager.c:
10105         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
10106         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
10107         * shell/rb-shell.c: Change some strings to make them more consistent.
10108         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
10109         makes it clearer which is which. "Episode" may not be the best term,
10110         but it seems to be widely used.
10111         
10112         Also fix some strings that weren't marked as translatable.
10113         
10114         * podcast/rb-feed-podcast-properties-dialog.c:
10115         (rb_feed_podcast_properties_dialog_class_init),
10116         (rb_feed_podcast_properties_dialog_finalize):
10117         * podcast/rb-new-podcast-dialog.c:
10118         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
10119         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
10120         (rb_simple_view_finalize), (rb_simple_view_constructor):
10121         * podcast/rb-podcast-properties-dialog.c:
10122         (rb_podcast_properties_dialog_class_init),
10123         (rb_podcast_properties_dialog_finalize):
10124         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
10125         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
10126         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
10127         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
10128         use G_DEFINE_TYPE, instead of doing it manually.
10130 2005-10-26  James Livingston  <jrl@ids.org.au>
10132         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
10133         <jrl@ids.org.au>
10135         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
10136         (rb_metadata_init): Check that the necessary plugins are present to do
10137         id3 editing.
10138         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
10139         corrupted before replacing the original.
10141 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
10143         reviewed by: James Livingston <jrl@ids.org.au>
10145         Assign sequential IDs to playlists for DAAP rather than using the
10146         address of the playlist object.  Less flaky, and should work on 64bit
10147         platforms. Closes bug 319304.
10149         * daapsharing/rb-daap-share.c: 
10150         (rb_daap_share_set_property): watch for playlist creation
10151         (_find_by_id), (_find_by_source): playlist list search functions
10152         (rb_daap_share_playlist_created),
10153         (rb_daap_share_process_playlist),
10154         (rb_daap_share_playlist_destroyed):
10155          update playlist list as it changes, use weak refs on 
10156          playlists to get notified on destroy.
10157         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
10158          destroy playlist list on shutdown
10159         (add_playlist_to_mlcl): use playlist ID rather than pointer in
10160          DAAP response
10161         (databases_cb): search for playlist ID in list rather than just
10162          converting it to a pointer; return HTTP 404 if playlist not 
10163          found.
10164         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
10165          is already used for the main library
10167 2005-10-26  James Livingston  <jrl@ids.org.au>
10169         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
10171         * daapsharing/rb-daap-connection.c: (build_message),
10172         (http_response_handler), (http_get), (handle_server_info),
10173         (handle_login), (handle_update), (handle_database_info),
10174         (handle_song_listing), (handle_playlists),
10175         (handle_playlist_entries), (handle_logout),
10176         (rb_daap_connection_new), (rb_daap_connection_logout),
10177         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
10178         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
10179         * daapsharing/rb-daap-connection.h:
10180         * sources/rb-daap-source.c: (rb_daap_source_activate),
10181         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
10182         (rb_daap_source_disconnect): Make connecting to DAAP sources
10183         asynchronous, so that non-responsive servers don't hang the UI. Closes
10184         316225.
10186 2005-10-26  James Livingston  <jrl@ids.org.au>
10188         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
10190         * rhythmdb/rhythmdb-query-model.c:
10191         (rhythmdb_query_model_do_reorder): generate the row re-order map
10192         correctly.
10193         
10194         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
10195         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
10196         Update selection when rows get re-ordered. Closes 319718.
10198 2005-10-26  James Livingston  <jrl@ids.org.au>
10200         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
10202         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
10203         actually set the db pointer in play orders. Closes 319818.
10205 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
10207         Patch by: Renato Araujo <renatox@gmail.com>
10209         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
10210         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
10211         (rb_podcast_manager_update_synctime),
10212         (rb_podcast_manager_config_changed),
10213         (rb_podcast_manager_insert_feed):
10214         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
10215         (save_entry):
10216         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
10217         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
10218         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
10220 2005-10-25  James Livingston  <jrl@ids.org.au>
10222         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
10223         (db_entry_deleted_cb): don't share tracks that are hidden because the
10224         file is missing.
10226 2005-10-22  James Livingston  <jrl@ids.org.au>
10228         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
10229         crash if an entry couldn't be playerd, without streamer setting an
10230         error.
10232         
10233         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10235         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
10236         (rb_new_podcast_dialog_text_changed): enable the add button when a url
10237         is pasted into the dialog.
10238         
10239         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10240         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
10241         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
10242         (rb_podcast_parse_channel_free):
10243         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
10244         feeds
10246 2005-10-22  James Livingston  <jrl@ids.org.au>
10248         * sources/rb-iradio-source.c:
10249         (rb_iradio_source_first_time_changed): Make merging the default
10250         stations actually work.
10251         
10252         * sources/rb-podcast-source.c:
10253         (rb_podcast_source_post_status_cell_data_func): fix problem where some
10254         people weren't seing the percentages in the stats column.
10256 2005-10-21  James Livingston  <jrl@ids.org.au>
10258         Patch from Caio Marcelo <cmarcelo@gmail.com>
10260         * shell/rb-shell.c: (rb_shell_window_state_cb),
10261         (rb_shell_get_visibility), (idle_hide_mainwindow),
10262         (rb_shell_set_visibility): Make the "show window" item in the tray
10263         icon menu show the toggle state correctly. Use a better policy on
10264         deciding whether the window is "visible" or not. Closes bug 308053.
10266 2005-10-21  James Livingston  <jrl@ids.org.au>
10268         * doc/reference/tmpl/rb-shell-preferences.sgml:
10269         * shell/Makefile.am: fix building with gtk-doc
10271         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
10272         don't submit podcasts to audioscrobbler
10273         
10274         
10275         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10276         
10277         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
10278         (rb_set_item_value): strip spaces surrounding podcast urls
10279         
10281         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
10282         
10283         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
10285 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
10287         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
10288          Audioscrobbler/Last.fm support
10290         * configure.ac:
10291         * data/glade/Makefile.am:
10292         * data/glade/audioscrobbler-prefs.glade:
10293         * data/rhythmbox.schemas:
10294         * lib/Makefile.am:
10295         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
10296         * lib/md5.h:
10297         * lib/rb-preferences.h:
10298         * po/POTFILES.in:
10299         * shell/Makefile.am:
10300         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
10301         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
10302         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
10303         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
10304         (rb_audioscrobbler_timeout_cb), (mkmd5),
10305         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
10306         (rb_audioscrobbler_do_handshake),
10307         (rb_audioscrobbler_do_handshake_cb),
10308         (rb_audioscrobbler_submit_queue),
10309         (rb_audioscrobbler_submit_queue_cb),
10310         (rb_audioscrobbler_import_settings),
10311         (rb_audioscrobbler_preferences_sync),
10312         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
10313         (rb_audioscrobbler_gconf_changed_cb),
10314         (rb_audioscrobbler_song_changed_cb),
10315         (rb_audioscrobbler_username_entry_changed_cb),
10316         (rb_audioscrobbler_username_entry_activate_cb),
10317         (rb_audioscrobbler_password_entry_changed_cb),
10318         (rb_audioscrobbler_password_entry_activate_cb),
10319         (rb_audioscrobbler_enabled_check_changed_cb),
10320         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
10321         (rb_audioscrobbler_load_entry_from_string),
10322         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
10323         (rb_audioscrobbler_print_queue),
10324         (rb_audioscrobbler_free_queue_entries):
10325         * shell/rb-audioscrobbler.h:
10326         * shell/rb-shell-preferences.c:
10327         (rb_shell_preferences_append_audioscrobbler_config):
10328         * shell/rb-shell-preferences.h:
10329         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
10330         (rb_shell_select_source), (rb_shell_cmd_preferences):
10331         * sources/Makefile.am:
10333 2005-10-21  James Livingston  <jrl@ids.org.au>
10335         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
10337         * Makefile.am:
10338         * NEWS:
10339         * configure.ac:
10340         * data/art/Makefile.am:
10341         * data/glade/Makefile.am:
10342         * data/rhythmbox.schemas:
10343         * data/ui/rhythmbox-ui.xml:
10344         * doc/reference/Makefile.am:
10345         * doc/reference/tmpl/rhythmdb.sgml:
10346         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10347         * lib/rb-stock-icons.h:
10348         * po/POTFILES.in:
10349         * podcast/Makefile.am:
10350         + podcast/rb-feed-podcast-properties-dialog.c:
10351         + podcast/rb-feed-podcast-properties-dialog.h:
10352         + podcast/rb-new-podcast-dialog.c:
10353         + podcast/rb-new-podcast-dialog.h:
10354         + podcast/rb-podcast-manager.c:
10355         + podcast/rb-podcast-manager.h:
10356         + podcast/rb-podcast-marshal.list:
10357         + podcast/rb-podcast-parse.c:
10358         + podcast/rb-podcast-parse.h:
10359         + podcast/rb-podcast-properties-dialog.c:
10360         + podcast/rb-podcast-properties-dialog.h:
10361         * rhythmdb/rhythmdb-property-model.c:
10362         (rhythmdb_property_model_set_property),
10363         (rhythmdb_property_model_enable_drag):
10364         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
10365         (rhythmdb_tree_parser_end_element), (save_entry),
10366         (rhythmdb_tree_save):
10367         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
10368         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
10369         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
10370         (rhythmdb_entry_podcast_feed_get_type):
10371         * rhythmdb/rhythmdb.h:
10372         * shell/Makefile.am:
10373         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
10374         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
10375         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
10376         (rb_shell_quit):
10377         * sources/Makefile.am:
10378         + sources/rb-podcast-source.c:
10379         + sources/rb-podcast-source.h:
10380         * widgets/Makefile.am:
10381         * widgets/rb-property-view.c: (rb_property_view_class_init),
10382         (rb_property_view_constructor),
10383         (rb_property_view_selection_changed_cb),
10384         (rb_property_view_get_treeview):
10385         * widgets/rb-property-view.h:
10386         + widgets/rb-simple-view.c:
10387         + widgets/rb-simple-view.h:
10389 2005-10-20  James Livingston  <jrl@ids.org.au>
10391         * NEWS: update with changes since 0.9.1
10393         * configure.ac: check whether collate_key_for_filename is available
10394         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
10395         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
10396         it if it isn't available in glib (i.e. building against 2.6)
10397         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
10398         collation to get "natural sorting". Closes bug 158599.
10400 2005-10-20  James Livingston  <jrl@ids.org.au>
10402         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
10404         * doc/reference/tmpl/rb-shell-player.sgml:
10405         * shell/rb-shell-player.c: (rb_shell_player_class_init),
10406         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
10407         (rb_shell_player_get_playing),
10408         (rb_shell_player_get_playing_time_string),
10409         (rb_shell_player_get_playing_time),
10410         (rb_shell_player_set_playing_time), (tick_cb),
10411         (rb_shell_player_get_playing_path), (filter_mmkeys):
10412         * shell/rb-shell-player.h:
10413         * shell/rb-shell-player.xml:
10414         * shell/rb-shell.c: (rb_shell_constructor),
10415         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
10416         (rb_shell_set_window_title), (rb_shell_playing_impl),
10417         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
10418         Merge the duration_changed and elapsed_changed DBUS signals into one
10419         elapsed_changed signal. Check that the output argument isn't NULL
10420         before trying to put things in it.
10422 2005-10-20  James Livingston  <jrl@ids.org.au>
10424         * rhythmdb/rhythmdb-query-model.c:
10425         (rhythmdb_query_model_entry_added_cb),
10426         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
10427         problem where hidden entries could be shown in playlists.
10428         
10429         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
10430         issues when switching in and out of small mode.
10432 2005-10-19  James Livingston  <jrl@ids.org.au>
10434         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
10435         (rb_shell_constructor), (rb_shell_window_state_cb),
10436         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
10437         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
10438         (rb_shell_view_smalldisplay_changed_cb),
10439         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
10440         (rb_shell_sync_paned): remove gconf window-state races, prevent
10441         changing small mode too often, fix window event races. Closes 122806.
10443         
10444         Patch from Caio Marcelo <cmarcelo@gmail.com>
10446         * data/rhythmbox.schemas:
10447         * shell/rb-shell.c: (rb_shell_window_state_cb),
10448         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
10449         Remember the position of the window. Closes 315289.
10451 2005-10-19  James Livingston  <jrl@ids.org.au>
10453         Patch from Christophe Fergeau  <teuf@gnome.org>
10455         * configure.ac: determine whether libgpod is present when neither
10456         --with-ipod nor --without-ipod is passed
10458 2005-10-19  James Livingston  <jrl@ids.org.au>
10460         Patch from Caio Marcelo <cmarcelo@gmail.com>
10462         * shell/rb-shell-player.c: (do_next_idle),
10463         (rb_shell_player_do_previous), (rb_shell_player_do_next),
10464         (rb_shell_player_do_previous_or_seek),
10465         (rb_shell_player_previous_button_cb),
10466         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
10467         (rb_shell_player_cmd_next), (eos_cb):
10468         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
10469         end of the playlist is reached.
10471 2005-10-19  Christopher Aillon  <caillon@redhat.com>
10473         * lib/rb-thread.c: fix a few GSource leaks
10475 2005-10-19  James Livingston  <jrl@ids.org.au>
10477         * doc/reference/tmpl/bacon-volume.sgml:
10478         * doc/reference/tmpl/disclosure-widget.sgml:
10479         * doc/reference/tmpl/eel-gconf-extensions.sgml:
10480         * doc/reference/tmpl/eggnotificationbubble.sgml:
10481         * doc/reference/tmpl/eggtrayicon.sgml:
10482         * doc/reference/tmpl/gsequence.sgml:
10483         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
10484         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
10485         * doc/reference/tmpl/rb-daap-connection.sgml:
10486         * doc/reference/tmpl/rb-daap-dialog.sgml:
10487         * doc/reference/tmpl/rb-daap-mdns.sgml:
10488         * doc/reference/tmpl/rb-daap-share.sgml:
10489         * doc/reference/tmpl/rb-daap-sharing.sgml:
10490         * doc/reference/tmpl/rb-daap-source.sgml:
10491         * doc/reference/tmpl/rb-daap-src.sgml:
10492         * doc/reference/tmpl/rb-daap-structure.sgml:
10493         * doc/reference/tmpl/rb-debug.sgml:
10494         * doc/reference/tmpl/rb-dialog.sgml:
10495         * doc/reference/tmpl/rb-druid.sgml:
10496         * doc/reference/tmpl/rb-entry-view.sgml:
10497         * doc/reference/tmpl/rb-enums.sgml:
10498         * doc/reference/tmpl/rb-file-helpers.sgml:
10499         * doc/reference/tmpl/rb-glade-helpers.sgml:
10500         * doc/reference/tmpl/rb-header.sgml:
10501         * doc/reference/tmpl/rb-history.sgml:
10502         * doc/reference/tmpl/rb-ipod-source.sgml:
10503         * doc/reference/tmpl/rb-iradio-source.sgml:
10504         * doc/reference/tmpl/rb-library-source.sgml:
10505         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
10506         * doc/reference/tmpl/rb-metadata.sgml:
10507         * doc/reference/tmpl/rb-new-station-dialog.sgml:
10508         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
10509         * doc/reference/tmpl/rb-play-order-linear.sgml:
10510         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
10511         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
10512         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
10513         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
10514         * doc/reference/tmpl/rb-play-order-random.sgml:
10515         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
10516         * doc/reference/tmpl/rb-play-order.sgml:
10517         * doc/reference/tmpl/rb-player.sgml:
10518         * doc/reference/tmpl/rb-playlist-manager.sgml:
10519         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
10520         * doc/reference/tmpl/rb-playlist-source.sgml:
10521         * doc/reference/tmpl/rb-preferences.sgml:
10522         * doc/reference/tmpl/rb-property-view.sgml:
10523         * doc/reference/tmpl/rb-query-creator-private.sgml:
10524         * doc/reference/tmpl/rb-query-creator.sgml:
10525         * doc/reference/tmpl/rb-rating-helper.sgml:
10526         * doc/reference/tmpl/rb-rating.sgml:
10527         * doc/reference/tmpl/rb-recorder.sgml:
10528         * doc/reference/tmpl/rb-refstring.sgml:
10529         * doc/reference/tmpl/rb-removable-media-manager.sgml:
10530         * doc/reference/tmpl/rb-removable-media-source.sgml:
10531         * doc/reference/tmpl/rb-search-entry.sgml:
10532         * doc/reference/tmpl/rb-shell-clipboard.sgml:
10533         * doc/reference/tmpl/rb-shell-glue.sgml:
10534         * doc/reference/tmpl/rb-shell-player-glue.sgml:
10535         * doc/reference/tmpl/rb-shell-player.sgml:
10536         * doc/reference/tmpl/rb-shell-preferences.sgml:
10537         * doc/reference/tmpl/rb-shell.sgml:
10538         * doc/reference/tmpl/rb-song-display-box.sgml:
10539         * doc/reference/tmpl/rb-song-info.sgml:
10540         * doc/reference/tmpl/rb-source-header.sgml:
10541         * doc/reference/tmpl/rb-source.sgml:
10542         * doc/reference/tmpl/rb-sourcelist-model.sgml:
10543         * doc/reference/tmpl/rb-sourcelist.sgml:
10544         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
10545         * doc/reference/tmpl/rb-statusbar.sgml:
10546         * doc/reference/tmpl/rb-stock-icons.sgml:
10547         * doc/reference/tmpl/rb-string-helpers.sgml:
10548         * doc/reference/tmpl/rb-thread.sgml:
10549         * doc/reference/tmpl/rb-tray-icon.sgml:
10550         * doc/reference/tmpl/rb-tree-dnd.sgml:
10551         * doc/reference/tmpl/rb-tree-model-sort.sgml:
10552         * doc/reference/tmpl/rb-util.sgml:
10553         * doc/reference/tmpl/rhythmbox-unused.sgml:
10554         * doc/reference/tmpl/rhythmdb-property-model.sgml:
10555         * doc/reference/tmpl/rhythmdb-query-model.sgml:
10556         * doc/reference/tmpl/rhythmdb-tree.sgml:
10557         * doc/reference/tmpl/rhythmdb.sgml: update for changes
10558         
10559         * doc/reference/Makefile.am: make docs build with changed ipod support
10560         
10561         * po/POTFILES.in: remove sources/itunesdb
10563 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
10565         * sources/itunesdb.c:
10566         * sources/itunesdb.h: removed now useless files
10568 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
10570         * configure.ac:
10571         * shell/Makefile.am:
10572         * sources/Makefile.am:
10573         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
10574         code
10575         [1]: http://www.gtkpod.org/libgpod.html
10578 2005-10-18  James Livingston  <jrl@ids.org.au>
10580         patch from Funda Wang <fundawang@linux.net.cn>
10582         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
10583         the notification bubble string translatable.
10585 ============ Version 0.9.1
10587 2005-10-16  James Livingston  <jrl@ids.org.au>
10589         * configure.ac: bump version to 0.9.1
10590         * NEWS: update translation credits
10592 2005-10-16  James Livingston  <jrl@ids.org.au>
10594         * rhythmdb/rhythmdb-query-model.c:
10595         (rhythmdb_query_model_class_init),
10596         (rhythmdb_query_model_drag_data_received): 
10597         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
10598         notified when things are dropped into the entry view.
10599         
10600         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
10601         (rb_playlist_source_add_location_swapped),
10602         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
10603         (rb_playlist_source_non_entry_dropped),
10604         (rb_playlist_source_row_inserted): Use the new signal so that dropping
10605         things onto a playlist's entry view work correctly, and doesn't cause
10606         crashes. Allow folders to be dropped as well. (Closes 318308)
10608 2005-10-16  James Livingston  <jrl@ids.org.au>
10610         * NEWS: Update some more
10612         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
10613         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
10614         with the paned size, so that it doesn't move when the window is
10615         maximised/restored. Closes bug 315852.
10617         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
10618         display the playcount column, as it's useless (it never get changed).
10620 2005-10-14  James Livingston  <jrl@ids.org.au>
10622         * Makefile.am:
10623         * data/Makefile.am:
10624         * doc/reference/Makefile.am: get "make distcheck" to pass again
10626 2005-10-11  James Livingston  <jrl@ids.org.au>
10628         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
10629         destroy the connection when retrieving the playlists fails, because
10630         tracks have already been added. Closes 318380.
10632 2005-10-11  James Livingston  <jrl@ids.org.au>
10634         * sources/rb-sourcelist.c: (rb_sourcelist_append),
10635         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
10636         (source_name_edited_cb): Ask for the columns to be resized when a
10637         source is added, deleted or changes name.
10639 2005-10-11  James Livingston  <jrl@ids.org.au>
10641         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
10642         create a thread when processing a directory. This stops up created one
10643         thread for each file in a playlist we're trying to load. Closes
10644         317850.
10646         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
10647         typo that made sort-by-artist not work correctly.
10649 2005-10-11  James Livingston  <jrl@ids.org.au>
10651         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
10652         support is enabled
10654 2005-10-11  James Livingston  <jrl@ids.org.au>
10656         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
10657         * lib/rb-file-helpers.h: add a function to turn uris into our
10658         canonical path-escaped form
10659         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
10660         above function when import playlists. This will fix the problem of
10661         duplicate entries due to different representations of the uri (bug
10662         158211).
10664 2005-10-11  James Livingston  <jrl@ids.org.au>
10666         * shell/rb-shell.c: (rb_shell_get_visibility),
10667         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
10668         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
10669         window hiding so that Alt-F4 works again.
10671         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
10672         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
10673         (rb_entry_view_string_sort_func): Stop some crashes where a string
10674         property was set to NULL.
10676 2005-10-10  James Livingston  <jrl@ids.org.au>
10678         * doc/reference/rhythmbox.types: fix gtk-doc generation
10680 2005-10-09  James Livingston  <jrl@ids.org.au>
10682         * sources/rb-sourcelist.c: (rb_sourcelist_init):
10683         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
10684         accelerators, so that we don't have as many conflicting keys.
10686 2005-10-08  James Livingston  <jrl@ids.org.au>
10688         * data/iradio-initial.pls: Update the list of radio stations. Thanks
10689         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
10690         bug 129285.
10692 2005-10-07  James Livingston  <jrl@ids.org.au>
10694         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
10695         local path names in the same way as every other URI. This should stop
10696         duplicates occurring due to different escapings. Closes bug 158211.
10698 2005-10-06  James Livingston  <jrl@ids.org.au>
10700         * NEWS: more updates
10701         
10702         patch from Jaap Haitsma <jaap@haitsma.org>:
10704         * configure.ac:
10705         * data/Makefile.am:
10706         * data/art/Makefile.am:
10707         - data/art/rhythmbox-paused.png:
10708         - data/art/rhythmbox-playback-error.png:
10709         - data/art/rhythmbox-playing.png:
10710         - data/art-clearlooks/:
10711         * lib/rb-file-helpers.c: (rb_file):
10712         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10713         * lib/rb-stock-icons.h:
10714         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
10715         * widgets/rb-cell-renderer-pixbuf.c:
10716         (rb_cell_renderer_pixbuf_render):
10717         * widgets/rb-entry-view.c: (rb_entry_view_init),
10718         (rb_entry_view_set_playing):
10719         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
10720         stock icons instead of custom art. Drop remanents of art-clearlooks.
10722 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
10724         * configure.ac: Added ne in ALL_LINGUAS
10726 2005-10-02  James Livingston  <jrl@ids.org.au>
10728         * data/glade/Makefile.am: actually install the daap prefs glade file
10730 2005-09-30  James Livingston  <jrl@ids.org.au>
10732         * po/POTFILES.in: mremove rb-string-helper.c from the list of
10733         translatable files, so that make check works and we don't annoy the
10734         translators.
10735         
10736         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
10737         sanity checking, in case a db entry is missing some properties.
10739 2005-09-29  James Livingston  <jrl@ids.org.au>
10741         - lib/rb-string-helpers.c:
10742         - lib/rb-string-helpers.h:
10743         * lib/Makefile.am:
10744         * rhythmdb/rhythmdb-tree.c:
10745         * rhythmdb/rhythmdb.c:
10746         * shell/main.c: (main):
10747         * shell/rb-shell.c:
10748         * widgets/rb-entry-view.c:
10749         * widgets/rb-property-view.c: remove rb-string-helpers, as they
10750         utility functions haven't been used in a while.
10752 2005-09-27  James Livingston  <jrl@ids.org.au>
10754         * data/art-clearlooks/Makefile.am:
10755         - data/art-clearlooks/rhythmbox-album.png:
10756         - data/art-clearlooks/rhythmbox-audiocd.png:
10757         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
10758         - data/art-clearlooks/rhythmbox-dnd.png:
10759         - data/art-clearlooks/rhythmbox-ipod.png:
10760         - data/art-clearlooks/rhythmbox-iradio.png:
10761         - data/art-clearlooks/rhythmbox-library.png:
10762         - data/art-clearlooks/rhythmbox-next.png:
10763         - data/art-clearlooks/rhythmbox-pause.png:
10764         - data/art-clearlooks/rhythmbox-play.png:
10765         - data/art-clearlooks/rhythmbox-playlist-menu.png:
10766         - data/art-clearlooks/rhythmbox-playlist.png:
10767         - data/art-clearlooks/rhythmbox-previous.png:
10768         - data/art-clearlooks/rhythmbox-repeat.png:
10769         - data/art-clearlooks/rhythmbox-rewind.png:
10770         - data/art-clearlooks/rhythmbox-shuffle.png:
10771         - data/art-clearlooks/rhythmbox-stop.png:
10772         - data/art-clearlooks/rhythmbox-visuals.png:
10773         - data/art-clearlooks/rhythmbox-volume-max.png:
10774         - data/art-clearlooks/rhythmbox-volume-medium.png:
10775         - data/art-clearlooks/rhythmbox-volume-min.png:
10776         - data/art-clearlooks/rhythmbox-volume-mute.png:
10777         - data/art-clearlooks/rhythmbox-volume-zero.png:
10778         * data/art/Makefile.am:
10779         - data/art/rhythmbox-album.png:
10780         - data/art/rhythmbox-audiocd.png:
10781         - data/art/rhythmbox-automatic-playlist.png:
10782         - data/art/rhythmbox-dnd.png:
10783         - data/art/rhythmbox-ipod.png:
10784         - data/art/rhythmbox-iradio.png:
10785         - data/art/rhythmbox-library.png:
10786         - data/art/rhythmbox-next.png:
10787         - data/art/rhythmbox-pause.png:
10788         - data/art/rhythmbox-play.png:
10789         - data/art/rhythmbox-playlist-menu.png:
10790         - data/art/rhythmbox-playlist.png:
10791         - data/art/rhythmbox-previous.png:
10792         - data/art/rhythmbox-repeat.png:
10793         - data/art/rhythmbox-rewind.png:
10794         - data/art/rhythmbox-shuffle.png:
10795         - data/art/rhythmbox-stop.png:
10796         - data/art/rhythmbox-visuals.png:
10797         - data/art/rhythmbox-volume-max.png:
10798         - data/art/rhythmbox-volume-medium.png:
10799         - data/art/rhythmbox-volume-min.png:
10800         - data/art/rhythmbox-volume-mute.png:
10801         - data/art/rhythmbox-volume-zero.png:
10802         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10803         * lib/rb-stock-icons.h:
10804         * shell/rb-playlist-manager.c:
10805         * shell/rb-shell-player.c:
10806         * sources/rb-daap-source.c: (rb_daap_get_icon):
10807         * sources/rb-ipod-source.c:
10808         * sources/rb-iradio-source.c: (rb_iradio_source_init):
10809         * sources/rb-library-source.c: (rb_library_source_new):
10810         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10811         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
10812         that hasn't been used in a LONG time, and also remove art that are
10813         now stock icons.
10815 2005-09-27  James Livingston  <jrl@ids.org.au>
10817         * README: point to the gnome.org web sites, and update the example
10818         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
10819         
10820         * rhythmdb/rhythmdb-query-model.c:
10821         (rhythmdb_query_model_set_property),
10822         (rhythmdb_query_model_get_property),
10823         (rhythmdb_query_model_finalize):
10824         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
10825         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
10826         * rhythmdb/rhythmdb.h:
10827         * sources/rb-iradio-source.c: (impl_search):
10828         * sources/rb-library-source.c: (impl_search): Add query
10829         "preprocessing", which performs operations such as casefolding any
10830         strings that will be compared to any of the *_FOLDED properties.
10831         Closes bug 316039
10833 2005-09-27  James Livingston  <jrl@ids.org.au>
10835         * data/glade/daap-prefs.glade:
10836         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
10837         file for the daap preferences pane
10838         
10839         * sources/rb-sourcelist.c: (rb_sourcelist_init),
10840         (rb_sourcelist_append), (rb_sourcelist_remove),
10841         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
10842         don't display the column for source expanders unless there is an
10843         expandable source.
10845 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
10847         * .cvsignore:
10848         * Makefile.am:
10849         * configure.ac:
10850         * doc/.cvsignore:
10851         * doc/Makefile.am:
10852         * doc/reference/.cvsignore:
10853         * doc/reference/Makefile.am:
10854         * doc/reference/rhythmbox-docs.sgml:
10855         * doc/reference/rhythmbox-sections.txt:
10856         * doc/reference/rhythmbox.types:
10857         * doc/reference/tmpl/bacon-volume.sgml:
10858         * doc/reference/tmpl/disclosure-widget.sgml:
10859         * doc/reference/tmpl/eel-gconf-extensions.sgml:
10860         * doc/reference/tmpl/eggnotificationbubble.sgml:
10861         * doc/reference/tmpl/eggtrayicon.sgml:
10862         * doc/reference/tmpl/gsequence.sgml:
10863         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
10864         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
10865         * doc/reference/tmpl/rb-daap-connection.sgml:
10866         * doc/reference/tmpl/rb-daap-dialog.sgml:
10867         * doc/reference/tmpl/rb-daap-mdns.sgml:
10868         * doc/reference/tmpl/rb-daap-share.sgml:
10869         * doc/reference/tmpl/rb-daap-sharing.sgml:
10870         * doc/reference/tmpl/rb-daap-source.sgml:
10871         * doc/reference/tmpl/rb-daap-src.sgml:
10872         * doc/reference/tmpl/rb-daap-structure.sgml:
10873         * doc/reference/tmpl/rb-debug.sgml:
10874         * doc/reference/tmpl/rb-dialog.sgml:
10875         * doc/reference/tmpl/rb-druid.sgml:
10876         * doc/reference/tmpl/rb-entry-view.sgml:
10877         * doc/reference/tmpl/rb-enums.sgml:
10878         * doc/reference/tmpl/rb-file-helpers.sgml:
10879         * doc/reference/tmpl/rb-glade-helpers.sgml:
10880         * doc/reference/tmpl/rb-header.sgml:
10881         * doc/reference/tmpl/rb-history.sgml:
10882         * doc/reference/tmpl/rb-ipod-source.sgml:
10883         * doc/reference/tmpl/rb-iradio-source.sgml:
10884         * doc/reference/tmpl/rb-library-source.sgml:
10885         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
10886         * doc/reference/tmpl/rb-metadata.sgml:
10887         * doc/reference/tmpl/rb-new-station-dialog.sgml:
10888         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
10889         * doc/reference/tmpl/rb-play-order-linear.sgml:
10890         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
10891         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
10892         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
10893         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
10894         * doc/reference/tmpl/rb-play-order-random.sgml:
10895         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
10896         * doc/reference/tmpl/rb-play-order.sgml:
10897         * doc/reference/tmpl/rb-player.sgml:
10898         * doc/reference/tmpl/rb-playlist-manager.sgml:
10899         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
10900         * doc/reference/tmpl/rb-playlist-source.sgml:
10901         * doc/reference/tmpl/rb-preferences.sgml:
10902         * doc/reference/tmpl/rb-property-view.sgml:
10903         * doc/reference/tmpl/rb-query-creator-private.sgml:
10904         * doc/reference/tmpl/rb-query-creator.sgml:
10905         * doc/reference/tmpl/rb-rating-helper.sgml:
10906         * doc/reference/tmpl/rb-rating.sgml:
10907         * doc/reference/tmpl/rb-recorder.sgml:
10908         * doc/reference/tmpl/rb-refstring.sgml:
10909         * doc/reference/tmpl/rb-removable-media-manager.sgml:
10910         * doc/reference/tmpl/rb-removable-media-source.sgml:
10911         * doc/reference/tmpl/rb-search-entry.sgml:
10912         * doc/reference/tmpl/rb-shell-clipboard.sgml:
10913         * doc/reference/tmpl/rb-shell-glue.sgml:
10914         * doc/reference/tmpl/rb-shell-player-glue.sgml:
10915         * doc/reference/tmpl/rb-shell-player.sgml:
10916         * doc/reference/tmpl/rb-shell-preferences.sgml:
10917         * doc/reference/tmpl/rb-shell.sgml:
10918         * doc/reference/tmpl/rb-song-display-box.sgml:
10919         * doc/reference/tmpl/rb-song-info.sgml:
10920         * doc/reference/tmpl/rb-source-header.sgml:
10921         * doc/reference/tmpl/rb-source.sgml:
10922         * doc/reference/tmpl/rb-sourcelist-model.sgml:
10923         * doc/reference/tmpl/rb-sourcelist.sgml:
10924         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
10925         * doc/reference/tmpl/rb-statusbar.sgml:
10926         * doc/reference/tmpl/rb-stock-icons.sgml:
10927         * doc/reference/tmpl/rb-string-helpers.sgml:
10928         * doc/reference/tmpl/rb-thread.sgml:
10929         * doc/reference/tmpl/rb-tray-icon.sgml:
10930         * doc/reference/tmpl/rb-tree-dnd.sgml:
10931         * doc/reference/tmpl/rb-tree-model-sort.sgml:
10932         * doc/reference/tmpl/rb-util.sgml:
10933         * doc/reference/tmpl/rhythmdb-property-model.sgml:
10934         * doc/reference/tmpl/rhythmdb-query-model.sgml:
10935         * doc/reference/tmpl/rhythmdb-tree.sgml:
10936         * doc/reference/tmpl/rhythmdb.sgml:
10937         * macros/.cvsignore:
10938         * shell/Makefile.am:
10939         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
10940         (rb_source_finalize), (rb_source_set_property),
10941         (rb_source_get_property), (default_get_pixbuf),
10942         (_rb_source_show_popup):
10943         * sources/rb-source.h:
10944         Add support for gtk-doc in rhythmbox.
10945         Convert RBSource to use newer glib functions, such as add_private.
10946         Gives RBSource a default get_pixbuf implementation.
10948 2005-09-25  James Livingston  <jrl@ids.org.au>
10950         * NEWS: Update with about a months worth of changes
10952         * data/glade/song-info-multiple.glade:
10953         * data/glade/song-info.glade:
10954         * data/rhythmbox.schemas:
10955         * lib/rb-preferences.h:
10956         * rhythmdb/rhythmdb.h:
10957         * shell/rb-shell-player.c:
10958         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
10959         few remaining parts of autorating.
10961 2005-09-24  James Livingston  <jrl@ids.org.au>
10963         * shell/rb-shell.c: (rb_shell_constructor),
10964         (rb_shell_window_state_cb), (rb_shell_set_visibility),
10965         (rb_shell_window_configure_cb): store window state in the gconf keys,
10966         so that it gets used. Closes bugs 313893 and 137068.
10968 2005-09-20  James Livingston  <jrl@ids.org.au>
10970         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
10971         crash if the entry has a NULL string in a property
10972         
10973         * shell/rb-removable-media-manager.c:
10974         (rb_removable_media_manager_load_media): fix some memory leaks
10975         
10976         (rb_removable_media_manager_mount_volume),
10977         (rb_removable_media_manager_eject_medium_cb),
10978         (rb_removable_media_manager_cmd_eject_medium): use
10979         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
10980         
10981         * sources/rb-removable-media-source.c:
10982         (rb_removable_media_source_set_property),
10983         (rb_removable_media_source_get_property): use
10984         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
10986 2005-09-18  James Livingston  <jrl@ids.org.au>
10988         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
10989         column
10991         * data/glade/general-prefs.glade:
10992         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
10993         (rb_shell_preferences_column_check_changed_cb),
10994         (rb_shell_preferences_sync): add checkbox to control visibility
10995         of the column
10996         
10997         
10998         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
10999         (save_entry):
11000         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
11001         (rhythmdb_prop_get_type):
11002         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
11003         was as "last played" is handled
11004         
11005         * sources/rb-library-source.c: (rb_library_source_constructor):
11006         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
11007         Make the column show in the library and playlists
11008         
11009         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
11010         * widgets/rb-entry-view.h: add the column
11011         
11012         * widgets/rb-query-creator-properties.c: allow automatic playlists to
11013         be sorted by the column
11015 2005-09-16  James Livingston  <jrl@ids.org.au>
11017         * shell/rb-shell-player.c: (rb_shell_player_init),
11018         (rb_shell_player_do_previous_or_seek),
11019         (rb_shell_player_previous_button_cb),
11020         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
11021         (rb_shell_player_playpause_button_cb): Make the previous button act
11022         the same as the menu item. Fix an inversion of the "previous track or
11023         seek" logic.
11024         
11025         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11026         
11027         (rb_shell_player_playpause): make --play-pause stop source that can't
11028         be paused
11030 2005-09-15  James Livingston  <jrl@ids.org.au>
11032         * configure.ac: increase totem-plparser requirements to 1.1.5
11034         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
11035         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
11036         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
11037         use the newer playlist APIs to save the name of the playlist, and use
11038         the name of a loaded playlist.
11040         Closes bug 309817.
11042 2005-09-15  James Livingston  <jrl@ids.org.au>
11044         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11046         * shell/Makefile.am: stop some linker warnings
11048         * shell/main.c: (main): make --no-registration work with dbus
11050 2005-09-15  James Livingston  <jrl@ids.org.au>
11052         * daapsharing/rb-daap-sharing.c: (create_share):
11053         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
11054         reference sinking and counting issues that I caused.
11056 2005-09-15  James Livingston  <jrl@ids.org.au>
11058         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
11059         playing" icon in the "now playing" column header.
11061 2005-09-14  James Livingston  <jrl@ids.org.au>
11063         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
11064         daap shares, when sharing is turned off.
11066 2005-09-12  Bastien Nocera  <hadess@hadess.net>
11068         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
11069         the GConf value's default, especially for badly installed schema
11070         files
11072 2005-09-12  James Livingston  <jrl@ids.org.au>
11074         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
11076         Patch from Paolo Borelli <pborelli@katamail.com>
11078         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
11079         grip when maximised. Closes bug 316055.
11081 2005-09-11  James Livingston  <jrl@ids.org.au>
11083         Patch from William Jon McCann <mccann@jhu.edu>
11085         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
11086         subclass of GtkStatusbar instead of GtkHBox.
11087         (rb_statusbar_construct): Don't set border width.
11088         (rb_statusbar_init): Use resize grip.  Don't use
11089         markup.
11090         (set_statusbar_tooltip, unset_statusbar_tooltip) 
11091         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
11092         Connect tooltips for actions.
11093         (rb_statusbar_sync_status): Push new message to statusbar.
11094         (rb_statusbar_set_progress): Don't use markup.
11095         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
11096         flag here since it prevents actually showing or hiding.
11097         (rb_statusbar_sync_with_source): Push new message to statusbar.
11099 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
11101         * daapsharing/rb-daap-structure.c:
11102         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
11103         around debugging definition.
11105 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
11106         
11107         * daapsharing/rb-daap-structure.c:
11108         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
11109         type = version.
11111         * daapsharing/rb-daap-mdns.c/h:
11112         (resolve_cb): Updated mDNS resolve callback to send service-name &
11113         name (read from Machine Name in the TXT data or equal to service-name
11114         if not in TXT).
11116         * daapsharing/rb-daap-source.c:
11117         (rb_daap_source_class_init), (rb_daap_source_set_property), 
11118         (rb_daap_source_get_property), (rb_daap_source_new),
11119         (find_source_by_service_name), (resolve_cb), (browse_cb), 
11120         (stop_resolver), (start_browsing), (stop_browsing), 
11121         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
11122         and added 'host' and 'port' gobject properties.  Updated to use new
11123         mDNS resolve callback sending service-name & name arguments.
11125 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
11127         * daapsharing/rb-daap-mdns.c:
11128         (howl_strerror): New function to report errors from Howl
11129         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
11130         (get_sw_discovery), (get_avahi_client): Better error reporting from
11131         Howl & Avahi.
11133         * sources/rb-daap-source.:
11134         (start_browsing), (stop_browsing): Fixed a bug where browsing would
11135         not get started or stopped in some situations.
11136         
11137 2005-09-12  James Livingston  <jrl@ids.org.au>
11139         * shell/rb-removable-media-manager.c: add a missing include, that
11140         would stop compilation if ipod support wasn't turned on
11142 2005-09-11  James Livingston  <jrl@ids.org.au>
11144         * daapsharing/rb-daap-dialog.c: (encode_base64),
11145         (rb_daap_password_dialog_new_run),
11146         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
11147         it is no broken in to two pieces, and remove a use of a goto
11148         
11149         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
11150         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
11151         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
11152         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
11153         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
11154         memory leaks, and some code style things.
11155         
11156         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
11157         (rb_daap_share_init), (rb_daap_share_set_property),
11158         (rb_daap_share_dispose), (rb_daap_share_new),
11159         (rb_daap_share_get_property): make the DB and the playlist manager
11160         gobject properties.
11161         
11162         (message_add_standard_headers),
11163         (message_set_from_rb_daap_structure), (server_info_cb),
11164         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
11165         (server_cb), (add_db_entry), (db_entry_added_cb),
11166         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
11167         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
11168         style and use CONF_PREFIX in the gconf keys
11169         
11170         * daapsharing/rb-daap-sharing.c: (create_share),
11171         (enable_sharing_changed_cb), (share_name_changed_cb),
11172         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
11173         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
11174         (rb_daap_src_instance_init), (rb_daap_src_dispose),
11175         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
11176         (rb_daap_src_get_property), (rb_daap_src_getcaps),
11177         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
11178         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
11179         (rb_daap_src_get_time): Deal with gconf callbacks where the key
11180         hasn't actually changed, fix some memory leaks, code style and release
11181         gconf notifications when the object is destroyed.
11182         
11183         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
11184         (rb_daap_source_class_init), (rb_daap_source_init),
11185         (rb_daap_source_dispose), (rb_daap_source_set_property),
11186         (rb_daap_source_get_property), (rb_daap_source_new),
11187         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
11188         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
11189         (rb_daap_sources_init), (rb_daap_sources_shutdown),
11190         (rb_daap_source_activate), (rb_daap_source_disconnect),
11191         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
11192         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
11193         release gconf notifications, handle gconf callbacks where the key
11194         hasn't changed, make "real name" and "password protected" gobject
11195         properties, fix some code style and fix a memory leak.
11197 2005-09-11  James Livingston  <jrl@ids.org.au>
11199         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11201         * shell/rb-playlist-manager.c:
11202         (rb_playlist_manager_save_playlists),
11203         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
11204         when we aren't supposed to. (Closes bug 315886)
11206 2005-09-11  James Livingston  <jrl@ids.org.au>
11208         * shell/rb-removable-media-manager.c:
11209         (rb_removable_media_manager_class_init),
11210         (rb_removable_media_manager_init),
11211         (rb_removable_media_manager_dispose),
11212         (rb_removable_media_manager_set_property),
11213         (rb_removable_media_manager_get_property),
11214         (rb_removable_media_manager_new),
11215         (rb_removable_media_manager_load_media),
11216         (rb_removable_media_manager_volume_mounted_cb),
11217         (rb_removable_media_manager_volume_unmounted_cb),
11218         (rb_removable_media_manager_mount_volume),
11219         (rb_removable_media_manager_unmount_volume),
11220         (rb_removable_media_manager_source_deleted_cb),
11221         (rb_removable_media_manager_append_media_source),
11222         (rb_removable_media_manager_set_uimanager),
11223         (rb_removable_media_manager_eject_medium_cb),
11224         (rb_removable_media_manager_cmd_eject_medium):
11225         * shell/rb-removable-media-manager.h:
11226         * sources/rb-removable-media-source.c:
11227         (rb_removable_media_source_class_init),
11228         (rb_removable_media_source_init),
11229         (rb_removable_media_source_dispose),
11230         (rb_removable_media_source_set_property),
11231         (rb_removable_media_source_get_property), (impl_get_pixbuf),
11232         (impl_delete_thyself):
11233         * sources/rb-removable-media-source.h: Add the four files that I
11234         somehow managed not to add to cvs in the last commit. Oops.
11236 2005-09-11  James Livingston  <jrl@ids.org.au>
11238         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
11239         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
11240         
11241         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
11242         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
11243         removable-media-manager on startup, and handle creation of sources.
11244         
11245         * sources/rb-ipod-source.h:
11246         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
11247         (rb_ipod_source_init), (rb_ipod_source_constructor),
11248         (rb_ipod_source_dispose), (rb_ipod_source_new),
11249         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
11250         the iPod source over to the removable media framework.
11251         
11252         * sources/rb-library-source.c: (paned_size_allocate_cb),
11253         (rb_library_source_get_paned_key): fix a potential bug is a
11254         library-derived source doesn't have a paned-key
11256 2005-09-11  Bastien Nocera  <hadess@hadess.net>
11258         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
11259         mp3 when we can't get the suffix of a file (Closes: #315941)
11261 2005-09-10  James Livingston  <jrl@ids.org.au>
11263         * configure.ac: fix the mdns tests, so that it doesn't complain about
11264         not finding one, if daap support isn't being compiled in
11266 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
11268         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
11270         * daapsharing/rb-daap-dialog.c:
11271         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
11272         HIG compliancy & images.
11274         * daapsharing/rb-daap-mdns.c:
11275         (browse_cb), (resolve_cb): Better detection of local services.  
11276         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
11277         Howl's limitations.  Fix the way collision handling is done under
11278         Avahi.
11280         * daapsharing/rb-daap-share.c:
11281         (publish_cb): Better name collision handling (at least for Avahi).
11283 2005-09-10  James Livingston  <jrl@ids.org.au>
11285         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
11286         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
11287         preferences more HIG compliant (Closes #315889)
11288         
11289         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
11290         list of files to be translated
11292 2005-09-10  James Livingston  <jrl@ids.org.au>
11294         * configure.ac: fix it so that --enable-daap=no works
11295         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
11296         uninstalled
11298 2005-09-10  James Livingston  <jrl@ids.org.au>
11300         Patch from Christophe Fergeau <teuf@gnome.org>
11302         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
11303         the ipod code.
11305 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
11306         * README.daap: Updating documentation
11308 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
11309         * AUTHORS: Added myself.
11311         * daapsharing/rb-daap-connection.c:
11312         (connection_login), (rb_connection_new): Reorganized password
11313         handling.
11315         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
11317         * shell/rb-shell.c:
11318         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
11320         * sources/rb-daap-source.c:
11321         (rb_daap_source_activate): Better error handling when we are unable to
11322         connect.
11323         
11324 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
11325         * README.daap: Fixed some terminology.
11327         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
11328         New --with-mdns=auto|howl|avahi flag to specify.
11330         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
11331         name collision dialogs.
11333         * daapsharing/rb-daap-connection.c:
11334         (connection_get_password), (build_message), (http_get)
11335         (connection_login): Ask for & use a password if the share demands it.
11337         * daapsharing/rb-daap-connection.h: Changed prototype of
11338         rb_daap_connection_new.
11339         
11340         * daapsharing/rb-daap-mdns.c: 
11341         (resolve_cb): Better detection of your own music share so it doesn't 
11342         appear in the sourcelist.
11344         * daapsharing/rb-daap-share.c:
11345         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
11346         that start on any available port.
11348         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
11350         * sources/rb-daap-source.c:
11351         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
11352         (browse_cb): Handle passworded shares. Resolve the host immediately
11353         instead of when activated.
11354         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
11355         (rb_daap_source_new): New GConf keys for UI state.
11356         (rb_daap_source_activate): Use RBPlaylistSource instead of
11357         RBDAAPPlaylistSource
11358         
11359         * sources/rb-daap-playlist-source.c/h: Removed
11361         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
11362         if the playlist is local (i.e. not DAAP or iPod).
11363         
11364         * shell/rb-playlist-manager.c:
11365         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
11366         wouldn't get saved if the last playlist hadn't changed.  Only save
11367         local playlists.
11368         
11369 2005-09-09  James Livingston  <jrl@ids.org.au>
11371         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
11372         iPod preferences pane, as it already uses the browser views as the
11373         library.
11375 2005-09-09  James Livingston  <jrl@ids.org.au>
11377         * sources/rb-library-source.c: (rb_library_source_finalize),
11378         (rb_library_source_constructor): fix gconf monitoring of library
11379         preference keys.
11380         * sources/rb-library-source.h: remove declaration of function that
11381         does not exist
11383 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
11385         * player/rb-player-gst.c:
11386         (rb_player_set_time): Fix seeking in daap streams.
11388 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
11390         * data/rhythmbox.schemas: Turn music share browsing on by default.
11392 2005-09-07  James Livingston  <jrl@ids.org.au>
11394         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
11396 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
11397         * player/rb-player-gst.c: 
11398         (rb_player_get_time): Fix for extra << & == that accidentally made
11399         it in.
11401         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
11402         
11403 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
11404         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
11405         it in last time.  Sorry.
11407 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
11408         
11409         * player/rb-player-gst.c:
11410         (rb_player_get_time): Fix a small crash appearing when
11411         the uri isn't set in the player, but rb_player_get_time() is
11412         still called.
11414         * configure.ac: Also check for libsoup 2.4, which is what ships with
11415         Gnome 2.12.
11417         * po/POTFILES.in: Added music sharing files that have translatable 
11418         strings.
11420         * README.daap: New file explaining "How Music Sharing Works"  
11422 2005-09-06  Bastien Nocera  <hadess@hadess.net>
11424         * daapsharing/.cvsignore: added
11426 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
11428         * daapsharing/*: Music sharing library.
11429         
11430         * sources/rb-daap-source.c/h: Music share RBSource.
11431         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
11433         * configure.ac: --enable-daap flag to turn on music sharing. Requires
11434         libsoup and a mutlicast DNS implementation (howl or avahi).
11436         * data/rhythmbox.schemas: New GConf keys for music sharing.
11438         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
11439         source right click menu.
11441         * player/rb-player-gst.c: Changes to properly play & seek in remote
11442         music share files.
11444         * shell/rb-playlist-manager.c/h:
11445         (rb_playlist_manager_get_playlists): New function to get a GList * of
11446         the playlists.
11447         (rb_playlist_manager_save_playlists): Don't save music share playlists
11448         and fixed a GObject reference leak.
11450         * shell/rb-shell.c/h:
11451         (rb_shell_append_source): No longer a local function.  Now takes a
11452         parent RBSource * argument, NULL to append a toplevel source.
11453         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
11454         source (useful for disconnecting from remote music share,
11455         specifically).
11456         (rb_shell_quit): Stop music sharing/browsing.
11457         (rb_shell_playlist_added_cb): Work with tree source structure.
11458         (rb_shell_get_property): "playlist-manager" property accessor.
11459         (rb_shell_class_init): New "playlist-manager" property.
11460         (rb_shell_construor): Append sources as toplevel sources.  Initialize
11461         daap sharing/browsing.
11462         (rb_shell_select_source): Notify source of activation/deactivation.
11464         * shell/rb-shell-prefernces.c: Music sharing preferences.
11466         * sources/rb-source.c/h: New activate, deactivate and disconnect
11467         class functions.  Activate & deactivate are notification style 
11468         functions that will tell a source when it is selected/unselected.
11469         Disconnect can be hooked up to a UI object to disconnect the source.
11471         * sources/rb-sourcelist-model.c:
11472         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
11473         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
11474         append a toplevel source.
11476 2005-09-05  James Livingston  <jrl@ids.org.au>
11478         * rhythmdb/rhythmdb-query-model.c:
11479         (rhythmdb_query_model_entry_changed_cb),
11480         (rhythmdb_query_model_do_reorder): Update the query model's totals if
11481         the duration of filesize of an entry changes.  Emit the row-changed
11482         signals that I forgot to put back in, when I was doing query sorting.
11484         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
11485         out "0 minutes" or "0 bytes".
11487 2005-09-04  James Livingston  <jrl@ids.org.au>
11489         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
11490         remove a leftover bit of the "internal-name" property of sources.
11492 2005-09-03  James Livingston  <jrl@ids.org.au>
11494         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
11495         extraneous debug message
11496         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
11497         crasher would affect any library-derived sources (which was also a
11498         memory leak).
11500 2005-09-02  Colin Walters  <walters@verbum.org>
11502         * configure.ac: Fix sytnax error.
11504         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
11505         code to disable minimization icons - need to figure out
11506         why it doesn't work...
11508 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
11510         * data/glade/song-info-multiple.glade:
11511         * data/glade/song-info.glade:
11512         * widgets/rb-song-info.c: (rb_song_info_constructor):
11513         Add a mnemonic to the newly added "Automatically rate" label
11514         in the properties dialog and use a bold typeface like all the 
11515         other labels in the dialog. (Closes bug 315089)
11517 2005-09-03  James Livingston  <jrl@ids.org.au>
11519         * sources/rb-library-source.c: (rb_library_source_class_init),
11520         (rb_library_source_finalize), (rb_library_source_constructor),
11521         (rb_library_source_set_property), (rb_library_source_get_property),
11522         (impl_get_paned_key), (paned_size_allocate_cb),
11523         (rb_library_source_state_prefs_sync), (impl_show_popup),
11524         (rb_library_source_get_paned_key):
11525         * sources/rb-library-source.h: Allow sources derived from
11526         RBLibrarySource to use different gconf keys for sort order, browser
11527         visibility and browser pane position. Fix a crasher if a derived
11528         source overrides _get_pixbuf.
11530 2005-09-02  Colin Walters  <walters@verbum.org>
11532         * shell/rb-shell.c (rb_shell_set_visibility): Move
11533         hint setting which seems to avoid races more.
11534         
11535 2005-09-03  James Livingston  <jrl@ids.org.au>
11537         * shell/rb-shell.c: fix compilation with iPod support enabled
11538         
11539 2005-09-02  Colin Walters  <walters@verbum.org>
11541         * shell/rb-shell.c (struct RBShellPrivate): Add
11542         idle_hide_mainwindow_id.
11543         (rb_shell_constructor): Move taskbar skipping hint into
11544         rb_shell_set_visibility.
11545         (idle_hide_mainwindow): New function.
11546         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
11547         racy hack to avoid rb appearing in taskbar when minimized.
11549 2005-09-01  Colin Walters  <walters@verbum.org>
11551         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
11553         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
11554         from gtkstatusicion.c.
11556         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
11558         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
11559         TrayShowWindow entry.
11560         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
11561         (rb_tray_icon_constructor): Create action group here.
11562         (rb_tray_icon_finalize): Destroy action group.
11563         (rb_tray_icon_set_property): Don't take an action group.
11564         (rb_tray_icon_new): Ditto.
11565         (tray_popup_position_menu): Some mostly boilerplate code
11566         to position menu.
11567         (rb_tray_icon_button_press_event_cb): Position menu.
11568         (rb_tray_icon_get_geom): New function used for the shell
11569         to set minimization hints.
11571         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
11573         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
11574         (struct RBShellPrivate): Change visible to iconified.
11575         (set_icon_geometry): New function from Søren Sandmann to
11576         tell Metacity where to draw the minimization animiation.
11577         (rb_shell_window_state_cb): Update iconified.
11578         (rb_shell_get_visibility): New function to say whether
11579         or not we're currently visible.
11580         (rb_shell_set_visibility): Update to minimize to
11581         tray or present as appropriate.
11582         (rb_shell_window_delete_cb): On window close, just
11583         minimize to tray if we're deleted.
11584         (rb_shell_set_window_title): Kill old notification code.
11585         (rb_shell_toggle_visibility): Nwe function.
11586         (rb_shell_cmd_toggle_visibility): Call it.
11587         (rb_shell_constructor): Skip the taskbar.
11588         (tray_destroy_cb): Better debugging.
11589         
11590 2005-09-01  Colin Walters  <walters@verbum.org>
11592         * data/ui/rhythmbox-ui.xml: Add MusicClose.
11594         * configure.ac: Enable bonobo by default.
11595         
11596 2005-09-01  Colin Walters  <walters@verbum.org>
11598         * configure.ac: Default to old art.  Add macros subdir.
11600         * Makefile.am (SUBDIRS): Add macros.
11602         * macros/Makefile.am: New.
11603         
11604 2005-09-01  Colin Walters  <walters@verbum.org>
11606         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
11607         rb-shell-player.xml.
11609         * remote/dbus/rb-remote-dbus.h: Deleted.
11610         
11611         * remote/dbus/Makefile.am: Delete all the junk, just dist
11612         rb-print-playing.py and rb-set-rating.py.
11614         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
11616         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
11618 2005-09-02  James Livingston  <jrl@ids.org.au>
11620         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
11621         file from cvs
11623         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
11624         (rb_shell_constructor): Patches from Jonathan Matthew
11625         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
11626         a crash when using "browse this artist".
11628 2005-08-31  Colin Walters  <walters@verbum.org>
11630         * configure.ac: Add --with-old-art configure switch.  Also
11631         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
11632         but it doesn't work.
11634         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
11635         Don't use eel_create_colorized_pixbuf for new art.
11636         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
11638         * data/art-clearlooks: New artwork.
11639         
11640 2005-08-31  Colin Walters  <walters@verbum.org>
11642         * shell/main.c (main): Fix Bastien's commit to continue to focus
11643         the window with GTK+ 2.8 at least.
11644         
11645 2005-08-31  Colin Walters  <walters@verbum.org>
11647         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
11648         is already loaded.
11650         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
11652 2005-08-31  Bastien Nocera  <hadess@hadess.net>
11654         * README: remove mentions of the xine-lib backend
11655         * shell/main.c: (main): make it compilable with gtk+ < 2.8
11657 2005-08-30  Colin Walters  <walters@verbum.org>
11659         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
11660         Make non-visible sources insensitive.
11661         
11662 2005-08-30  Colin Walters  <walters@verbum.org>
11664         * shell/rb-shell.c: Don't use GConf for selected source; it's
11665         confusing to have the selected source change after startup,
11666         and since we don't save other things it's not worth saving this.
11668         * sources/rb-playlist-source.c:
11669         * sources/rb-library-source.c:
11670         * sources/rb-iradio-source.c:
11671         * sources/rb-ipod-source.c: Delete internal-name property usage.
11672         * sources/rb-source.c: Delete internal-name property.
11674         * data/rhythmbox.schemas: Delete selected_source.
11675         
11676 2005-08-30  Colin Walters  <walters@verbum.org>
11678         * sources/rb-sourcelist.c: Make playing source bold instead of
11679         displaying a pixbuf; it's much less ugly.
11680         
11681 2005-08-30  Colin Walters  <walters@verbum.org>
11683         * sources/rb-source.c:
11684         * sources/rb-source.h: New virtual method try_playlist.
11686         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
11687         impl_try_playlist.
11688         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
11689         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
11690         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
11691         need to.
11692         (stations_view_drag_data_received_cb): Don't check for iradio uris;
11693         in theory we should though...
11695         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
11696         list in rb_shell_construct now.
11697         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
11698         RBiPodSource.
11699         (rb_shell_constructor): Create library, iradio, ipod here.
11700         (rb_shell_source_deleted_cb): Use source directly instead of
11701         indirecting through type.
11702         (rb_shell_sync_selected_source): Ditto.
11703         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
11704         from the type instead of special-casing.
11705         (rb_shell_guess_type_for_uri) 
11706         (rb_shell_add_uri)
11707         (handle_one_uri_with_possible_metadata): New functions.
11708         (rb_shell_load_uri): Refactor to allow loading playlists again,
11709         also use other URI infrastructure.
11711         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
11712         (rb_shell_player_error): Always set entry error on error, instead
11713         of depending on EOF behavior.
11715         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
11716         to just invoke rb_shell_add_uri.
11717         (rb_playlist_manager_parse_file): Return error instead of tossing
11718         up dialog box directly.
11719         (load_playlist_response_cb): Display error here.
11720         (add_uri_to_playlist): Delete.
11721         (handle_playlist_entry_into_playlist_cb): Renamed to
11722         handle_playlist_entry_cb.
11724         * shell/rb-playlist-manager.h: Add error, update prototype.
11726         * lib/rb-file-helpers.c:
11727         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
11729 2005-08-29  Colin Walters  <walters@verbum.org>
11731         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
11732         if entry already exists.  Use rhythmdb_entry_set_uninserted.
11734         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
11735         needlessly duping string, and use rhythmdb_entry_set_uninserted.
11736         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
11738         * shell/rb-shell.h (enum RBShellError): Add some more errors.
11739         Prototype rb_shell_set_song_property.
11741         * shell/rb-shell.xml: Export setSongProperty.
11743         * shell/rb-shell.c (rb_shell_set_song_property): New function.
11744         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
11745         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
11747         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
11748         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
11749         want to notify of the change.
11750         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
11752         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
11753         logic error; idle functions would be enqueued for each set.
11754         (rhythmdb_entry_set): Fix assertion logic error.
11756         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
11757         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
11758         Return if the entry already exists.
11759         
11760 2005-08-29  Colin Walters  <walters@verbum.org>
11762         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
11763         "inserted" member which we use to keep track of
11764         whether or not an entry is in the DB.  Prototype
11765         rhythmdb_entry_set_uninserted.
11767         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
11768         flag.
11769         (rhythmdb_entry_insert): Assert entry is not already inserted.
11770         (rhythmdb_process_metadata_load): Update to call _set_uninserted
11771         just after creating entry.
11772         (rhythmdb_entry_set): Document, and fail on uninserted entries.
11773         (rhythmdb_entry_set_nonotify): Ditto.
11774         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
11775         entries.
11776         (rhythmdb_entry_set_internal): Change notify flag to
11777         notify_if_inserted.  Also move notification after assertions.
11779         Update all existing callers of rhythmdb_entry_set_internal
11780         to give TRUE for notify_if_inserted; this should be what
11781         we want but may be an efficiency hit.
11782         
11783 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
11785         * shell/rb-shell-player.c: (rb_shell_player_init),
11786         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
11787         (rb_shell_player_set_playing_source_internal),
11788         (rb_shell_player_sync_with_selected_source): Notify the player when an
11789         entry has updated the title, album or artist field, and resync the big
11790         display.
11791         
11792         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11793         * sources/rb-library-source.c: (rb_library_source_class_init),
11794         (impl_get_config_widget):
11795         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
11796         * sources/rb-source.c:
11797         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
11798         get_album functions in rb-source and adapted other sources accordingly.
11799         
11800 2005-08-29  Colin Walters  <walters@verbum.org>
11802         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
11803         signal_change member.
11804         (threadsafe_entry_set): New function.
11805         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
11806         (rhythmdb_entry_set_nonotify): New function; just call
11807         threadsafe_entry_set with FALSE.
11808         (rhythmdb_entry_set_internal): Take a notify flag; if true
11809         add the change to our pending set.
11811         Also update all internal callers of rhythmdb_entry_set_internal
11812         to pass FALSE.  Some of these may be bugs however and need to
11813         pass TRUE...
11815         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
11816         rhythmdb_entry_set, and rename rhythmdb_entry_set to
11817         rhythmdb_entry_set_nonotify.
11819         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
11820         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
11822         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
11824         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
11825         * sources/rb-source.c (rb_source_update_play_statistics): 
11826         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
11827         * sources/rb-ipod-source.c (entry_set_string_prop) 
11828         (load_ipod_db_idle_cb): 
11829         * shell/rb-shell.c (rb_shell_set_rating_impl): 
11830         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
11831         (info_available_cb): 
11832         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
11833         (rb_station_properties_dialog_sync_entries): 
11834         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
11836         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
11837         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
11838         
11839 2005-08-29  Colin Walters  <walters@verbum.org>
11841         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
11843         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
11844         linking insanity.
11846         * widgets/rb-header.c (sanitize_string): New function, extracted
11847         from old info_url.  Be sure to always strip the string.
11848         (info_url): Rewrite to take artist/album, and generate a sane
11849         URL for them from last.fm, which is better than allmusic.com in
11850         that they support Rhythmbox, and have a *SANE* URL scheme.
11851         (artist_info_url, album_info_url): Delete.
11852         (rb_header_sync): Use info_url.
11854 2005-08-29  James Livingston  <jrl@ids.org.au>
11856         * sources/rb-source.c: (rb_source_search): Check to ensure that this
11857         is implemented before calling it. Many sources don't implement the
11858         method.
11860 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
11862         * data/glade/create-playlist.glade:  Cleanup the layout,
11863         and add a few more mnemonics.
11864         * shell/rb-playlist-manager.c:
11865         (rb_playlist_manager_cmd_load_playlist),
11866         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
11867         capitalization for window titles.
11868         * widgets/rb-query-creator-properties.c: Add mnemonics
11869         to checkbutton labels.
11870         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
11871         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
11873 2005-08-28  Colin Walters  <walters@verbum.org>
11875         * data/rhythmbox.schemas: Delete search_text for library
11876         and iradio; this isn't a persistent value anymore.
11877         Closes #313757.
11878         
11879         * sources/rb-source.h:
11880         * sources/rb-source.c: Delete impl_can_search.
11882         * sources/rb-iradio-source.c: Delete search_text usage.
11883         * sources/rb-library-source.c: Ditto.
11885         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
11886         search when source is set, and just do rb_source_search in
11887         rb_source_header_search_cb.
11889         * shell/rb-shell.c (rb_shell_append_source): Don't
11890         initiate search.
11892         * shell/Makefile.am: Don't dist dashboard.c.
11894 2005-08-28  Colin Walters  <walters@verbum.org>
11896         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
11897         
11898 2005-08-28  Colin Walters  <walters@verbum.org>
11900         * data/org.gnome.Rhythmbox.service.in: New.
11902         * data/Makefile.am: Install service file.
11904         * configure.ac: Define DBUS_SERVICES_DIR.
11906         * autogen.sh: Set ACLOCAL_FLAGS.
11908         * macros/acinclude.m4: New.
11909         
11910 2005-08-28  Colin Walters  <walters@verbum.org>
11912         Initial patch from Jonathan Matthew; closes 313684.
11914         * rhythmdb/rhythmdb-tree.c:
11915         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
11916         (save_entry): Return on error.
11917         (rhythmdb_tree_save): Handle error when saving the
11918         db; additionally, handle errors from fclose and unlink,
11919         and print error too.
11921 2005-08-28  Colin Walters  <walters@verbum.org>
11923         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
11924         extra _.
11925         
11926 2005-08-28  Colin Walters  <walters@verbum.org>
11928         * configure.ac: Change iPod support to --with-ipod;
11929           automatically enable it if we have HAL.  Try to
11930           support both HAL 0.5 and HAL 0.2.  Break out
11931           totem-plparser into its own check so later we
11932           can do version tests there too.
11933           Kill dashboard support.
11934         
11935         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
11936         to support HAL > 0.5, but preserve the old code for HAL < 0.5
11937         Closes #310017.
11938         
11939         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
11940         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
11942         * sources/Makefile.am: Also handle
11943         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
11945         * shell/dashboard.c: Delete; someone should just write a little
11946         python shim which lists on the D-BUS interface and writes the
11947         stuff to Dashboard.  Even better Dashboard should be ported
11948         to D-BUS and do the listening itself, perhaps on an abstract
11949         "org.gnome.MusicPlayer" interface or something.
11951         * shell/rb-shell.c: Kill dashboard support.
11953 2005-08-28  Colin Walters  <walters@verbum.org>
11955         * remote/dbus/rb-print-playing.py: New file.
11957 2005-08-28  Colin Walters  <walters@verbum.org>
11959         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
11960         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
11962         * shell/rb-shell-player.h:
11963         * shell/rb-shell-player.c: Add playing-uri-changed signal.
11964         * shell/rb-shell-player.xml: Export it.
11966         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
11967         (rb_shell_error_quark): New.
11969         * shell/rb-shell.h: Prototype.  Also add RBShellError.
11970         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
11971         
11972 2005-08-28  Colin Walters  <walters@verbum.org>
11974         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
11975         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
11976         bonobo_unlock.
11977         (rb_remote_bonobo_preinit): Lock setting moved here.
11978         (rb_remote_bonobo_init): From here.
11980         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
11981         Also invoke handle_cmdline in the right place.
11982         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
11983         GFunc.
11985 2005-08-28  James Livingston  <jrl@ids.org.au>
11987         * NEWS: keep the NEWS file up to date, so we don't have to do it all
11988         when 0.9.1 comes around.
11990 2005-08-28  James Livingston  <jrl@ids.org.au>
11992         * iradio/rb-new-station-dialog.c:
11993         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
11994         bug 314477.
11996 2005-08-28  James Livingston  <jrl@ids.org.au>
11998         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
12000         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
12001         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
12002         is a song is longer than 60 minutes. Closes bug 313311.
12004 2005-08-27  James Livingston  <jrl@ids.org.au>
12006         * data/glade/create-playlist.glade:
12007         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
12008         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
12009         "minutes" as an option in the playlist limit menu.
12011         * rhythmdb/rhythmdb-query-model.c:
12012         (rhythmdb_query_model_class_init),
12013         (rhythmdb_query_model_set_property),
12014         (rhythmdb_query_model_get_property),
12015         (rhythmdb_query_model_update_limited_entries): Allow query models to
12016         have a time limit
12017         
12018         * shell/rb-playlist-manager.c:
12019         (rb_playlist_manager_set_automatic_playlist),
12020         (rb_playlist_manager_cmd_edit_automatic_playlist):
12021         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
12022         (rb_playlist_source_get_query), (impl_receive_drag),
12023         (rb_playlist_source_new_from_xml),
12024         (rb_playlist_source_save_to_xml),
12025         (rb_playlist_source_songs_sort_order_changed_cb),
12026         (rb_playlist_source_do_query):
12027         * sources/rb-playlist-source.h:
12028         * widgets/rb-query-creator.h: Allow playlists to be limited by time
12030 2005-08-27  James Livingston  <jrl@ids.org.au>
12032         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
12034         * configure.ac:
12035         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
12036         non-standard location. Closes bug 314640.
12038 2005-08-26  Colin Walters  <walters@verbum.org>
12039         
12040         Patch from Olivier Blin <oblin@mandriva.com>
12042         * widgets/eggnotificationbubble.c (draw_bubble): 
12043         Handle extreme-left case as well.
12044         
12045 2005-08-26  Colin Walters  <walters@verbum.org>
12047         * shell/rb-shell.c (idle_save_state): Don't do this.
12048         (rb_shell_construct): Remove idle calls to idle_save_state.
12049         We should save the playlists automatically when they're
12050         modified.
12051         (rb_shell_load_uri): Don't try to re-stat entry if it already
12052         exists.
12054         * shell/rb-shell-player.c: Keep track of entry we are attempting
12055         to play.
12056         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
12057         Don't double-free error.
12058         (rb_shell_player_play_entry): Signal errors.
12059         (rb_shell_player_entry_activated_cb): Ditto.
12060         (rb_shell_player_property_row_activated_cb): Ditto.
12061         (rb_shell_player_set_playing_source_internal): Unset attempted
12062         playing entry.
12063         (rb_shell_player_error): Refactor to be usable both sync and
12064         async.  Handle case where displayed entry differs from entry.
12065         (error_cb): Move GDK locking here.
12067         * shell/main.c (main): Drop most commandline arguments for D-BUS;
12068         people can just use dbus-send or python.  We only support focusing
12069         and loading files.
12070         (load_uri_args): New function, extracted from handle_cmdline.
12071         (dbus_load_uri, bonobo_load_uri): New functions.
12073         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
12074         appropriate.
12076         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
12077         * remote/dbus/rb-remote-dbus.c: Deleted.
12079         * player/rb-player-gst.c: Clear any pending idle handlers when we
12080         close the player.  Signal errors generated during open/play etc
12081         as synchronous errors.
12083         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
12084         
12085 2005-08-26  Colin Walters  <walters@verbum.org>
12087         * shell/rb-shell.c (rb_shell_present): Try harder.
12089 2005-08-26  Colin Walters  <walters@verbum.org>
12091         * shell/rb-shell.c (rb_shell_present): Try to handle
12092         GTK_MINOR_VERSION < 8.
12094 2005-08-26  James Livingston  <jrl@ids.org.au>
12096         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
12097         <pbrobinson@gmail.com>
12099 2005-08-26  Colin Walters  <walters@verbum.org>
12101         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
12103 2005-08-25  Colin Walters  <walters@verbum.org>
12105         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
12106         Delete.
12107         (rb_shell_player_do_next_with_rating): Move back into
12108         rb_shell_player_do_next.
12109         (rb_shell_player_entry_activated_cb): Remove call to
12110         rb_shell_player_auto_adjust_rating.
12111         (do_next_idle): Just call rb_shell_player_do_next.
12113         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
12115 2005-08-25  Colin Walters  <walters@verbum.org>
12117         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
12118         before gtk_window_present_with_time.
12119         
12120 2005-08-25  Colin Walters  <walters@verbum.org>
12122         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
12123         default.
12125         * shell/rb-shell.c (rb_shell_constructor): Adapted from
12126         rb_shell_construct.  This is so we only have to do g_object_new.
12127         (rb_shell_get_player): New function.
12128         (rb_shell_get_player_path): Ditto.
12129         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
12130         
12131         * shell/rb-shell.h: Prototype them.
12133         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
12134         export over D-BUS.
12135         (reemit_playing_signal): New function.
12136         (rb_shell_player_open_playlist_location): Use return values from
12137         rb_player_open, rb_player_close, etc. instead of checking "error".
12138         Return a gboolean on failure.
12139         (rb_shell_player_open_entry): Just open entry location, don't
12140         print to stderr.
12141         (rb_shell_player_play): Handle retval from rb_player_play.  Return
12142         a gboolean.
12143         (do_next_idle): Move logic for handling of end of playlist here.
12144         (rb_shell_player_set_playing_entry): Take a GError, return a
12145         gboolean.  Update to use gboolean return values.
12146         (rb_shell_player_do_previous): Delete lots of crazy duplicate
12147         logic.  Signal an error on end of playlist.  Also signal error if
12148         we're not playing.  Move heuristic for replaying the song into
12149         rb_shell_player_cmd_previous.
12150         (rb_shell_player_do_next_with_rating): Signal error on end of
12151         playlist.
12152         (rb_shell_player_do_next): Return errors.
12153         (rb_shell_player_cmd_previous): Heuristic for restarting song
12154         moved here; the idea is you generally only want that from the GUI.
12155         (rb_shell_player_cmd_play): Handle error.
12156         (rb_shell_player_playpause): Signal errors.
12157         (filter_mmkeys): Use rb_shell_player_cmd_previous and
12158         rb_shell_player_cmd_next in favor of the internal _do functions.
12159         
12160         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
12161         errors.  Update prototypes for above changes.
12163         * shell/main.c: More tightly integrate D-BUS; register various
12164         major singleton objects here.  Fix handle_cmdline so we only
12165         process extra arguments, not every argument.
12167         * shell/Makefile.am: Generate D-BUS glue headers.
12169         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
12170         into shell/main.c.  Now this file just acts as a client library.
12171         Not heavily tested.
12173         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
12174         Moved here.
12175         (rb_remote_bonobo_init): Move long CORBA rant here along with
12176         setting of lock functions.
12178         * player/rb-player-gst.c (rb_player_construct)
12179         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
12180         on error.
12182         * player/rb-player.h: Update prototypes.
12184         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
12185         rb-remote-bonobo.c.
12186         (rb_threads_init): Don't set gdk lock functions here.
12188 2005-08-25  James Livingston  <jrl@ids.org.au>
12190         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
12192         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
12193         * lib/rb-tree-dnd.h:
12194         * rhythmdb/rhythmdb-property-model.c:
12195         (rhythmdb_property_model_class_init),
12196         (rhythmdb_property_model_drag_source_init),
12197         (rhythmdb_property_model_iter_parent),
12198         (rhythmdb_property_model_row_draggable),
12199         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
12200         (rhythmdb_property_model_drag_data_get),
12201         (rhythmdb_property_model_enable_drag):
12202         * rhythmdb/rhythmdb-property-model.h:
12203         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
12204         (rb_playlist_manager_set_property), (append_new_playlist_source),
12205         (rb_playlist_manager_save_playlists):
12206         * shell/rb-shell.c: (rb_shell_construct),
12207         (sourcelist_drag_received_cb):
12208         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
12209         * sources/rb-playlist-source.c: (impl_receive_drag):
12210         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12211         (rb_sourcelist_model_drag_dest_init),
12212         (rb_sourcelist_model_set_dnd_targets),
12213         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
12214         (rb_sourcelist_model_row_drop_position),
12215         (rb_sourcelist_model_get_drag_target),
12216         (rb_sourcelist_model_drag_data_get):
12217         * sources/rb-sourcelist-model.h:
12218         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12219         (rb_sourcelist_init), (rb_sourcelist_get_property),
12220         (rb_sourcelist_selection_changed_cb):
12221         * sources/rb-sourcelist.h:
12222         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
12223         improve drag-n-drop support. Allow dragging of item from property
12224         views to the source list, to create new automatic playlists. Allow
12225         playlist re-ordering. Fix dragging from Rhythmbox to other
12226         applications. (Closes bug 147337)
12228 2005-08-24  Colin Walters  <walters@verbum.org>
12230         Patch from Olivier Blin <oblin@mandriva.com>
12232         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
12233         correctly in the case where the window is next to monitor edge.
12235 2005-08-24  James Livingston  <jrl@ids.org.au>
12237         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12238         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
12239         a gobject property to get the query model that backs the playlist.
12241 2005-08-24  James Livingston  <jrl@ids.org.au>
12243         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
12244         (handle_playlist_entry_into_playlist_cb),
12245         (rb_playlist_manager_playlist_entries_changed): Disable the "create
12246         audio cd" menu item when a non-playlist source is selected, or the
12247         playlist is empty. (Closes Bug 313253)
12249 2005-08-24  James Livingston  <jrl@ids.org.au>
12251         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
12252         Fix the playlist length checkso it doesn't report 0 for automatic
12253         playlists. This was stopping automati playlists being burnt to cd.
12255 2005-08-24  James Livingston  <jrl@ids.org.au>
12257         * configure.ac:
12258         * sources/rb-playlist-source-recorder.c: (burn_cd):
12259         * sources/rb-playlist-source.c:
12260         (rb_playlist_source_songs_sort_order_changed_cb):
12261         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
12262         more warnings that occur when compiling RPMs on Fedora.
12264 2005-08-24  James Livingston  <jrl@ids.org.au>
12266         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
12267         was stopping some distros gcc version compiling.
12269 2005-08-24  James Livingston  <jrl@ids.org.au>
12271         * NEWS:
12272         * data/glade/create-playlist.glade:
12273         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
12274         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
12275         (rhythmdb_query_free), (rhythmdb_query_serialize),
12276         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
12277         * rhythmdb/rhythmdb.h:
12278         * shell/rb-playlist-manager.c:
12279         (rb_playlist_manager_set_automatic_playlist),
12280         (rb_playlist_manager_cmd_edit_automatic_playlist):
12281         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
12282         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
12283         (impl_receive_drag), (rb_playlist_source_new_from_xml),
12284         (rb_playlist_source_save_to_xml),
12285         (rb_playlist_source_songs_sort_order_changed_cb),
12286         (rb_playlist_source_do_query):
12287         * sources/rb-playlist-source.h:
12288         * widgets/Makefile.am:
12289         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
12290         (rb_entry_view_set_sorting_order):
12291         * widgets/rb-query-creator-private.h:
12292         * widgets/rb-query-creator-properties.c:
12293         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
12294         (stringCriteriaGetWidgetData),
12295         (escapedStringCriteriaSetWidgetData),
12296         (escapedStringCriteriaGetWidgetData), (set_rating_score),
12297         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
12298         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
12299         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
12300         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
12301         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
12302         (relativeTimeCriteriaCreateWidget),
12303         (relativeTimeCriteriaSetWidgetData),
12304         (relativeTimeCriteriaGetWidgetData):
12305         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
12306         (rb_query_creator_class_init), (rb_query_creator_constructor),
12307         (rb_query_creator_dispose), (rb_query_creator_set_property),
12308         (rb_query_creator_get_property), (rb_query_creator_load_query),
12309         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
12310         (get_entry_for_property), (rb_query_creator_get_query),
12311         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
12312         (limit_toggled_cb), (lookup_row_by_widget),
12313         (remove_button_click_cb), (append_row),
12314         (get_property_index_from_proptype), (select_criteria_from_value),
12315         (property_option_menu_changed), (create_property_option_menu),
12316         (create_criteria_option_menu), (sort_option_menu_changed),
12317         (setup_sort_option_menu):
12318         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
12319         playlists. The two most notable improvements are 1) adding more
12320         properties to the query creator, making it much easier to add more in
12321         the future, and 2) allow playlists to be sorted, from the query editor
12322         if they gave limits, and by clicking on column headers if they don't.
12324         Files added: widgets/rb-query-creator-private.h,
12325         sources/rb-query-creator-properties.c
12327 2005-08-21  James Livingston  <jrl@ids.org.au>
12329         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
12330         error=NULL. This stops some crashes.
12332 2005-08-19  Colin Walters  <walters@verbum.org>
12334         Patch from Olivier Blin <oblin@mandriva.com>
12336         * widgets/eggnotificationbubble.c (force_window): Support top
12337         orientation.
12338         * widgets/eggnotificationbubble.h: Remove
12339         egg_notification_bubble_force_window from header.
12340         
12341 2005-08-18  James Livingston  <jrl@ids.org.au>
12343         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
12344         with the changes since then.
12346 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
12348         * shell/rb-shell-player.c: (rb_shell_player_init),
12349         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
12350         (rb_shell_player_volume_widget_changed_cb):
12351         * sources/rb-iradio-source.c:
12352         * sources/rb-library-source.c:
12353         * sources/rb-playlist-source.c:
12354         * widgets/Makefile.am:
12355         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
12356         (bacon_volume_button_class_init), (bacon_volume_button_init),
12357         (bacon_volume_button_dispose), (bacon_volume_button_new),
12358         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
12359         (bacon_volume_button_scroll), (bacon_volume_button_press),
12360         (cb_button_timeout), (cb_button_press), (cb_button_release),
12361         (bacon_volume_release_grab), (cb_dock_press),
12362         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
12363         (bacon_volume_scale_new), (bacon_volume_scale_press),
12364         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
12365         * widgets/bacon-volume.h:
12366         * widgets/rb-volume.c:
12367         * widgets/rb-volume.h:
12368           Use BaconVolumeButton (#300867).
12370 2005-08-17  James Livingston  <jrl@ids.org.au>
12372         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
12373         (rhythmdb_process_metadata_load): don't reset the First Seen time
12374         whenever we recheck the metadata.
12376 2005-08-17  James Livingston  <jrl@ids.org.au>
12378         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
12379         temporary workaround to stop crashes when trying to burn an empty
12380         playlist. Doesn't disable the menu item which is the better solution
12381         (Bug 313253).
12383 2005-08-15  James Livingston  <jrl@ids.org.au>
12385         * shell/rb-source-header.c: (rb_source_header_init),
12386         (rb_source_header_sync_control_state),
12387         (rb_source_header_search_activate_cb):
12388         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12389         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
12390         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
12391         (rb_search_entry_init), (rb_search_entry_searching),
12392         (rb_search_entry_activate_cb):
12393         * widgets/rb-search-entry.h: Move focus to the entry view when user
12394         presses enter in the search box. Patch from Paolo Borelli
12395         <pborelli@katamail.com> (Closes bug 128110)
12397 2005-08-15  James Livingston  <jrl@ids.org.au>
12399         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
12400         (rb_playlist_manager_new_playlist):
12401         * shell/rb-playlist-manager.h:
12402         * shell/rb-shell.c: (rb_shell_construct),
12403         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
12404         the source list to be shown when a new playlist is created. (Closes
12405         bug 161935)
12407 2005-08-15  James Livingston  <jrl@ids.org.au>
12409         * widgets/rb-header.c: (rb_header_init),
12410         (rb_header_set_show_timeline): disable the seek slider, rather than
12411         hiding it, which more closely follows the HIG. (Closes bug 139102)
12413 2005-08-13  Colin Walters  <walters@verbum.org>
12415         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
12416         rb_shell_hidden_notify.
12417         (rb_shell_hidden_notify): Notify if the shell is hidden.
12418         (rb_shell_set_visibility_impl): Debug goo.
12420         * shell/rb-shell.h: Export rb_shell_hidden_notify.
12422         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
12423         when the user clicks on notification.
12425         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
12426         CD burn is complete.
12427         (rb_playlist_source_recorder_finalize): Unref shell.
12428         (rb_playlist_source_recorder_new): Take shell.
12430         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
12431         Pass shell to RBPlaylistSourceRecorder.
12432         
12433 2005-08-13  Colin Walters  <walters@verbum.org>
12435         * lib/rb-thread.c:
12436         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
12437           time to convert.
12439 2005-08-13  Colin Walters  <walters@verbum.org>
12441         * widgets/eggnotificationbubble.h:
12442         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
12443         * widgets/eggtrayicon.c:
12444         * widgets/eggtrayicon.h: Add notification API.
12445         * shell/rb-tray-icon.c:
12446         * shell/rb-tray-icon.h: Add notification API.
12447         * shell/rb-shell.c: Notify on song change.
12449 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
12451         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
12452         Correct an inversion of two lines causing NULL to be unreffed
12454 ============ Version 0.9.0
12456 2005-08-10  Bastien Nocera  <hadess@hadess.net>
12458         * configure.ac: 0.9.0, whee!
12459         * NEWS: badly updated
12460         * remote/bonobo/Makefile.am:
12461         * remote/bonobo/rb-remote-bonobo.h:
12462         * shell/Makefile.am:
12463         * shell/main.c: make distcheck fixes