Updated Macedonian Translation <arangela@cvs.gnome.org>
[rhythmbox.git] / ChangeLog
blobc950ecd6f7c9b6f9edcb47dfddc69ce1bcf4af2f
1 2006-06-06  James Livingston  <doclivingston@gmail.com>
3         * configure.ac: bump version for a prerelease, turn on track transfer
4         by default.
6         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
7         ipod transfer stuff, since it has big issues and we'll hopefully land
8         real support (bug 310774) after 0.9.5
10 2006-06-06  James Livingston  <doclivingston@gmail.com>
12         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
13         id3v2mux once we've detected it.
15 2006-06-06  James Livingston  <doclivingston@gmail.com>
17         * lib/Makefile.am:
18         * tests/test-rhythmdb.c: undo accidental commit which caused
19         rb-thread.c to be built (which it isn't normally)
21 2006-06-06  James Livingston  <doclivingston@gmail.com>
23         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
24         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
25         fail_{if/unless} calls, as some versions of check need them (they are
26         optional in others). Should fix bug 343718.
28 2006-06-06  James Livingston  <doclivingston@gmail.com>
30         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
31         343836.
32         
33         * lib/Makefile.am:
34         * lib/rb-thread.c: (process_actions):
35         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
36         tests that don't pass.
38 2006-06-05  James Livingston  <doclivingston@gmail.com>
40         * data/glade/Makefile.am:
41         * data/glade/load-failure.glade:
42         * data/rhythmbox.schemas: remove the remainder of the old load-failure
43         dialog.
45 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
47         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
48         checked in.
50 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
52         * bindings/python/rb.defs:
53         * sources/rb-source.h:
54         * sources/rb-source.c: (rb_source_class_init),
55         (rb_source_set_property), (rb_source_get_property),
56         (rb_sourcelist_group_get_type):
57         Add 'sourcelist-group' property on the RBSource class, describing how
58         sources should be grouped in the source list.
60         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
61         (rb_sourcelist_model_new), (real_row_is_separator),
62         (rb_sourcelist_model_is_row_visible),
63         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
64         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
65         (rb_sourcelist_model_row_draggable),
66         (rb_sourcelist_model_row_inserted_cb),
67         (rb_sourcelist_model_row_deleted_cb),
68         (rb_sourcelist_model_get_group_path):
69         * sources/rb-sourcelist-model.h:
70         * sources/rb-sourcelist.c: (rb_sourcelist_init),
71         (rb_sourcelist_append):
72         Add group marker rows for each sourcelist group, and use these to
73         insert sources in the right place.  Sort transient sources (DAAP
74         shares) by name.  Show the group marker rows as separators when the
75         next visible row is a source.  Make persistant sources (playlists) and
76         removable sources reorderable using drag and drop, restricting them
77         within the source groups.
78         
79         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
80         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
81         * sources/rb-daap-source.c: (rb_daap_source_new):
82         * sources/rb-ipod-source.c: (rb_ipod_source_new):
83         * sources/rb-static-playlist-source.c:
84         (rb_static_playlist_source_new):
85         * plugins/generic-player/rb-generic-player-source.c:
86         (rb_generic_player_source_new):
87         * plugins/generic-player/rb-nokia770-source.c:
88         (rb_nokia770_source_new):
89         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
90         Add source list group information to existing source classes.
92         Fixes #318754 and #336492.
94 2006-06-04  James Livingston  <doclivingston@gmail.com>
96         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
97         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
98         win32 build fixes.
100 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
102         * rhythmdb/rhythmdb-query-model.c:
103         (rhythmdb_query_model_class_init),
104         (rhythmdb_query_model_remove_from_main_list):
105         * rhythmdb/rhythmdb-query-model.h:
106         Add a new 'post-entry-delete' signal, emitted when the entry has been
107         removed from the model's data structures.
109         * shell/rb-play-order.c: (rb_play_order_finalize),
110         (rb_play_order_query_model_changed),
111         (rb_play_order_post_entry_delete_cb):
112         Use the new signal to update the play order, so the queue play order
113         doesn't try to scroll to entries that don't exist in a way that causes
114         the tree view to crash.  Fixes #340216.
116 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
118         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
119         Fix rb_debug call I missed previously.
121 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
123         * metadata/rb-metadata-gst.c:
124         Don't use NULL as the error message for ignored files, as it crashes
125         with some C libraries.  Fixes #343713.
127 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
129         * widgets/rb-dialog.c: (rb_error_dialog):
130         * widgets/rb-dialog.h:
131         Mark rb_error_dialog as taking printf-like arguments, and use a format
132         string for the primary message rather than passing in the message
133         directly.
135         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
136         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
137         (info_available_cb):
138         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
139         * shell/rb-removable-media-manager.c:
140         (rb_removable_media_manager_eject_medium_cb):
141         Make sure all calls to rb_error_dialog use string constants for the
142         format string rather than passing the error message directly.  Remove
143         an extra %s from the message used when playback fails.  Fixes #343562.
145         * lib/rb-debug.h:
146         * sources/rb-audiocd-source.c:
147         * plugins/audioscrobbler/rb-audioscrobbler.c:
148         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
149         Mark rb_debug as taking printf-like arguments and fix a few resulting
150         warnings.
152 2006-06-02  James Livingston  <doclivingston@gmail.com>
154         * configure.ac:
155         + macros/check.m4: add support for using check for unit tests, the .m4
156         files is so autogen can run without check being installed
158         * tests/Makefile.am:
159         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
160         some of the old tests, and add some new ones. Currently
161         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
162         yet (the query doesn't return any entries).
164         - tests/deserialization-test1.xml:
165         - tests/deserialization-test2.xml:
166         - tests/deserialization-test3.xml:
167         - tests/test-rhythmdb-indexing.c:
168         - tests/test-rhythmdb-simple.c:
169         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
170         have been ported
172         - tests/test-cd.c:
173         - tests/test-cmdline.c: remove obsolete tests
175 2006-06-02  James Livingston  <doclivingston@gmail.com>
177         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
178         (rb_add_id3_tagger), (rb_metadata_init): add support for using
179         id3v2mux, and check whether we are using a version of id3mux that has
180         the correct merge-mode behaviour.
182         * plugins/sample-python/Makefile.am: fix distcheck.
184         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
185         the changed-files source was added before trying to remove it.
187         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
188         *old* bug which would crash if a query with top-level disjunctions
189         tried to check later disjunctive parts. Hooray for unit-testing.
191 2006-06-02  William Jon McCann  <mccann@jhu.edu>
193         * player/rb-recorder-gst.c (rb_recorder_set_device):
194         Check for a null drive.
196 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
198         * lib/Makefile.am:
199         * lib/rb-stock-icons.c: (rb_stock_icons_init):
200         Register the app icon as a builtin if the icon theme can't find it.
202 2006-05-31  James Livingston  <doclivingston@gmail.com>
204         * player/rb-recorder-gst.c: add missing include.
206 2006-05-30  William Jon McCann  <mccann@jhu.edu>
208         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
209         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
210         (tick_timeout_cb), (rb_recorder_sync_pipeline),
211         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
212         (rb_recorder_set_device), (rb_recorder_get_default_device):
213         * shell/main.c: (main):
214         * shell/rb-removable-media-manager.c:
215         (rb_removable_media_manager_finalize),
216         (get_nautilus_burn_drive_for_path),
217         (rb_removable_media_manager_playing_uri_changed_cb),
218         (rb_removable_media_manager_load_media),
219         (nautilus_burn_drive_get_device),
220         (rb_removable_media_manager_scan):
221         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
223         Update for libnautilus-burn 2.15.3 API changes.
224         Fixes #342604
226 2006-05-30  James Livingston  <doclivingston@gmail.com>
228         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
229         "return" to that it asks for the password again if it was wrong.
231 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
233         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
234         typefind element.
236 2006-05-30  James Livingston  <doclivingston@gmail.com>
238         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
239         (download_progress_cb): don't do wonky things if the transfer
240         "suceeds" without transferring any data.
242 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
244         * sources/rb-library-source.c: (layout_example_label_update),
245         (build_filename):  Fix crash when no audio profile is selected.
246         Fixes #341447.
248 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
250         * shell/rb-shell.c: (rb_shell_clear_queue):
251         * shell/rb-shell.h:
252         * shell/rb-shell.xml:
253         * sources/rb-play-queue-source.c:
254         (rb_play_queue_source_clear_queue),
255         (rb_play_queue_source_cmd_clear):
256         * sources/rb-play-queue-source.h:
257         Add clearQueue dbus method.
259 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
261         * shell/main.c: (main):  Implement --quit option.
263 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
265         * rhythmdb/rhythmdb-private.h:
266         * rhythmdb/rhythmdb-tree.h:
267         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
268         (rhythmdb_entry_insert), (rhythmdb_entry_set),
269         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
270         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
271         (rhythmdb_entry_get_boolean):
272         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
273         bitmask, giving the db backend anything past the first 16 bits for 
274         its own private use.
276         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
277         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
278         Add a 'loading' flag to indicate that an entry is being loaded from
279         disk, and use that to ignore entry_set operations on such entries
280         rather than the 'inserted' flag, which doesn't quite mean the same
281         thing.  Fixes #342694.
283 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
285         * shell/rb-shell.xml: Remove visibility property, since it causes
286         crashes (dbus bug 7057) and doesn't do much else.
288 2006-05-28  James Livingston  <doclivingston@gmail.com>
290         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
292         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
293         * po/POTFILES.in: fix some more i18n issues.
295 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
297         * bindings/python/rb.defs:
298         * shell/rb-shell-player.c: (rb_shell_player_playpause),
299         (filter_mmkeys):
300         * shell/rb-shell-player.h:
301         Deprecate the useless 'ignore_stop' parameter to
302         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
303         API.  From bug #334829.
305 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
307         * plugins/generic-player/rb-generic-player-source.c:
308         (visit_playlist_dirs), (default_transform_playlist_uri):
309         When playlist parsing fails, unref the playlist, not the parent
310         source.  Fix memory leak in playlist uri transform.
311         * plugins/generic-player/rb-nokia770-source.c:
312         (impl_transform_playlist_uri):
313         Fix memory leak in playlist uri transform.
315 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
317         * doc/reference/Makefile.am: fix grk-doc build
319 2006-05-27  James Livingston  <doclivingston@gmail.com>
321         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
323         * plugins/lyrics/lyrics.py:
324         * po/POTFILES.in: Make strings in plugins translatable. From bug
325         343081.
327 2006-05-27  James Livingston  <doclivingston@gmail.com>
329         * backends/Makefile.am:
330         * backends/gstreamer/Makefile.am:
331         * lib/Makefile.am:
332         * plugins/audioscrobbler/Makefile.am:
333         * plugins/generic-player/Makefile.am:
334         * po/POTFILES.in:
335         * rhythmdb/rhythmdb-monitor.c:
336         * rhythmdb/rhythmdb.c:
337         * sources/Makefile.am:
338         * widgets/Makefile.am: fix compilation after some CVS surgery was
339         done.
341 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
343         * bindings/python/rhythmdb.defs:
344         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
345         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
346         (rhythmdb_query_deserialize):
347         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
348         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
349         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
350         (rhythmdb_entry_register_type_alias),
351         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
352         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
353         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
354         (rhythmdb_entry_podcast_feed_get_type),
355         (rhythmdb_entry_import_error_get_type),
356         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
357         * rhythmdb/rhythmdb.h:
358         Allocate a specified amount of extra memory for each db entry, to be
359         used to store fields specific to the entry type.  Optionally associate
360         a name with each entry type, to be used when saving entries and
361         auto playlists to disk.  Allow entry types to have multiple names
362         to handle older playlist files that used '0' to represent 'song'.
363         Use private data to store podcast fields.
365         * rhythmdb/rhythmdb-private.h:
366         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
367         (rhythmdb_tree_parser_end_element), (save_entry),
368         (rhythmdb_tree_entry_set):
369         Simplify property handling by using existing code to convert
370         properties from strings to GValues and to set properties on entries.
371         Other assorted changes due to the above.
373         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
374         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
375         * sources/rb-generic-player-source.c:
376         (rb_generic_player_source_new):
377         * sources/rb-ipod-source.c: (rb_ipod_source_new):
378         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
379         * sources/rb-psp-source.c: (rb_psp_source_new):
380         Update for changes to rhythmdb_entry_register_type.  None of these
381         entry types need names or use private data.
383         Fixes #337429.
385 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
387         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
388         Fix creation of ignored-file db entries - need to check for
389         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
391 2006-05-25  James Livingston  <doclivingston@gmail.com>
393         * AUTHORS:
394         * MAINTAINERS: update my email address
396 2006-05-25  James Livingston  <doclivingston@gmail.com>
398         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
399         "(... mix)" when searching for lyrics. Cache the lyrics under
400         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
402 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
404         * sources/rb-import-errors-source.c:
405         (rb_import_errors_source_class_init):
406         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
407         * sources/rb-browser-source.c: (rb_browser_source_class_init):
408         * sources/rb-source.c: (rb_source_class_init),
409         (default_move_to_trash):
410         Implement the basic move-to-trash operation once in rb-source.c, 
411         rather than in each source type that supports it.
413         * plugins/ipod/rb-ipod-plugin.c:
414         * shell/rb-removable-media-manager.c:
415         * shell/rb-shell.c: (rb_shell_constructor):
416         Only scan removable media once after loading plugins.  Add a flag
417         plugins can use to check if the initial scan has been done.
419         * data/rhythmbox.schemas:
420         Enable ipod and generic-player plugins by default.
421         
422         * configure.ac:
423         * data/ui/Makefile.am:
424         * data/ui/generic-player-ui.xml:
425         * data/ui/rhythmbox-ui.xml:
426         * plugins/Makefile.am:
427         * plugins/generic-player/Makefile.am:
428         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
429         * plugins/generic-player/rb-generic-player-plugin.c:
430         * sources/Makefile.am:
431         * sources/rb-generic-player-source.c:
432         * sources/rb-generic-player-source.h:
433         * sources/rb-nokia770-source.c:
434         * sources/rb-nokia770-source.h:
435         * sources/rb-psp-source.c: (visit_playlist_dirs):
436         * sources/rb-psp-source.h:
437         Pluginise generic player (and nokia770 and PSP) support and add
438         move-to-trash for players not mounted read-only.
439         Fixes #342868.
441 2006-05-24  William Jon McCann  <mccann@jhu.edu>
443         * daapsharing/rb-daap-connection.c (handle_song_listing):
444         Lower bound check for batch commit.  Fixes #342848
446         * sources/rb-daap-source.c (rb_daap_source_get_status):
447         Always set output variables if provided.
449 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
451         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
452         (rhythmdb_tree_entry_delete), (remove_one_song):
453         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
454         Fix two db entry reference counting problems.
455         The initial reference on the entry is held by the db backend, but it
456         was never being dropped.  The reference count was incremented when
457         adding an entry to the deleted_entries map and to the
458         deleted_entries_to_emit list, but only decremented for one of those.
460 2006-05-24  William Jon McCann  <mccann@jhu.edu>
462         * daapsharing/rb-daap-connection.c (http_response_handler) 
463         (rb_daap_connection_dispose):
464         Call soup_session_abort to make sure there are no outstanding
465         requests when we dispose of the connection.  Ignore cancelled
466         messages in the callback.
468 2006-05-24  William Jon McCann  <mccann@jhu.edu>
470         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
471         (rb_daap_source_disconnect): Set a flag when disconnecting
472         the source.  Check this flag in connection callback
473         to see if we should release the connection.
475 2006-05-24  William Jon McCann  <mccann@jhu.edu>
477         * daapsharing/Makefile.am:
478         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
479         (rb_daap_connection_class_init), (connection_connected),
480         (connection_disconnected), (connection_operation_done),
481         (build_message), (connection_set_error_message),
482         (actual_http_response_handler), (http_get),
483         (entry_set_string_prop), (emit_progress_idle),
484         (handle_server_info), (handle_login), (handle_update),
485         (handle_database_info), (handle_song_listing), (handle_playlists),
486         (handle_playlist_entries), (handle_logout),
487         (rb_daap_connection_new), (rb_daap_connection_is_connected),
488         (connection_response_data_free), (connected_cb),
489         (rb_daap_connection_connect), (disconnected_cb),
490         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
491         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
492         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
493         (rb_daap_connection_get_property):
494         * daapsharing/rb-daap-connection.h:
495         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
496         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
497         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
498         (rb_daap_hash_generate):
499         * daapsharing/rb-daap-hash.h:
500         * sources/rb-daap-source.c: (rb_daap_source_class_init),
501         (rb_daap_get_icon), (remove_source), (stop_browsing),
502         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
503         (connection_connecting_cb), (connection_disconnected_cb),
504         (release_connection), (rb_daap_source_connection_cb),
505         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
506         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
508         Adds a better async API for connect and disconnect.  Doesn't share
509         callback data for every async call.  Adds a connect signal.  Uses
510         an operation-done signal to trigger the callbacks.  Displays an
511         error when connections fail.  A few refcounting fixes to fix
512         crashes.  Uses a weak pointer to set the connection to NULL so we
513         don't clobber references.  Wait for each disconnect when shutting
514         down sources.  Split out DAAP hash stuff into its own file.  Fix
515         typo in header.
517         Fixes #342643
518         
519 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
521         * sources/rb-auto-playlist-source.c:
522         (rb_auto_playlist_source_new_from_xml):
523         Initialize the gvalue used to hold the size limit correctly.
524         Fixes #342744.
526 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
528         * shell/rb-shell.c: (rb_shell_window_delete_cb),
529         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
530         * shell/rb-shell.h:
531         * shell/rb-shell.xml:
532         Convert rb_shell_quit into a dbus method, and add visibility dbus
533         property.
535 2006-05-22  James Livingston  <doclivingston@gmail.com>
537         * rhythmdb/rhythmdb.h:
538         * rhythmdb/rhythmdb.c: (sync_entry_changed),
539         (rhythmdb_entry_is_editable), (action_thread_main),
540         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
541         vfuncs for can_sync_metadata, and sync_metadata. The default is always
542         false, and syncing into the file.
544         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
545         (rhythmdb_entry_iradio_get_type),
546         (rhythmdb_entry_import_error_get_type):
547         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
548         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
549         change the DB.
551 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
553         * rhythmdb/Makefile.am:
554         * rhythmdb/rhythmdb-monitor.c:
555         * rhythmdb/rhythmdb-private.h:
556         * rhythmdb/rhythmdb-query.c:
557         * rhythmdb/rhythmdb.c:
558         Split up rhythmdb.c a bit.
560 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
562         * data/glade/audioscrobbler-prefs.glade:
563         Add a link to the last.fm server status page.
565 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
567         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
568         Capitalization fix.
569         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
570         (impl_create_configure_dialog):  UI layout fixes, remove
571         dialog separator, and capitalization fix for window title.
572         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
573         and remove dialog separator.
574         * data/glade/plugins.glade:  UI layout fixes.
575         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
576         and capitalization fix.  Fixes #342438.
578 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
580         * data/glade/podcast-properties.glade:  Fix layout of the download 
581         location.  Fixes #342431.
583 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
585         * data/ui/rhythmbox-ui.xml:
586         We only need one copy of the 'add to queue' action in the edit menu.
588 2006-05-20  James Livingston  <doclivingston@gmail.com>
590         * data/ui/rhythmbox-ui.xml:
591         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
592         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
593         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
594         (rb_shell_clipboard_sync),
595         (rb_shell_clipboard_cmd_add_to_playlist_new),
596         (rb_shell_clipboard_cmd_queue_song_info),
597         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
598         (rb_shell_clipboard_playlist_deleted_cb),
599         (rb_shell_clipboard_playlist_renamed_cb),
600         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
601         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
602         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
603         dynamically generated with all the static playlists. Fixes bug 323364.
605         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
606         right child, so it doesn't go weird when art appears and disappears.
608 2006-05-20  James Livingston  <doclivingston@gmail.com>
610         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
612         * rhythmdb/rhythmdb-query-model.c:
613         (rhythmdb_query_model_set_property),
614         (rhythmdb_query_model_finalize),
615         (rhythmdb_query_model_reapply_query_cb):
616         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
617         (rhythmdb_query_append_prop_multiple),
618         (rhythmdb_query_is_time_relative):
619         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
620         time-based criteria, fixes bug 341131.
622 2006-05-20  James Livingston  <doclivingston@gmail.com>
624         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
625         we have already changed playing entries. Interpolate the art size so
626         it doesn't jump when the old and new images have different aspect
627         ratios.
629 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
631         * rhythmdb/rhythmdb-private.h:
632         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
633         (save_entry):
634         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
635         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
636         (rhythmdb_entry_get_ulong):
637         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
638         and elsewhere, use them on the stack rather than allocating on 
639         the heap.  From bug #342333.
641 2006-05-19  William Jon McCann  <mccann@jhu.edu>
643         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
644         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
645         (add_track), (eos_cb), (error_signal_idle),
646         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
647         (rb_recorder_construct), (recorder_track_free),
648         (rb_recorder_finalize):
649         * sources/rb-playlist-source-recorder.c:
650         Support libnautilus-burn size -> capacity API change.  Add
651         some braces to blocks.
653 2006-05-19  William Jon McCann  <mccann@jhu.edu>
655         * metadata/sj-metadata-musicbrainz.c:
656         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
657         Sync with sound-juicer in CVS.  Fixes #342177
658         * sources/rb-audiocd-source.c: Don't declare variables
659         in the middle of a block (c99ism).  Fix order of #includes.
660         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
661         one variable per line.  Update copyright date.
663 2006-05-19  James Livingston  <doclivingston@gmail.com>
665         patch by: Hendrik Richter  <hendi@gnome-de.org>
667         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
668         "translator_credits" to a hyphen, so it doesn't cause problems for
669         tools that check access keys. Fixes bug 341832.
671 2006-05-19  James Livingston  <doclivingston@gmail.com>
673         * po/POTFILES.in: remove references to files that don't exist any more
674         (fixes make distcheck).
676 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
678         * plugins/lyrics/lyrics.py:  Fix layout close button in 
679         Song Lyrics dialog. Fixes bug 342322.
681 2006-05-19  James Livingston  <doclivingston@gmail.com>
683         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
685         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
686         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
687         version checks not break when libnotify goes to 1.0.0. Fixes bug
688         342244.
690 2006-05-18  James Livingston  <doclivingston@gmail.com>
692         * shell/rb-shell-clipboard.c:
693         * shell/rb-shell.c:
694         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
696 2006-05-17  William Jon McCann  <mccann@jhu.edu>
698         * sources/rb-playlist-source-recorder.c (get_song_description):
699         Reverse artist and title in song description.  This
700         is useful because at least the title will be visible
701         when there is limited space.
703 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
705         * daapsharing/rb-daap-connection.c: (connection_get_password):
706         Take gdk lock before emitting authenticate signal.
707         * sources/rb-daap-source.c: (connection_connecting_cb):
708         Get rid of the unnecessary idle handler (it's already called from one)
709         Fixes #342047 once more.
711 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
713         * shell/rb-shell.c: (rb_shell_class_init):
714         * shell/rb-shell.h:
715         * widgets/rb-song-info.c: (rb_song_info_class_init),
716         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
717         (rb_song_info_constructor), (rb_song_info_get_property),
718         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
719         (rb_song_info_forward_clicked_cb):
720         * widgets/rb-song-info.h:
721         * data/glade/song-info-multiple.glade:
722         * lib/rb-marshal.list:
723         * bindings/python/Makefile.am:
724         * bindings/python/rb.defs:
725         * bindings/python/rb.override:
726         Allow plugins to add pages to the notebooks used in song info windows,
727         and to track the current song displayed in single-entry windows.
728         
729         * configure.ac:
730         * plugins/Makefile.am:
731         * plugins/lyrics/Loader.py:
732         * plugins/lyrics/Makefile.am:
733         * plugins/lyrics/lyrics.py:
734         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
735         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
736         as a separate window (for the playing song) or as a page in the song
737         info window.  A few TODO items left, but this fixes #319320.
739 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
741         Patch by:  Roozbeh Pournader
743         * configure.ac:
744         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
745         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
747 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
748         
749         * sources/rb-daap-source.c: (update_connection_status):
750         Correct return value.  Fixes #342047 again.
752 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
754         * sources/rb-daap-source.c: (update_connection_status),
755         (connection_connecting_cb):
756         Update status in an idle handler so we don't rely on the gdk lock
757         being recursive (because it isn't any more).  Fixes #342047.
759 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
761         * lib/rb-util.c: (rb_make_duration_string),
762         (rb_make_elapsed_time_string):
763         * lib/rb-util.h:
764         Add a function for formatting an elapsed time string.
766         * shell/rb-shell-player.c: (rb_shell_player_init),
767         (rb_shell_player_sync_with_source),
768         (rb_shell_player_get_playing_time_string), (tick_cb):
769         Store elapsed time in the private data structure, and use the above
770         function.
771         
772         * widgets/rb-header.c:
773         * widgets/rb-header.h:
774         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
775         object, so everything has the same idea of the elapsed time.
776         Fixes #339693.
778 2006-05-16  James Livingston  <doclivingston@gmail.com>
780         * bindings/python/rhythmdb.defs:
781         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
782         some parametre defaults, so you don't have to pass None, False for the
783         sorting order.
785 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
787         * bindings/python/rhythmdb.defs:
788         * rhythmdb/rhythmdb-query-model.c:
789         (rhythmdb_query_model_compute_status_normal):
790         * rhythmdb/rhythmdb-query-model.h:
791         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
792         * rhythmdb/rhythmdb.h:
793         Change the various compute_status methods to accept a singular/plural
794         pair to use in the status string.
795         
796         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
797         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
798         * sources/rb-source.c: (default_get_status):
799         Call entries 'songs' by default, and 'episodes' in the podcast source.
800         Fixes #340227.
802 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
804         patch by:  Paul Drain
806         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
807         Fixes #341817.
809 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
811         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
812         Generate reorder maps correctly.
813         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
814         Scroll to the first entry from the old selection.
815         Fixes #322992.
817 2006-05-15  William Jon McCann  <mccann@jhu.edu>
819         * data/ui/rhythmbox-ui.xml:
820         * lib/rb-preferences.h:
821         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
822         (rb_shell_playlist_created_cb),
823         (rb_shell_view_sidepane_changed_cb),
824         (rb_shell_sync_sidepane_visibility),
825         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
826         (sidepane_visibility_changed_cb):
827         * sources/rb-podcast-source.c:
828         Convert sourcelist visibility to side-pane visbility.
829         Fixes #339733
831 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
833         * widgets/rb-header.c:
834         * widgets/rb-header.h: Stop RBHeader from referring to itself as
835         'player', and make it use the private data structure allocated for it.
837 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
839         * configure.ac: enable metadata helper with dbus < 0.35.
841 2006-05-15  James Livingston  <doclivingston@gmail.com>
843         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
845         * data/glade/song-info.glade:
846         * widgets/rb-song-info.c: (rb_song_info_construct_single),
847         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
848         (rb_song_info_update_filesize): Add the file size into the song info
849         window. Fixes bug 340861.
851 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
853         * bindings/python/rhythmdb.defs:
854         * rhythmdb/rhythmdb-query-model.c:
855         (rhythmdb_query_model_set_property),
856         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
857         * rhythmdb/rhythmdb-query-model.h:
858         Add a new method to chain query models without importing entries from
859         the parent into the child.  This is useful when the subset of entries
860         in the child can be more easily determined by running a query than by
861         filtering entries from the parent.
863         * bindings/python/rb.defs:
864         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
865         (rb_library_browser_set_property),
866         (rb_library_browser_get_property), (rb_library_browser_new),
867         (rebuild_child_model):
868         * widgets/rb-library-browser.h:
869         * sources/rb-auto-playlist-source.c:
870         (rb_auto_playlist_source_constructor):
871         * sources/rb-static-playlist-source.c:
872         (rb_static_playlist_source_constructor):
873         * sources/rb-browser-source.c: (rb_browser_source_constructor):
874         Use more efficient queries for constructing the browser query model
875         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
876         backend to optimise the query) and run new queries rather than
877         filtering entries from the parent.  Fixes #341402.
879         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
881 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
883         * configure.ac:
884         * shell/Makefile.am:
885         * shell/main.c: (main), (load_uri_args), (send_present_message),
886         (unregister_dbus_handler), (handle_dbus_message),
887         (register_dbus_handler):
888         Add minimal support for dbus 0.31 - 0.35.
890         * doc/reference/Makefile.am:
891         * doc/reference/rhythmbox.types:
892         * data/Makefile.am:
893         * data/GNOME_Rhythmbox.server.in:
894         * data/rhythmbox.pc.in:
895         * remote/*:
896         * remote/bonobo/*:
897         Remove remaining bonobo and generic remote interface files.
899 2006-05-14  James Livingston  <doclivingston@gmail.com>
901         * shell/rb-shell.c: (construct_widgets):
902         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
903         resize the browser and queue-sidebar section of their panes, unless
904         the other section is below the minimum size. Fixes bug 331927.
906 2006-05-13  James Livingston  <doclivingston@gmail.com>
908         * rhythmdb/rhythmdb-query-model.c:
909         (rhythmdb_query_model_class_init),
910         (rhythmdb_query_model_set_property),
911         (rhythmdb_query_model_get_property),
912         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
913         (rhythmdb_query_model_insert_into_main_list),
914         (rhythmdb_query_model_insert_into_limited_list),
915         (rhythmdb_query_model_do_reorder),
916         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
917         (rhythmdb_query_model_location_sort_func),
918         (rhythmdb_query_model_title_sort_func),
919         (rhythmdb_query_model_album_sort_func),
920         (rhythmdb_query_model_artist_sort_func),
921         (rhythmdb_query_model_genre_sort_func),
922         (rhythmdb_query_model_track_sort_func),
923         (rhythmdb_query_model_double_ceiling_sort_func),
924         (rhythmdb_query_model_ulong_sort_func),
925         (rhythmdb_query_model_date_sort_func),
926         (rhythmdb_query_model_string_sort_func):
927         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
928         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
929         "data destroy" property. Fixed bug 341543.
931         * bindings/python/rhythmdb.defs:
932         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
933         rhythmdb_query_model_set_sorting_order
935         * rhythmdb/rhythmdb-property-model.c:
936         (rhythmdb_property_model_drag_data_get):
937         * sources/rb-import-errors-source.c:
938         (rb_import_errors_source_constructor):
939         * sources/rb-missing-files-source.c:
940         (rb_missing_files_source_constructor):
941         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
942         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
943         * widgets/rb-entry-view.h: adapt to the above change.
945 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
947         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
948         (rhythmdb_tree_load):
949         Commit loaded entries in batches, rather than individually.  
950         More startup time reduction.
952 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
954         * doc/reference/Makefile.am: fix gtk-doc compilation
956 2006-05-12  William Jon McCann  <mccann@jhu.edu>
958         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
959         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
960         * plugins/artdisplay/artdisplay/Loader.py:
961         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
962         Only call the first artist the best match when album==Unknown.
963         Don't perform each query twice if album doesn't include "Vol N".
964         Fix searching for compilations.  Fix blacklisting.
965         Part of bug #307848
967 2006-05-12  William Jon McCann  <mccann@jhu.edu>
969         * Makefile.am:
970         * bindings/python/Makefile.am:
971         * bindings/python/rb.defs:
972         * bindings/python/rb.override:
973         * configure.ac:
974         * doc/reference/Makefile.am:
975         * plugins/Makefile.am:
976         * plugins/audioscrobbler/Makefile.am:
977         * plugins/ipod/Makefile.am:
978         * plugins/lirc/Makefile.am:
979         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
980         (impl_activate), (impl_deactivate):
981         * plugins/sample/Makefile.am:
982         * remote/Makefile.am:
983         * shell/Makefile.am:
984         * shell/main.c: (main), (main_shell_weak_ref_cb):
985         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
986         (rb_shell_get_property), (rb_shell_window_state_cb),
987         (idle_hide_mainwindow), (rb_shell_set_visibility),
988         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
989         (rb_shell_set_song_property):
990         * shell/rb-shell.h:
991         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
992         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
993         (rb_tray_icon_get_property), (rb_tray_icon_new),
994         (rb_tray_icon_button_press_event_cb),
995         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
996         (rb_tray_icon_show_window_changed_cb):
997         * shell/rb-tray-icon.h:
999         Remove bonobo, require DBUS.
1000         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
1001         Fixes #339720
1003 2006-05-13  James Livingston  <doclivingston@gmail.com>
1005         * bindings/python/rb.override: fix some pointer-type warnings
1007 2006-05-12  James Livingston  <doclivingston@gmail.com>
1009         * lib/rb-util.c: (rb_value_free):
1010         * lib/rb-util.h: Add function to unset and free a GValue* that was
1011         allocated in the heap.
1013         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
1014         the metadata hastable values
1015         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
1016         leak the metadata hashtable structure
1017         * metadata/rb-metadata-dbus.c:
1018         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
1019         using g_strdup and then _take_string
1021         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
1022         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
1023         stat something.
1025         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
1026         leak the encoded string
1028         * widgets/rb-property-view.c:
1029         (rb_property_view_selection_changed_cb): set some variables to have
1030         inital values, because some code paths may not set them before we use
1031         them.
1033         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
1034         don't have python warning into a debug message".
1036 2006-05-10  William Jon McCann  <mccann@jhu.edu>
1038         * data/rhythmbox.schemas: Use zero instead of null for
1039         default burn speed.  Fixes #341283.
1041 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1043         * bindings/python/rb.defs:
1044         * widgets/rb-library-browser.c:
1045         (rb_library_browser_get_property_view):
1046         * widgets/rb-library-browser.h:
1047         Add a method to get the property view for a given property.
1049         * sources/rb-browser-source.c:
1050         (rb_browser_source_cmd_choose_genre),
1051         (rb_browser_source_cmd_choose_artist),
1052         (rb_browser_source_cmd_choose_album):
1053         Change the browser selection by changing the property view selection. 
1054         Makes the selection change visible, fixing #331740.
1056 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1058         * bindings/python/rb.defs:
1059         * bindings/python/rb.override:
1060         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
1061         * shell/rb-statusbar.c: (*),
1062         * sources/rb-import-errors-source.c: (impl_get_status):
1063         * sources/rb-iradio-source.c: (impl_get_status):
1064         * sources/rb-missing-files-source.c: (impl_get_status):
1065         * sources/rb-source.c: (default_get_status),
1066         (rb_source_get_status):
1067         * sources/rb-source.h:
1068         Allow sources to provide a progress value for the status bar.
1069         Simplify status bar processing (much less polling).
1070         Consider rhythmdb busy while it's still loading the database.
1072         * daapsharing/rb-daap-connection.c: (*)
1073         * daapsharing/rb-daap-connection.h:
1074         * lib/rb-marshal.list:
1075         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1076         (rb_daap_source_init), (connection_connecting_cb),
1077         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
1078         (rb_daap_source_get_status):
1079         Provide status information for DAAP connections, and move processing
1080         of large responses into a separate thread.
1081         Fixes bugs #322020 and #338978.
1083 2006-05-09  James Livingston  <doclivingston@gmail.com>
1085         Split the artdisplay plugin into several files.
1086         Fix loader and amazon-search re-use issues.
1087         Add some better search heuristics.
1089         * configure.ac:
1090         * plugins/artdisplay/Makefile.am:
1091         * plugins/artdisplay/artdisplay.py:
1092         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
1093         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
1094         * plugins/artdisplay/artdisplay/Loader.py:
1095         * plugins/artdisplay/artdisplay/Makefile.am:
1096         * plugins/artdisplay/artdisplay/__init__.py:
1098 2006-05-09  James Livingston  <doclivingston@gmail.com>
1100         * sources/rb-browser-source.h: remove the _has_first_added_column
1101         stuff since it isn't actually used anywhere. Sources that want it
1102         should just add it themselves, as the library already does
1104         * bindings/python/rb.defs:
1105         * sources/rb-daap-source.c: (rb_daap_source_class_init):
1106         * sources/rb-library-source.c: (rb_library_source_class_init):
1107         * sources/rb-removable-media-source.c:
1108         (rb_removable_media_source_class_init): Remove the remanants of the
1109         above.
1111 2006-05-09  James Livingston  <doclivingston@gmail.com>
1113         * bindings/python/rb.defs:
1114         * sources/rb-browser-source.h: remove a function that was declared in
1115         the header, but not defined anywhere.
1117 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1119         * plugins/artdisplay/.cvsignore:
1120         * plugins/ipod/.cvsignore: Added.
1122 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1124         * sources/rb-auto-playlist-source.c:
1125         (rb_auto_playlist_source_new_from_xml):
1126         Fix reading of older playlist files where all three limits were
1127         specified so we take the first nonzero limit.  From #341053.
1129 2006-05-09  James Livingston  <doclivingston@gmail.com>
1131         * bindings/python/Makefile.am:
1132         * bindings/python/rb.defs:
1133         * bindings/python/rb.override: bind RBBrowserSource,
1134         RBRemovableMediaSource and RBRemovableMediamanager.
1136 2006-05-09  James Livingston  <doclivingston@gmail.com>
1138         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
1140         * data/glade/plugins.glade: make the plugin dialog look a bit better.
1141         Fixes bug 339221.
1143 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1145         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
1146         Don't explode when trying to edit a query with no limit set.
1148 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1150         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
1151         Clear the should_queue flag when switching to a non-submittable entry,
1152         so we don't submit songs that played for three seconds before
1153         switching to a podcast episode.
1155         * rhythmdb/rhythmdb-query-model.c
1156         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
1157         in the drag data list.
1159 2006-05-08  James Livingston  <doclivingston@gmail.com>
1161         * lib/rb-util.c: (rb_value_array_append_data):
1162         * lib/rb-util.h: add function which is basically a combination of
1163         G_VALUE_COLLECT and g_value_array_append.
1165         * rhythmdb/rhythmdb-query-model.h:
1166         * rhythmdb/rhythmdb-query-model.c:
1167         (rhythmdb_query_model_class_init),
1168         (rhythmdb_query_model_set_property),
1169         (rhythmdb_query_model_get_property),
1170         (rhythmdb_query_model_finalize),
1171         (rhythmdb_query_model_update_limited_entries),
1172         (rhythmdb_query_model_set_sort_order),
1173         (rhythmdb_query_model_within_limit),
1174         (rhythmdb_query_model_limit_type_get_type): Make query model limits
1175         saner. Rather than having <count=N, time=N, size=N> we now have a
1176         <type, value> pair. This will also make it much easier to add new
1177         limit types in the future.
1179         * shell/rb-playlist-manager.c:
1180         (rb_playlist_manager_set_automatic_playlist),
1181         (rb_playlist_manager_cmd_edit_automatic_playlist):
1182         * sources/rb-auto-playlist-source.c:
1183         (rb_auto_playlist_source_finalize),
1184         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
1185         (_save_write_ulong), (_save_write_uint64),
1186         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
1187         (rb_auto_playlist_source_set_query),
1188         (rb_auto_playlist_source_get_query):
1189         * sources/rb-auto-playlist-source.h:
1190         * sources/rb-library-source.c:
1191         (rb_library_source_add_child_source):
1192         * sources/rb-psp-source.c: (visit_playlist_dirs):
1193         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
1194         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
1195         * widgets/rb-query-creator.h: Adapt to the above change.
1197 2006-05-08  James Livingston  <doclivingston@gmail.com>
1199         * shell/rb-playlist-manager.c:
1200         (rb_playlist_manager_cmd_edit_automatic_playlist):
1201         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
1202         (rb_auto_playlist_source_set_query),
1203         (rb_auto_playlist_source_get_query): copy the query in the _get method
1204         and free it in things calling that. Fixes a crasher.
1206 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1208         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
1209         Make entries on newly mounted volumes visible immediately, hiding them
1210         later if they turn out to be missing.  Fixes #340068.
1212 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1214         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
1215         Ignore zip files and ignore errors for files we've decided to ignore.
1217 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1219         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
1220         Add missing }, should fix #340844.
1222 2006-05-06  James Livingston  <doclivingston@gmail.com>
1224         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
1225         typo.
1227 2006-05-06  James Livingston  <doclivingston@gmail.com>
1229         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
1230         that we work with libnotify >= 0.4
1232 2006-05-06  James Livingston  <doclivingston@gmail.com>
1234         patch by: Joe Barnett  <thejoe@gmail.com>
1236         * configure.ac: check if we're using a version of libgpod that
1237         supports the Motorola ROKR
1239         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
1240         for the db path, if we using the newer version.
1242         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
1244 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1246         * rhythmdb/rhythmdb-query-model.c:
1247         (rhythmdb_query_model_drag_data_get):
1248         Use playback URI, not location, for drag data.  Fixes #322597.
1250 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
1252         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
1254 2006-05-03  James Livingston  <doclivingston@gmail.com>
1256         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
1257         (rb_add_id3_tagger), (rb_metadata_save):
1258         Set the tags on the tagging element when it is
1259         created, not during pipeline creation - which is required for
1260         dynamically created elements.
1262         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
1263         support for using the "vorbistag" element to re-tag ogg vorbis files.
1264         Fixes bug 339878.
1266 2006-05-03  James Livingston  <doclivingston@gmail.com>
1268         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
1270         * plugins/artdisplay/artdisplay.py:
1271         - Fix small bug callback of data loader getting overwritten on fast
1272         connections.
1273         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
1274         Jonathan Matthew)
1275         - Fix Rhythmbox UI blocking while loading/searching cover art
1276         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
1277         - Initial approach to allow additional "art search engines"
1278         - Further modularization in a couple of places
1279         - Minor fixes for empty entries (iradio, album, artist etc.)
1281 2006-05-03  James Livingston  <doclivingston@gmail.com>
1283         * shell/rb-playlist-manager.c:
1284         (rb_playlist_manager_playlist_entries_changed),
1285         (rb_playlist_manager_set_source): don't show the edit/delete/rename
1286         options for non-local sources, rather than showing disabled ones.
1288         * sources/rb-library-source.c: (add_child_sources_idle),
1289         (rb_library_source_constructor), (rb_library_source_new),
1290         (rb_library_source_library_location_changed),
1291         (rb_library_source_add_child_source),
1292         (rb_library_source_sync_child_sources): Create "child library" sources
1293         when the user has multiple library locations set. Fixes bug 100552.
1295 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1297         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
1298         * plugins/sample/sample.rb-plugin.desktop.in:
1299         Finish changing 'Author' to 'Authors'
1300         
1301         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
1302         (rhythmdb_entry_import_error_get_type):
1303         Implement get_playback_uri for import errors (returns NULL)
1305         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
1306         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
1307         entry, rather than doing entry type checks.
1309 2006-05-02  James Livingston  <doclivingston@gmail.com>
1311         patch from Alessandro Decina  <alessandro@nnva.org>
1313         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
1314         the signal emission in the case of fatal-on-init errors. From bug
1315         322268.
1317 2006-05-02  James Livingston  <doclivingston@gmail.com>
1319         * rhythmdb/rhythmdb.h:
1320         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
1321         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
1322         (rhythmdb_entry_podcast_post_get_type),
1323         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
1324         virtual function to entry-types for getting the playback URI. From bug
1325         330226.
1327         * backends/gstreamer/rb-encoder-gst.c:
1328         (create_pipeline_and_source), (extract_track):
1329         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
1330         to get the URI.
1332 2006-05-02  James Livingston  <doclivingston@gmail.com>
1334         patch by: Brian Cameron  <brian.cameron@sun.com>
1336         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
1337         340337.
1339 2006-05-01  William Jon McCann  <mccann@jhu.edu>
1341         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
1342         instead of clear.  Use regex matching to strip "disc N"
1343         from album.  Match titles in ProductName.  Perform
1344         fallback queries including various artist compilations.
1345         Include "us" locale.  Improve queries when artist or album
1346         is unknown.  Use medium size image if large is unavailable.
1348         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
1349         William Jon McCann  <mccann@jhu.edu>
1350         
1351 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1353         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
1354         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
1355         (conjunctive_query): Sanity check.
1356         (evaluate_conjunctive_subquery): 
1357         Don't return TRUE immediately when a relative-time query criterion
1358         matches.  Fixes #339972.
1360 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1362         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
1363         Don't crash if primary or secondary are NULL.
1365 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1367         * doc/reference/Makefile.am: fix gtk-doc build yet again
1369 2006-04-28  James Livingston  <doclivingston@gmail.com>
1371         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
1372         python console. Fixes bug 339934.
1374 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1376         * rhythmdb/rhythmdb-property-model.c:
1377         (rhythmdb_property_model_drag_data_get):
1378         When creating uri list drag data, create a new query model based on
1379         the query model the property model is attached to.  Makes the
1380         resulting query use the right entry type and include the upstream
1381         query criteria.  Fixes half of #327540.
1383 2006-04-27  James Livingston  <doclivingston@gmail.com>
1385         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
1386         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
1387         build fixes.
1389 2006-04-27  James Livingston  <doclivingston@gmail.com>
1391         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
1393 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1395         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
1396         (rb_playlist_manager_save_data),
1397         (rb_playlist_manager_save_playlists):
1398         * shell/rb-playlist-manager.h:
1399         * shell/rb-shell.c: (rb_shell_sync_state),
1400         (idle_save_playlist_manager):
1401         Remove a bit more threading insanity from the playlist manager.
1403 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1405         * shell/rb-playlist-manager.c: 
1406         * shell/rb-playlist-manager.h:
1407         Remove dead code, add gtk-doc, remove threading insanity (mostly).
1408         
1409         * shell/rb-shell.c: (rb_shell_sync_state),
1410         (idle_save_playlist_manager), (construct_sources),
1411         (rb_shell_select_source), (rb_shell_sync_party_mode):
1412         Adjustments for above changes.
1414 2006-04-26  William Jon McCann  <mccann@jhu.edu>
1416         * sources/rb-browser-source.c (impl_browser_toggled):
1417         Reset browser when hidden.  Fixes #339617.
1419 2006-04-26  James Livingston  <doclivingston@gmail.com>
1421         * backends/Makefile.am:
1422         * backends/gstreamer/Makefile.am: work again with separated
1423         built-roots
1425 2006-04-26  James Livingston  <doclivingston@gmail.com>
1427         * shell/rb-removable-media-manager.c:
1428         (rb_removable_media_manager_set_uimanager): fix compilation with
1429         -Werror and --enable-track-transfer.
1431 2006-04-26  James Livingston  <doclivingston@gmail.com>
1433         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
1434         implementing class. In theory allows alternate player implementations
1435         to be selected at run-time rather than compile-time. Fixes bug 338667.
1437         * Makefile.am:
1438         * backends/Makefile.am:
1439         * backends/gstreamer/Makefile.am:
1440         * backends/gstreamer/rb-player-gst.h:
1441         * backends/rb-player.c: (rb_player_interface_init),
1442         (rb_player_get_type), (rb_player_open), (rb_player_opened),
1443         (rb_player_close), (rb_player_play), (rb_player_pause),
1444         (rb_player_playing), (rb_player_set_volume),
1445         (rb_player_get_volume), (rb_player_set_replaygain),
1446         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
1447         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
1448         (_rb_player_emit_buffering), (_rb_player_emit_error),
1449         (_rb_player_emit_tick), (rb_player_error_quark):
1450         * player/Makefile.am:
1451         * player/rb-player-gst.c: (rb_player_gst_class_init),
1452         (rb_player_init), (tick_timeout), (rb_player_gst_init),
1453         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
1454         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
1455         (process_tag), (found_tag_cb), (buffering_cb),
1456         (rb_player_gst_bus_cb), (rb_player_gst_construct),
1457         (rb_player_gst_new):
1458         * player/rb-player.h:
1459         * shell/Makefile.am:
1460         * sources/rb-audiocd-source.c:
1461         * widgets/Makefile.am:
1462         * widgets/rb-header.c: (rb_header_class_init):
1464 2006-04-26  James Livingston  <doclivingston@gmail.com>
1466         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
1467         don't try to download an episode if it couldn't be parsed. Fixes bug
1468         339712.
1470         * shell/rb-removable-media-manager.c:
1471         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
1472         Library" option when track transfer is disabled. Fixes bug 339728.
1474 2006-04-26  James Livingston  <doclivingston@gmail.com>
1476         * data/ui/Makefile.am:
1477         * data/ui/daap-ui.xml:
1478         * data/ui/rhythmbox-ui.xml:
1479         * sources/rb-daap-source.c: (rb_daap_sources_init),
1480         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
1481         way that the ipod ui is. Fixes bug 339743.
1483 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1485         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
1486         (process_added_entries_cb), (process_deleted_entries_cb),
1487         (rhythmdb_commit_internal): 
1488         Combine the idle functions to emit entry-added and entry-deleted,
1489         and combine as many invocations of same as possible.  Another
1490         significant reduction in startup time.
1491         
1492         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
1493         Delay the next call to rhythmdb_process_events if the queue is
1494         empty or if we can't process any of the events in the queue because
1495         the database is read only.
1497         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
1499 2006-04-25  William Jon McCann  <mccann@jhu.edu>
1501         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
1503         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
1504         Don't special case errors quite so much.
1506 2006-04-25  William Jon McCann  <mccann@jhu.edu>
1508         * data/rhythmbox.schemas: Remove default speed.
1510         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
1511         Add n-c-b 2.15 support.  Make the default speed to slowest since
1512         that is all that works reliably.
1514 2006-04-25  William Jon McCann  <mccann@jhu.edu>
1516         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
1517         Fix compiler error from last commit.
1519 2006-04-25  James Livingston  <doclivingston@gmail.com>
1521         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
1522         transcoding-related issues. From bug 322268.
1524         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
1525         don't emit the signal, since the object is being finalised, which os a
1526         Bad Thing To Do.
1528         (profile_bin_find_encoder), (get_profile_from_mime_type),
1529         (transcode_track): find the encoding element by iterating looking for
1530         element in the class Codec/Encoder/Audio rather than the one named
1531         "enc".
1533 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1535         * shell/rb-shell-player.xml:
1536         * shell/rb-shell.xml:
1537         Add signal argument information.  
1538         Patch by Tim Moloney  <t.moloney@verizon.net>
1540         * shell/rb-shell.c: (rb_shell_window_state_cb):
1541         Use the right value for the visibility_changed signal.  Most of the
1542         time, anyway.
1544 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1546         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
1547         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
1548         (impl_create_configure_dialog):
1549         * data/glade/audioscrobbler-prefs.glade:
1550         * shell/rb-audioscrobbler.c (*):
1551         * lib/rb-preferences.h:
1552         * data/rhythmbox.schemas:
1553         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
1554         Add status information (# tracks submitted, # queued, last submit
1555         time, result of last submission) to the plugin config window.
1556         Remove 'enabled' setting, since it's easier to just disable the
1557         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
1558         nonexistant (so far) 'last.fm streaming' plugin.
1559         
1560         * help/C/rhythmbox.xml: Update documentation for last.fm profile
1561         plugin
1563         Fixes some of #325848.  We still don't provide a way to view the
1564         submission queue.
1566 2006-04-25  James Livingston  <doclivingston@gmail.com>
1568         patch by: Anders Petersson  <demitar@worldforge.org>
1570         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
1571         the YY-MM-DD format.
1573 2006-04-23  James Livingston  <doclivingston@gmail.com>
1575         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
1576         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
1577         * bindings/python/override_common.h:
1578         * bindings/python/rb.override: python binding fixes
1580 2006-04-23  James Livingston  <doclivingston@gmail.com>
1582         * shell/rb-statusbar.c: (rb_statusbar_finalize),
1583         (rb_statusbar_sync_with_source),
1584         (rb_statusbar_source_status_changed_cb): do the sync in an idle
1585         callback, rather than immediately every time. Takes ~5% off my warm-cache
1586         startup time.
1588         * bindings/python/rhythmdb.defs: fix the types using for
1589         RhythmDBEntryTypes.
1591 2006-04-22  James Livingston  <doclivingston@gmail.com>
1593         * data/ui/rhythmbox-ui.xml:
1594         * shell/rb-shell.c:
1595         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1596         (remove_source), (rb_daap_sources_init),
1597         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
1598         (rb_daap_source_disconnect):
1599         * sources/rb-source.c: (rb_source_class_init),
1600         (rb_source_deactivate):
1601         * sources/rb-source.h: move the "disconnect" functionality from into
1602         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
1604 2006-04-22  James Livingston  <doclivingston@gmail.com>
1606         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
1607         actually get the translated strings for browser headers (they were
1608         already marked as translatable). Fixes bug 339380.
1610 2006-04-22  James Livingston  <doclivingston@gmail.com>
1612         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
1613         submission timeout when the object is finalised.
1615         * bindings/python/Makefile.am:
1616         * bindings/python/rb.defs:
1617         * bindings/python/rb.override:
1618         * bindings/python/rhythmdb.defs: fix some python binding stuff.
1620         * widgets/rb-library-browser.c:
1621         (rb_library_browser_construct_query), (rebuild_output_model),
1622         (rebuild_child_model):
1623         * widgets/rb-library-browser.h: change from GPtrArray to
1624         RhythmDBQuery (which in C is the same thing).
1626 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1628         * shell/rb-shell.c: (rb_shell_get_song_properties):
1629         Don't try to include entry-type (or anything else not easily
1630         marshallable) in the song properties hash table.
1632         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
1634         * sources/rb-playlist-source.c: (rb_playlist_source_init),
1635         (rb_playlist_source_constructor): Fix entry-type initialization as
1636         with previous commit.
1638 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1640         * sources/rb-iradio-source.c: (rb_iradio_source_init),
1641         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
1642         * sources/rb-podcast-source.c: (rb_podcast_source_init),
1643         (rb_podcast_source_constructor):
1644         Set default values for entry-type after base class construction,
1645         rather than in _init, because gobject will set the entry-type property
1646         to NULL after _init if no value is provided.  Fixes #339206.
1648 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
1650         patch by: Gunnar Steinn Magnusson
1652         * COPYING:
1653         * backends/gstreamer/rb-encoder-gst.c:
1654         * backends/gstreamer/rb-encoder-gst.h:
1655         * backends/rb-encoder.c:
1656         * backends/rb-encoder.h:
1657         * bindings/python/override_common.c:
1658         * bindings/python/override_common.h:
1659         * daapsharing/rb-daap-connection.c:
1660         * daapsharing/rb-daap-connection.h:
1661         * daapsharing/rb-daap-dialog.c:
1662         * daapsharing/rb-daap-dialog.h:
1663         * daapsharing/rb-daap-mdns-browser-avahi.c:
1664         * daapsharing/rb-daap-mdns-browser-howl.c:
1665         * daapsharing/rb-daap-mdns-browser.h:
1666         * daapsharing/rb-daap-mdns-publisher-avahi.c:
1667         * daapsharing/rb-daap-mdns-publisher-howl.c:
1668         * daapsharing/rb-daap-mdns-publisher.h:
1669         * daapsharing/rb-daap-share.c:
1670         * daapsharing/rb-daap-share.h:
1671         * daapsharing/rb-daap-sharing.c:
1672         * daapsharing/rb-daap-sharing.h:
1673         * daapsharing/rb-daap-src.c:
1674         * daapsharing/rb-daap-src.h:
1675         * daapsharing/rb-daap-structure.c:
1676         * daapsharing/rb-daap-structure.h:
1677         * help/C/fdl-appendix.xml:
1678         * help/es/es.po:
1679         * help/ja/fdl-appendix.xml:
1680         * iradio/rb-new-station-dialog.c:
1681         * iradio/rb-new-station-dialog.h:
1682         * iradio/rb-station-properties-dialog.c:
1683         * iradio/rb-station-properties-dialog.h:
1684         * lib/mkdtemp.c:
1685         * lib/mkdtemp.h:
1686         * lib/rb-cut-and-paste-code.c:
1687         * lib/rb-cut-and-paste-code.h:
1688         * lib/rb-debug.c:
1689         * lib/rb-debug.h:
1690         * lib/rb-file-helpers.c:
1691         * lib/rb-file-helpers.h:
1692         * lib/rb-glade-helpers.c:
1693         * lib/rb-glade-helpers.h:
1694         * lib/rb-preferences.h:
1695         * lib/rb-proxy-config.c:
1696         * lib/rb-stock-icons.c:
1697         * lib/rb-stock-icons.h:
1698         * lib/rb-thread.c:
1699         * lib/rb-thread.h:
1700         * lib/rb-tree-dnd.c:
1701         * lib/rb-tree-dnd.h:
1702         * lib/rb-util.c:
1703         * lib/rb-util.h:
1704         * metadata/rb-metadata-common.c:
1705         * metadata/rb-metadata-dbus-client.c:
1706         * metadata/rb-metadata-dbus-service.c:
1707         * metadata/rb-metadata-dbus.c:
1708         * metadata/rb-metadata-dbus.h:
1709         * metadata/rb-metadata-gst.c:
1710         * metadata/rb-metadata.h:
1711         * metadata/sj-error.c:
1712         * metadata/sj-error.h:
1713         * metadata/sj-metadata-musicbrainz.c:
1714         * metadata/sj-metadata-musicbrainz.h:
1715         * metadata/sj-metadata.c:
1716         * metadata/sj-metadata.h:
1717         * metadata/sj-structures.c:
1718         * metadata/sj-structures.h:
1719         * metadata/test-metadata.c:
1720         * player/rb-player-gst.c:
1721         * player/rb-player.h:
1722         * player/rb-recorder-gst.c:
1723         * player/rb-recorder.h:
1724         * plugins/artdisplay/artdisplay.py:
1725         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
1726         * plugins/ipod/rb-ipod-plugin.c:
1727         * plugins/lirc/rb-lirc-plugin.c:
1728         * plugins/pythonconsole/pythonconsole.py:
1729         * plugins/rb-module.c:
1730         * plugins/rb-module.h:
1731         * plugins/rb-plugin-manager.c:
1732         * plugins/rb-plugin-manager.h:
1733         * plugins/rb-plugin.c:
1734         * plugins/rb-plugin.h:
1735         * plugins/rb-plugins-engine.c:
1736         * plugins/rb-plugins-engine.h:
1737         * plugins/rb-python-module.c:
1738         * plugins/rb-python-module.h:
1739         * plugins/rb-python-plugin.c:
1740         * plugins/rb-python-plugin.h:
1741         * plugins/sample/rb-sample-plugin.c:
1742         * po/de.po:
1743         * po/el.po:
1744         * po/en_CA.po:
1745         * po/eu.po:
1746         * po/fi.po:
1747         * po/fr.po:
1748         * po/it.po:
1749         * po/ja.po:
1750         * po/mk.po:
1751         * po/pt_BR.po:
1752         * po/ru.po:
1753         * podcast/rb-feed-podcast-properties-dialog.c:
1754         * podcast/rb-feed-podcast-properties-dialog.h:
1755         * podcast/rb-new-podcast-dialog.c:
1756         * podcast/rb-new-podcast-dialog.h:
1757         * podcast/rb-podcast-manager.c:
1758         * podcast/rb-podcast-manager.h:
1759         * podcast/rb-podcast-parse.c:
1760         * podcast/rb-podcast-parse.h:
1761         * podcast/rb-podcast-properties-dialog.c:
1762         * podcast/rb-podcast-properties-dialog.h:
1763         * remote/bonobo/libmain.c:
1764         * remote/bonobo/rb-nautilus-context-menu.c:
1765         * remote/bonobo/rb-nautilus-context-menu.h:
1766         * remote/bonobo/rb-remote-bonobo.c:
1767         * remote/bonobo/rb-remote-bonobo.h:
1768         * remote/rb-remote-client-proxy.c:
1769         * remote/rb-remote-client-proxy.h:
1770         * remote/rb-remote-common.c:
1771         * remote/rb-remote-common.h:
1772         * remote/rb-remote-proxy.c:
1773         * remote/rb-remote-proxy.h:
1774         * rhythmdb/gsequence.c:
1775         * rhythmdb/gsequence.h:
1776         * rhythmdb/rb-refstring.c:
1777         * rhythmdb/rb-refstring.h:
1778         * rhythmdb/rhythmdb-gda.c:
1779         * rhythmdb/rhythmdb-gda.h:
1780         * rhythmdb/rhythmdb-private.h:
1781         * rhythmdb/rhythmdb-property-model.c:
1782         * rhythmdb/rhythmdb-property-model.h:
1783         * rhythmdb/rhythmdb-query-model.c:
1784         * rhythmdb/rhythmdb-query-model.h:
1785         * rhythmdb/rhythmdb-query-results.c:
1786         * rhythmdb/rhythmdb-query-results.h:
1787         * rhythmdb/rhythmdb-tree.c:
1788         * rhythmdb/rhythmdb-tree.h:
1789         * rhythmdb/rhythmdb.c:
1790         * rhythmdb/rhythmdb.h:
1791         * shell/main.c:
1792         * shell/rb-audioscrobbler.c:
1793         * shell/rb-audioscrobbler.h:
1794         * shell/rb-history.c:
1795         * shell/rb-history.h:
1796         * shell/rb-play-order-linear-loop.c:
1797         * shell/rb-play-order-linear-loop.h:
1798         * shell/rb-play-order-linear.c:
1799         * shell/rb-play-order-linear.h:
1800         * shell/rb-play-order-queue.c:
1801         * shell/rb-play-order-queue.h:
1802         * shell/rb-play-order-random-by-age-and-rating.c:
1803         * shell/rb-play-order-random-by-age-and-rating.h:
1804         * shell/rb-play-order-random-by-age.c:
1805         * shell/rb-play-order-random-by-age.h:
1806         * shell/rb-play-order-random-by-rating.c:
1807         * shell/rb-play-order-random-by-rating.h:
1808         * shell/rb-play-order-random-equal-weights.c:
1809         * shell/rb-play-order-random-equal-weights.h:
1810         * shell/rb-play-order-random.c:
1811         * shell/rb-play-order-random.h:
1812         * shell/rb-play-order-shuffle.c:
1813         * shell/rb-play-order-shuffle.h:
1814         * shell/rb-play-order.c:
1815         * shell/rb-play-order.h:
1816         * shell/rb-playlist-manager.c:
1817         * shell/rb-playlist-manager.h:
1818         * shell/rb-removable-media-manager.c:
1819         * shell/rb-removable-media-manager.h:
1820         * shell/rb-shell-clipboard.c:
1821         * shell/rb-shell-clipboard.h:
1822         * shell/rb-shell-player.c:
1823         * shell/rb-shell-player.h:
1824         * shell/rb-shell-preferences.c:
1825         * shell/rb-shell-preferences.h:
1826         * shell/rb-shell.c:
1827         * shell/rb-shell.h:
1828         * shell/rb-source-header.c:
1829         * shell/rb-source-header.h:
1830         * shell/rb-statusbar.c:
1831         * shell/rb-statusbar.h:
1832         * shell/rb-tray-icon.c:
1833         * shell/rb-tray-icon.h:
1834         * sources/rb-audiocd-source.c:
1835         * sources/rb-audiocd-source.h:
1836         * sources/rb-auto-playlist-source.c:
1837         * sources/rb-auto-playlist-source.h:
1838         * sources/rb-browser-source.c:
1839         * sources/rb-browser-source.h:
1840         * sources/rb-daap-source.c:
1841         * sources/rb-daap-source.h:
1842         * sources/rb-generic-player-source.c:
1843         * sources/rb-generic-player-source.h:
1844         * sources/rb-import-errors-source.c:
1845         * sources/rb-import-errors-source.h:
1846         * sources/rb-ipod-source.c:
1847         * sources/rb-ipod-source.h:
1848         * sources/rb-iradio-source.c:
1849         * sources/rb-iradio-source.h:
1850         * sources/rb-library-source.c:
1851         * sources/rb-library-source.h:
1852         * sources/rb-missing-files-source.c:
1853         * sources/rb-missing-files-source.h:
1854         * sources/rb-nokia770-source.c:
1855         * sources/rb-nokia770-source.h:
1856         * sources/rb-play-queue-source.c:
1857         * sources/rb-play-queue-source.h:
1858         * sources/rb-playlist-source-recorder.c:
1859         * sources/rb-playlist-source-recorder.h:
1860         * sources/rb-playlist-source.c:
1861         * sources/rb-playlist-source.h:
1862         * sources/rb-playlist-xml.h:
1863         * sources/rb-podcast-source.c:
1864         * sources/rb-podcast-source.h:
1865         * sources/rb-psp-source.c:
1866         * sources/rb-psp-source.h:
1867         * sources/rb-removable-media-source.c:
1868         * sources/rb-removable-media-source.h:
1869         * sources/rb-source.c:
1870         * sources/rb-source.h:
1871         * sources/rb-sourcelist-model.c:
1872         * sources/rb-sourcelist-model.h:
1873         * sources/rb-sourcelist.c:
1874         * sources/rb-sourcelist.h:
1875         * sources/rb-static-playlist-source.c:
1876         * sources/rb-static-playlist-source.h:
1877         * tests/test-cd.c:
1878         * tests/test-cmdline.c:
1879         * tests/test-rhythmdb-indexing.c:
1880         * tests/test-rhythmdb-query.c:
1881         * tests/test-rhythmdb-simple.c:
1882         * tests/test-rhythmdb-tree-deserialization.c:
1883         * tests/test-rhythmdb-tree-serialization.c:
1884         * tests/test-rhythmdb-view.c:
1885         * widgets/bacon-volume.c:
1886         * widgets/bacon-volume.h:
1887         * widgets/disclosure-widget.c:
1888         * widgets/disclosure-widget.h:
1889         * widgets/eel-gconf-extensions.c:
1890         * widgets/eel-gconf-extensions.h:
1891         * widgets/eggtrayicon.c:
1892         * widgets/eggtrayicon.h:
1893         * widgets/libsexy/sexy-icon-entry.c:
1894         * widgets/libsexy/sexy-icon-entry.h:
1895         * widgets/rb-cell-renderer-pixbuf.c:
1896         * widgets/rb-cell-renderer-pixbuf.h:
1897         * widgets/rb-cell-renderer-rating.c:
1898         * widgets/rb-cell-renderer-rating.h:
1899         * widgets/rb-dialog.c:
1900         * widgets/rb-dialog.h:
1901         * widgets/rb-druid.c:
1902         * widgets/rb-druid.h:
1903         * widgets/rb-entry-view.c:
1904         * widgets/rb-entry-view.h:
1905         * widgets/rb-header.c:
1906         * widgets/rb-header.h:
1907         * widgets/rb-library-browser.c:
1908         * widgets/rb-library-browser.h:
1909         * widgets/rb-property-view.c:
1910         * widgets/rb-property-view.h:
1911         * widgets/rb-query-creator-private.h:
1912         * widgets/rb-query-creator-properties.c:
1913         * widgets/rb-query-creator.c:
1914         * widgets/rb-query-creator.h:
1915         * widgets/rb-rating-helper.c:
1916         * widgets/rb-rating-helper.h:
1917         * widgets/rb-rating.c:
1918         * widgets/rb-rating.h:
1919         * widgets/rb-search-entry.c:
1920         * widgets/rb-search-entry.h:
1921         * widgets/rb-song-display-box.c:
1922         * widgets/rb-song-display-box.h:
1923         * widgets/rb-song-info.c:
1924         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
1926 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
1928         patch by: Gareth Murphy, James Livingston
1930         * bindings/python/rb.defs:
1931         * configure.ac:
1932         * plugins/Makefile.am:
1933         * plugins/artdisplay/Makefile.am:
1934         * plugins/artdisplay/artdisplay.py:
1935         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
1936         * plugins/rb-python-module.c: (rb_python_module_init_python):
1937         * shell/rb-shell.c: (construct_widgets),
1938         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
1939         (rb_shell_add_widget), (rb_shell_remove_widget),
1940         (rb_shell_ui_location_get_type):
1941         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
1943 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1945         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
1946         Fix build failure caused by the combination of the previous two
1947         commits.
1949 2006-04-20  James Livingston  <doclivingston@gmail.com>
1951         patch by: Christophe Fergeau  <teuf@gnome.org> to make
1952         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
1953         table to the entry types, which will allow us to get rid of some of
1954         the "if entry type == WHATEVER" code everywhere. From bug 
1956         * bindings/python/rb.defs:
1957         * bindings/python/rb.override:
1958         * bindings/python/rhythmdb.defs:
1959         * bindings/python/rhythmdb.override:
1960         * daapsharing/rb-daap-connection.c:
1961         (rb_daap_connection_class_init), (rb_daap_connection_init),
1962         (rb_daap_connection_set_property),
1963         (rb_daap_connection_get_property):
1964         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
1965         * podcast/rb-podcast-manager.c:
1966         (rb_podcast_manager_entry_downloaded),
1967         (rb_podcast_manager_subscribe_feed),
1968         (rb_podcast_manager_db_entry_added_cb),
1969         (rb_podcast_manager_db_entry_deleted_cb),
1970         (rb_podcast_manager_insert_feed):
1971         * rhythmdb/rhythmdb-private.h:
1972         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
1973         (conjunctive_query):
1974         * rhythmdb/rhythmdb.c: (sync_entry_changed),
1975         (process_added_entries_cb), (rhythmdb_entry_allocate),
1976         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
1977         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1978         (rhythmdb_process_metadata_load),
1979         (rhythmdb_process_file_created_or_modified), (action_thread_main),
1980         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
1981         (write_encoded_gvalue), (read_encoded_property),
1982         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
1983         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
1984         (rhythmdb_entry_iradio_get_type),
1985         (rhythmdb_entry_podcast_post_get_type),
1986         (rhythmdb_entry_podcast_feed_get_type),
1987         (rhythmdb_entry_import_error_get_type),
1988         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
1989         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
1990         (rhythmdb_entry_type_get_type):
1991         * rhythmdb/rhythmdb.h:
1992         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
1993         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
1994         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
1995         (rb_shell_player_entry_activated_cb), (info_available_cb):
1996         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
1997         (rb_shell_register_entry_type_for_source),
1998         (rb_shell_playing_from_queue_cb),
1999         (rb_shell_playing_entry_changed_cb),
2000         (rb_shell_player_stream_song_changed_cb),
2001         (rb_shell_jump_to_entry_with_source),
2002         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
2003         (handle_playlist_entry_cb), (rb_shell_load_uri):
2004         * shell/rb-shell.h:
2005         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
2006         * sources/rb-browser-source.c: (rb_browser_source_class_init),
2007         (rb_browser_source_init), (rb_browser_source_set_property),
2008         (rb_browser_source_get_property):
2009         * sources/rb-ipod-source.c: (impl_paste):
2010         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2011         (rb_iradio_source_init), (rb_iradio_source_set_property),
2012         (rb_iradio_source_get_property):
2013         * sources/rb-library-source.c: (impl_paste):
2014         * sources/rb-missing-files-source.c:
2015         (rb_missing_files_source_class_init),
2016         (rb_missing_files_source_init),
2017         (rb_missing_files_source_set_property),
2018         (rb_missing_files_source_get_property):
2019         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
2020         (rb_playlist_source_init), (rb_playlist_source_set_property),
2021         (rb_playlist_source_get_property):
2022         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2023         (rb_podcast_source_init), (rb_podcast_source_set_property),
2024         (rb_podcast_source_get_property):
2025         * sources/rb-static-playlist-source.c:
2026         (rb_static_playlist_source_add_location_internal):
2028 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2030         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2031         (rhythmdb_add_import_error_entry),
2032         (entry_volume_mounted_or_unmounted),
2033         (rhythmdb_volume_unmounted_cb):
2034         When a volume is unmounted, delete import errors for files stored on
2035         it.  When a volume is mounted, stat all tracks stored on it, rather
2036         than assuming they're present.  Fixes #339023.
2038 2006-04-20  James Livingston  <doclivingston@gmail.com>
2040         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
2041         browser visibility for non-gconf-using sources (like playlists). Part
2042         of bug 118862.
2044         * shell/rb-source-header.c: (sourcestate_free),
2045         (rb_source_header_init), (rb_source_header_finalize),
2046         (rb_source_header_source_weak_destroy_cb): switch from storing the
2047         search string to storing a "source state" structure
2049         (rb_source_header_set_source_internal),  (rb_source_state_sync),
2050         (rb_source_header_search_cb), (rb_source_header_clear_search),
2051         (rb_source_header_disclosure_toggled_cb): as well as storing the
2052         string, stop the visibility of the source's browser.
2054 2006-04-20  James Livingston  <doclivingston@gmail.com>
2056         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
2057         library entries back into the library. Fixes bug 339065.
2059 2006-04-20  James Livingston  <doclivingston@gmail.com>
2061         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
2062         only exists in glib 2.10.
2064 2006-04-20  James Livingston  <doclivingston@gmail.com>
2066         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
2067         Solaris. From bug 335318.
2069         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
2070         * shell/rb-audioscrobbler.c:
2071         * sources/rb-psp-source.c:
2073 2006-04-20  James Livingston  <doclivingston@gmail.com>
2075         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
2076         issues for some people.
2078         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
2079         accidental s/suffix/prefix/
2081         * sources/rb-auto-playlist-source.c:
2082         (rb_auto_playlist_source_set_query): fix the invered logic preventing
2083         you from sorting playlists which aren't limited by time.
2085 2006-04-19  James Livingston  <doclivingston@gmail.com>
2087         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
2088         duration or bitrate back to the file, since they are properties of the
2089         audio data, not tags we can set.
2091 2006-04-19  James Livingston  <doclivingston@gmail.com>
2093         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
2094         of libtool, to fix builds which are using a different version. Fixes
2095         bug 338996.
2097         * shell/Makefile.am:
2099 2006-04-19  James Livingston  <doclivingston@gmail.com>
2101         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
2102         to sync data to a file which is uneditable.
2104 2006-04-19  James Livingston  <doclivingston@gmail.com>
2106         patch by: Gavin Stewart  <gavin@brokentrain.net>
2108         * data/glade/playlist-save.glade:
2109         * data/glade/Makefile.am:
2110         * po/POTFILES.in: add the playlist saving dialog.
2112         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
2113         (export_set_extension_cb), (filter_get_export_filter_label),
2114         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
2115         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
2116         formats (PLS and M3U at the moment). Fixes bug 316295.
2118 2006-04-19  James Livingston  <doclivingston@gmail.com>
2120         * shell/rb-playlist-manager.c:
2121         (rb_playlist_manager_set_source_internal): don't let you edit remove
2122         auto playlists.
2124         * sources/rb-auto-playlist-source.c:
2125         (rb_auto_playlist_source_set_query): correctly handle time-limited
2126         playlists.
2128 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2130         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
2132         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
2133         Don't crash if the queue file contains no newlines.
2134         Fixes #338924.
2136 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
2138         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
2139         condition
2141 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
2143         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
2144         case. Moreover, they may not exist yet, so take that into account when
2145         generating the iPod filename.
2147 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
2149         * sources/rb-ipod-source.c: added support for drag and drop from the
2150         library to the iPod (only enabled if --enable-track-transfer was
2151         passed to configure)
2153 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
2155         * configure.ac:
2156         * lib/rb-marshal.list:
2157         * lib/rb-util.c: 
2158         * lib/rb-util.h:
2159         * plugins/Makefile.am:
2160         * plugins/ipod/Makefile.am:
2161         * plugins/ipod/ipod.rb-plugin.desktop.in:
2162         * plugins/ipod/rb-ipod-plugin.c: 
2163         * plugins/rb-plugin.h:
2164         * shell/Makefile.am:
2165         * shell/rb-removable-media-manager.c:
2166         * shell/rb-removable-media-manager.h:
2167         * shell/rb-shell.c: 
2168         * sources/Makefile.am:
2169         * sources/rb-ipod-source.c: 
2170         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
2171         various iPod related files should be moved to plugins/ipod/ now...
2173 2006-04-17  James Livingston  <doclivingston@gmail.com>
2175         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
2176         and "vic".
2178         * help/C/figures/rb-iradio-main.png:
2179         * help/C/figures/rb-notification-area-menu.png:
2180         * help/C/figures/rb-notification-window.png:
2181         * help/C/figures/rb-notification-zone.png:
2182         * help/C/figures/rb-podcast-main.png:
2183         * help/C/figures/rb-statusbar.png:
2184         * help/C/figures/rb-volume-changer.png:
2185         * help/C/figures/rb-window-small.png:
2186         * help/C/figures/rb-window.png:
2187         * help/C/rhythmbox.xml:
2189 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2191         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
2192         more obviously.
2194         * metadata/rb-metadata-gst.c: (rb_metadata_init),
2195         (make_undecodable_error), (rb_metadata_gst_error_cb),
2196         (rb_metadata_gst_new_decoded_pad_cb),
2197         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
2198         Ignore really small files (<4kB) for which typefinding fails.
2199         Always link decoded pads from decodebin to fakesink.
2200         Shut the pipeline down by posting an error on the bus when decodebin
2201         emits unknown-type signals.  Fixes bug #338062.
2203 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2205         * shell/rb-shell.c: (rb_shell_load_uri):
2206         Fix glaring mistakes in previous commit: actually pass arguments to
2207         rb_debug, and specify the right entry type when adding a new iradio
2208         station so we don't try to add local playlist files to the library.
2210 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2212         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
2213         before trying to add them, as iradio streams often fail rb_uri_exists().
2215         * shell/rb-shell-player.c: (notify_playing_idle),
2216         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
2217         (open_location_thread), (rb_shell_player_open_location),
2218         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
2219         (eos_cb):  When playing an iradio stream using a playlist, keep a list
2220         of all the stream URLs, and try them in turn.  If we get through the
2221         whole playlist too quickly, error out.  Various other fixes that make
2222         iradio work a lot better.
2224         * shell/rb-shell.c: (add_to_library_response_cb),
2225         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
2226         (handle_playlist_entry_cb), (rb_shell_load_uri):
2227         Add playlists containing streams as iradio stations.  If the playlist
2228         is local, add each stream URL, but if the playlist is remote, just add
2229         the playlist URL.
2230         
2231         * sources/rb-iradio-source.c: (new_station_location_added):
2232         Add new station URLs as-is, rather than parsing the playlist and
2233         adding the streams.
2234         
2235         * rhythmdb/rhythmdb-query-model.c:
2236         (rhythmdb_query_model_entry_changed_cb),
2237         (rhythmdb_query_model_emit_reorder),
2238         (rhythmdb_query_model_do_reorder):
2239         Emit row-changed notifications when an entry changes but is not
2240         reordered.
2242         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
2243         Display the playback error icon when the entry has an error and
2244         there's nothing else to display.
2245         
2246         Fixes bug #320336 and some of #324402.
2247         
2248 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
2250         * sources/rb-ipod-source.c: use a GHashTable for the
2251         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
2252         time, this fixes compilation breakage for people not having libgpod
2253         CVS HEAD
2255 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
2257         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2259         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
2260         (rb_podcast_manager_insert_feed):
2261         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
2262         fixes bug 321945
2264 2006-04-16  James Livingston  <doclivingston@gmail.com>
2266         * sources/rb-library-source.c:
2267         (rb_library_source_library_location_cb): return FALSE like we are
2268         supposed to, not void.
2270         patch by: FreeBSD GNOME Project
2271         * configure.ac: fix some bash-isms.
2273         patch by: Pawel Worach  <pawel.worach@gmail.com>
2274         * metadata/rb-metadata-dbus-client.c:
2275         * rhythmdb/rhythmdb-query-model.c:
2276         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
2279 2006-04-16  James Livingston  <doclivingston@gmail.com>
2281         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
2282         for transcoding to RBEncoderGst.
2284         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
2285         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
2286         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
2287         (add_decoding_pipeline), (encoder_match_mime),
2288         (get_profile_from_mime_type), (extract_track), (transcode_track),
2289         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
2291 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
2293         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
2294         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
2295         load_ipod_db_idle_cb to a new separate function
2297 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
2299         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
2300         source
2302 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
2304         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
2305         variables
2307 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
2309         * data/ui/Makefile.am:
2310         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
2311         menu
2312         * lib/rb-util.c: check if the widget we got from the UI manager isn't
2313         NULL before using it as a popup menu
2314         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
2315         'eject' an iPod
2317 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
2319         * sources/rb-ipod-source.c: when hal tells us a partition is on an
2320         iPod, check if it contains an iPod database before using it (in case
2321         the iPod was repartitionned somehow). Should fix bug #325034
2323 2006-04-16  Steve Frécinaux  <steve@istique.net>
2325         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
2327         * data/Makefile.am: install application icon into the default theme.
2329         * data/rhythmbox.desktop.in: don't specify icon file extension.
2330         
2331         * shell/main.c: (main): set default window icon from theme.
2332         
2333         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
2334         code concerning window icon, and fix leak by unreferencing the about
2335         logo pixbuf once it's not used anymore.
2337 2006-04-16  James Livingston  <doclivingston@gmail.com>
2339         * configure.ac: bump version to 0.9.4
2340         * NEWS: update NEWS and 0.9.4 insert translations
2342 2006-04-16  James Livingston  <doclivingston@gmail.com>
2344         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
2345         namespace automatically.
2347 2006-04-16  James Livingston  <doclivingston@gmail.com>
2349         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
2351         * doc/reference/Makefile.am:
2352         * doc/reference/rhythmbox.types: make distcheck work again
2354         * doc/reference/tmpl/eggnotificationbubble.sgml:
2355         * doc/reference/tmpl/eggtrayicon.sgml:
2356         * doc/reference/tmpl/rb-debug.sgml:
2357         * doc/reference/tmpl/rb-entry-view.sgml:
2358         * doc/reference/tmpl/rb-enums.sgml:
2359         * doc/reference/tmpl/rb-metadata.sgml:
2360         * doc/reference/tmpl/rb-new-station-dialog.sgml:
2361         * doc/reference/tmpl/rb-playlist-manager.sgml:
2362         * doc/reference/tmpl/rb-refstring.sgml:
2363         * doc/reference/tmpl/rb-shell-player.sgml:
2364         * doc/reference/tmpl/rb-shell-preferences.sgml:
2365         * doc/reference/tmpl/rb-shell.sgml:
2366         * doc/reference/tmpl/rb-song-info.sgml:
2367         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
2368         * doc/reference/tmpl/rb-statusbar.sgml:
2369         * doc/reference/tmpl/rhythmbox-unused.sgml:
2370         * doc/reference/tmpl/rhythmdb-query-model.sgml:
2371         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
2373 2006-04-16  James Livingston  <doclivingston@gmail.com>
2375         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
2377         * po/LINGUAS: don't split the variable across two lines, as it breaks
2378         the build. Fixes bug 338625.
2380 2006-04-15  James Livingston  <doclivingston@gmail.com>
2382         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
2383         add a "sourcelist-model" gobject property.
2385 2006-04-14  William Jon McCann  <mccann@jhu.edu>
2387         * .cvsignore:
2388         * backends/.cvsignore:
2389         * backends/gstreamer/.cvsignore:
2390         * bindings/.cvsignore:
2391         * bindings/python/.cvsignore:
2392         * help/es/.cvsignore:
2393         * metadata/.cvsignore:
2394         * plugins/.cvsignore:
2395         * plugins/audioscrobbler/.cvsignore:
2396         * plugins/lirc/.cvsignore:
2397         * plugins/pythonconsole/.cvsignore:
2398         * plugins/sample-python/.cvsignore:
2399         * plugins/sample/.cvsignore:
2400         * shell/.cvsignore:
2401         * widgets/libsexy/.cvsignore:
2402         Make CVS ignore files.
2404 2006-04-14  James Livingston  <doclivingston@gmail.com>
2406         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
2407         the track-loading thread hold a reference on the source, so it doesn't
2408         explode if the cd is removed before it is done. Fixes bug 337237.
2410 2006-04-14  James Livingston  <doclivingston@gmail.com>
2412         * bindings/python/override_common.c:
2413         (_helper_unwrap_pointer_pylist):
2414         * bindings/python/override_common.h:
2415         * bindings/python/rb.override:
2416         * bindings/python/rhythmdb.override: Bind some more functions and
2417         virtual functions.
2419         * shell/rb-shell.c: (rb_shell_select_source):
2420         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
2421         * sources/rb-audiocd-source.c:
2422         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
2423         * sources/rb-browser-source.c: (impl_get_search_actions):
2424         * sources/rb-iradio-source.c: (impl_get_ui_actions):
2425         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
2426         * sources/rb-playlist-source.c: (impl_get_ui_actions):
2427         * sources/rb-podcast-source.c: (impl_get_ui_actions),
2428         (impl_get_search_actions):
2429         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
2430         the impl_get_ui_actions and impl_get_search_actions functions return
2431         lists that contain copies of the strings, instead of constant ones.
2432         Needed to bindings
2434 2006-04-14  James Livingston  <doclivingston@gmail.com>
2436         * bindings/python/rhythmdb.defs:
2437         * bindings/python/rhythmdb.override: fix the method argument format
2438         specifiers.
2440 2006-04-14  James Livingston  <doclivingston@gmail.com>
2442         * bindings/python/rhythmdb.defs:
2443         * bindings/python/rhythmdb.override:
2444         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
2445         (entry_to_rb_metadata), (record_entry_change),
2446         (rhythmdb_entry_set_visibility):
2447         * rhythmdb/rhythmdb.h:
2448         * shell/rb-shell.c: (rb_shell_get_song_properties): change
2449         rhythmdb_entry_get to take the db as the first parameter. Fixes the
2450         python bindings of it. The rhythmdb_entry_get_* ones are left the same
2451         since they are used in too many places, and not in the Python
2452         bindings.
2454 2006-04-13  William Jon McCann  <mccann@jhu.edu>
2456         * lib/rb-debug.c: (_rb_profile_log):
2457         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
2458         * rhythmdb/rhythmdb.c: (rhythmdb_load):
2459         * shell/main.c: (main):
2460         * shell/rb-shell.c: (rb_shell_constructor),
2461         (rb_shell_set_visibility), (rb_shell_sync_window_state),
2462         (rb_shell_present):
2463         Fix profile output indentation.  Add more profiling points.
2464         Fixes part of #338114
2466 2006-04-13  James Livingston  <doclivingston@gmail.com>
2468         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
2469         library source being deleted, by setting the active source to NULL.
2470         From bug 338116.
2472 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2474         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
2475         Update the last-seen string when hiddenness changes.
2477 2006-04-12  James Livingston  <doclivingston@gmail.com>
2479         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
2480         which caused the first-seen time to be reset when a metadata load was
2481         done. Fixes bug 336874.
2483         * shell/rb-shell.h: remove old function declaration.
2485         * bindings/python/rhythmdb.defs:
2486         * bindings/python/rhythmdb.override: Fix some python binding stuff.
2488 2006-04-11  James Livingston  <doclivingston@gmail.com>
2490         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
2491         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
2492         interaction. Fixes bug 337999.
2494 2006-04-11  James Livingston  <doclivingston@gmail.com>
2496         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
2497         track transfer. Fixes bug 338056.
2499         * shell/Makefile.am:
2501 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2503         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
2505 2006-04-10  William Jon McCann  <mccann@jhu.edu>
2507         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
2508         (_rb_profile_log):
2509         * lib/rb-debug.h:
2510         * shell/rb-shell.c: (construct_db), (construct_widgets),
2511         (construct_sources), (construct_load_ui), (rb_shell_constructor):
2512         Add profiling.  Fixes #337387
2514 2006-04-10  William Jon McCann  <mccann@jhu.edu>
2516         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
2517         * widgets/rb-header.c:
2518         Use italics for artist and album. Fixes #336748
2520 2006-04-10  James Livingston  <doclivingston@gmail.com>
2522         * Makefile.am:
2523         * backends/gstreamer/Makefile.am:
2524         * configure.ac:
2525         * data/glade/library-prefs.glade:
2526         * shell/Makefile.am:
2527         * shell/rb-removable-media-manager.c:
2528         * shell/rb-removable-media-manager.h:
2529         * sources/Makefile.am:
2530         * sources/rb-audiocd-source.c:
2531         * sources/rb-library-source.c: (rb_library_source_class_init),
2532         (rb_library_source_finalize), (impl_get_config_widget),
2533         (rb_library_source_preferences_sync), (impl_can_paste): add a
2534         --enable-track-transfer configure option, abd make cd ripping disabled
2535         by default.
2537         * shell/rb-source-header.c:
2538         * sources/rb-source.c: (rb_source_class_init),
2539         (rb_source_delete_thyself), (default_get_entry_view):
2540         * lib/rb-glade-helpers.c:
2541         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
2542         some compiler warnings, and also bug 337427.
2544 2006-04-10  James Livingston  <doclivingston@gmail.com>
2546         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
2547         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
2548         if the gconf key is missing. Fixes bug 337742.
2550 2006-04-10  James Livingston  <doclivingston@gmail.com>
2552         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2553         to fix build problems I caused with a commit yesterday. Fixed bug
2554         337806.
2556         * daapsharing/rb-daap-mdns-browser-howl.c:
2557         (rb_daap_mdns_browser_class_init):
2558         * podcast/Makefile.am:
2559         * rhythmdb/Makefile.am:
2560         * widgets/eggtrayicon.h:
2562 2006-04-09  Steve Frécinaux  <steve@istique.net>
2564         * configure.ac:
2565         * po/LINGUAS:
2566         
2567         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
2568         translators' life easier.
2570 2006-04-09  James Livingston  <doclivingston@gmail.com>
2572         * bindings/python/rb.defs:
2573         * bindings/python/rb.override: add bindings for most RBSource virtual
2574         functions.
2576         * sources/rb-source.h:
2577         * sources/rb-source.c: (rb_source_class_init): make
2578         impl_get_browser_key return a non-consht string, since Python can't
2579         really give us constant strings.
2581         * shell/rb-source-header.c: (rb_source_header_finalize),
2582         (rb_source_header_set_source_internal):
2583         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
2584         * sources/rb-iradio-source.c: (impl_get_browser_key):
2585         * sources/rb-library-source.c: (impl_get_browser_key):
2586         * sources/rb-playlist-source.c:
2587         * sources/rb-browser-source.c: (rb_browser_source_constructor),
2588         (rb_browser_source_state_prefs_sync):
2589         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
2590         above change.
2592         * plugins/sample-python/sample-python.py: show how to add a new
2593         source.
2595 2006-04-09  James Livingston  <doclivingston@gmail.com>
2597         * daapsharing/Makefile.am:
2598         * daapsharing/rb-daap-connection.c:
2599         (rb_daap_connection_class_init):
2600         * daapsharing/rb-daap-marshal.list:
2601         * daapsharing/rb-daap-mdns-browser-avahi.c:
2602         (rb_daap_mdns_browser_class_init):
2603         * lib/rb-marshal.list:
2604         * player/Makefile.am:
2605         * player/rb-recorder-gst.c: (rb_recorder_class_init):
2606         * player/rb-recorder-marshal.list:
2607         * podcast/Makefile.am:
2608         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
2609         * podcast/rb-podcast-marshal.list:
2610         * rhythmdb/Makefile.am:
2611         * rhythmdb/rhythmdb-marshal.list:
2612         * rhythmdb/rhythmdb-query-model.c:
2613         (rhythmdb_query_model_class_init):
2614         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
2615         into one file, as there is no point having several of them.
2617 2006-04-09  James Livingston  <doclivingston@gmail.com>
2619         * lib/Makefile.am:
2620         * lib/rb-enums.h:
2621         * widgets/Makefile.am:
2622         * widgets/eggnotificationbubble.c:
2623         * widgets/eggnotificationbubble.h:
2624         * widgets/rb-song-info.c: remove lib/rb-enums.h and
2625         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
2627         * rhythmdb/rhythmdb-property-model.h:
2628         * rhythmdb/rhythmdb-query-model.h:
2629         * rhythmdb/rhythmdb.h:
2630         * shell/rb-playlist-manager.h:
2631         * widgets/rb-cell-renderer-pixbuf.h:
2632         * widgets/rb-cell-renderer-rating.h:
2633         * widgets/rb-rating.h: fix the prototypes of various class-closures.
2635 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2637         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
2638         so we can build without a system-wide installed copy.
2640 2006-04-09  James Livingston  <doclivingston@gmail.com>
2642         * data/glade/general-prefs.glade:
2643         * data/rhythmbox.schemas:
2644         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
2645         (rb_combo_box_hyphen_separator_func):
2646         * lib/rb-glade-helpers.h:
2647         * lib/rb-preferences.h:
2648         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
2649         (rb_shell_preferences_sync),
2650         (rb_shell_preferences_toolbar_style_cb),
2651         (rb_shell_preferences_browser_views_activated_cb):
2652         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
2653         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
2654         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
2656 2006-04-09  James Livingston  <doclivingston@gmail.com>
2658         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
2659         data that MusicBrainz returns to us. Last part of bug 334167.
2661 2006-04-09  James Livingston  <doclivingston@gmail.com>
2663         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
2664         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
2666 2006-04-09  James Livingston  <doclivingston@gmail.com>
2668         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
2669         the entry view properly when the rows are reordered. Fixes bug 337019.
2671 2006-04-09  James Livingston  <doclivingston@gmail.com>
2673         * configure.ac:
2674         * widgets/Makefile.am:
2675         * widgets/libsexy/Makefile.am:
2676         * widgets/libsexy/sexy-icon-entry.c:
2677         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
2678         libsexy, and allow building against it or a system-wide installed
2679         copy.
2682         * widgets/rb-search-entry.c: (rb_search_entry_init),
2683         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
2684         search box. Fixes bug 128109.
2686 2006-04-09  James Livingston  <doclivingston@gmail.com>
2688         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2690         * widgets/rb-entry-view.c: (rb_entry_view_init),
2691         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
2692         and Pause icons rather than the volume ones in the Now Playing column.
2693         Closes bug 336482.
2695 2006-04-08  James Livingston  <doclivingston@gmail.com>
2697         * bindings/python/override_common.h:
2698         * bindings/python/rb.override:
2699         * bindings/python/rhythmdb.override: bind some more functions 
2701 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2703         * metadata/rb-metadata-dbus-service.c: (_send_error):
2704         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
2705         are sent properly and we don't get 'method doesn't exist' messages
2706         from dbus instead.
2708 2006-04-08  James Livingston  <doclivingston@gmail.com>
2710         * bindings/python/override_common.h:
2711         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
2712         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
2713         more utility functions for C<->Python conversions
2715         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
2716         (rb_entry_view_state_get_type):
2717         * widgets/rb-entry-view.h: make the colume type and entry view state
2718         GTypes
2720         * bindings/python/Makefile.am:
2721         * bindings/python/rb.defs:
2722         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
2723         RBSource.
2725 2006-04-08  James Livingston  <doclivingston@gmail.com>
2727         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
2728         initialiser for a GError
2730         * sources/rb-source.c: (rb_source_eof_type_get_type):
2731         * sources/rb-source.h: add a GType for RBSourceEOFType
2733         * bindings/python/Makefile.am:
2734         * bindings/python/rb.defs:
2735         * bindings/python/rb.override: bind RBSource and RBSourceList
2737 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2739         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2740         (rb_shell_player_get_property),
2741         (rb_shell_player_get_active_source),
2742         (rb_shell_player_set_playing_source_internal):
2743         * shell/rb-shell-player.h:
2744         Change 'playing-from-queue' from being a signal to being a property.
2746         * shell/rb-shell.c: (rb_shell_constructor),
2747         (rb_shell_playing_from_queue_cb),
2748         (rb_shell_view_queue_as_sidebar_changed_cb),
2749         (rb_shell_jump_to_entry_with_source):
2750         When the queue side pane is used, make 'jump to current' jump to the
2751         entry in the registered source for its type, rather than in the queue,
2752         and show it as playing in that source.
2753         
2754         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
2755         * sources/rb-sourcelist.h:
2756         Remove the 'preempted source' stuff, since it wasn't doing anything
2757         anyway.
2759 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2761         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
2762         (download_progress_cb): Canonicalise downloaded file location before
2763         setting the mountpoint property of the corresponding entry.
2764         Fixes #337287 and a couple of memory leaks.
2766 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2768         * metadata/rb-metadata-dbus-service.c: (test_can_save),
2769         (test_load), (main): Call g_set_prgname, report errors more
2770         usefully in test mode.
2771         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
2772         (rb_metadata_load): Don't ignore the have-type signal for non-audio
2773         files.  Run the event loop when the state change fails so we get the
2774         error messages from the bus.  Fixes #336921.
2776 2006-04-05  William Jon McCann  <mccann@jhu.edu>
2778         * data/art/Makefile.am: Install media-eject.
2780         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
2781         return value of rb_file.
2783         Fixes #337209
2785 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2787         Patch by: William Jon McCann  <mccann@jhu.edu>
2789         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
2790         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
2791         Fix GError leak.
2793 2006-04-04  William Jon McCann  <mccann@jhu.edu>
2795         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
2796         Don't try to add a date when we don't have one.  Fixes #336741.
2798         Also fix variable declaration in middle of block.
2800 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2802         * shell/rb-shell-player.c: (rb_shell_player_playpause):
2803         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
2805 2006-04-02  James Livingston  <doclivingston@gmail.com>
2807         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
2808         inverted logic causing imports to fail.
2810 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2812         * shell/main.c: (main): Fix dbusless build.
2814 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
2816         * player/rb-recorder-gst.c: fix packing of the C struct holding a
2817         wav header for non-gcc compilers (not tested much, was only written
2818         according to docs)
2820 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2822         * shell/main.c: (main): Check if we got a dbus connection before
2823         trying to create a proxy for the shell object.  Fixes #336634.
2825 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2827         * doc/reference/Makefile.am:
2828         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
2829         * shell/rb-source-header.c:
2830         * sources/rb-generic-player-source.c:
2831         (default_transform_playlist_uri):
2832         Fix various build issues.  Patch approximately 50% by Alex Lancaster
2833         <alexl@users.sourceforge.net>
2835 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2837         * configure.ac: Detect LIRC.
2838         
2839         * plugins/Makefile.am:
2840         * plugins/lirc/Makefile.am:
2841         * plugins/lirc/lirc.rb-plugin.desktop.in:
2842         * plugins/lirc/rb-lirc-plugin.c:
2843         LIRC plugin.
2845         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
2846         Remove obsolete files.
2848 2006-04-02  James Livingston  <doclivingston@gmail.com>
2850         * sources/rb-generic-player-source.c:
2851         (default_transform_playlist_uri): consider playlist paths as relative
2852         to the volume root by default, since that is what most players use.
2854 2006-04-02  James Livingston  <doclivingston@gmail.com>
2856         * lib/rb-util.c: (rb_mime_get_friendly_name):
2857         * lib/rb-util.h: add helper function to get the "friendly" name for a
2858         mime-type
2860         * metadata/rb-metadata-gst.c: (rb_metadata_init),
2861         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
2862         the user better error messages about undecodable streams, using the
2863         "friendly" name if possible. Fixes bug 128109.
2865 2006-04-02  James Livingston  <doclivingston@gmail.com>
2867         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
2868         (start_pipeline): fix building with gstreamer 0.8
2870 2006-04-02  James Livingston  <doclivingston@gmail.com>
2872         * sources/rb-podcast-source.c: (impl_delete),
2873         (rb_podcast_source_cmd_delete_feed),
2874         (rb_podcast_source_cmd_update_feed): copy the list before traversing
2875         it, since it may change during traversal. Fixes bug 336204.
2877 2006-04-01  James Livingston  <doclivingston@gmail.com>
2879         * data/art/media-eject.png: add the media-eject icon from Banshee
2880         (BSD-licensed), for use when the user's icon theme doesn't have one.
2882         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
2883         bug 334897.
2885 2006-04-01  James Livingston  <doclivingston@gmail.com>
2887         * shell/rb-shell-player.h:
2888         * shell/rb-shell-player.c: (rb_shell_player_play),
2889         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
2890         new rb_shell_player_{play,pause} functions, so everyone doesn't have
2891         to do rb_shell_player_playing followed by rb_shell_player_playpause.
2893         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
2894         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
2895         * shell/rb-shell.h: add rb_shell_get_ui_manager.
2897         * bindings/python/rb.defs: bind the above to Python, and remove some
2898         useless stuff from the bindings.
2900 2006-04-01  James Livingston  <doclivingston@gmail.com>
2902         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
2903         number tag.
2905         * shell/rb-shell.c:
2906         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
2908         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
2909         to true.
2911         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
2912         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
2913         method assigning, so it's understandable
2915         * sources/rb-library-source.c: (rb_library_source_class_init),
2916         (impl_paste): rather than hard-coding the types to ignore, use
2917         rb_source_can_copy.
2919 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2921         * sources/rb-library-source.c:
2922         (rb_library_source_preferences_sync):
2923         Don't crash if no audio profile is selected and the gconf schemas are 
2924         not installed.
2926 2006-03-31  James Livingston  <doclivingston@gmail.com>
2928         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
2929         "*" which caused compilation to fail
2931 2006-03-31  James Livingston  <doclivingston@gmail.com>
2933         * configure.ac:
2934         * Makefile.am:
2935         * backends/Makefile.am:
2936         * backends/gstreamer/Makefile.am:
2937         * backends/gstreamer/rb-encoder-gst.c:
2938         * backends/gstreamer/rb-encoder-gst.h:
2939         * backends/rb-encoder.c:
2940         * backends/rb-encoder.h: add a interface for transcoding, and a
2941         GStreamer implementation of it (based on Sound-Juicer's code).
2943         * shell/Makefile.am:
2944         * shell/rb-removable-media-manager.c:
2945         (rb_removable_media_manager_class_init),
2946         (rb_removable_media_manager_init),
2947         (rb_removable_media_manager_dispose),
2948         (rb_removable_media_manager_finalize),
2949         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
2950         (progress_cb), (completed_cb), (do_transfer),
2951         (rb_removable_media_manager_queue_transfer), (copy_entry),
2952         (rb_removable_media_manager_cmd_copy_tracks):
2953         * shell/rb-removable-media-manager.h: use the encoder interface to
2954         perform transfers of entries to other locations
2956         * shell/rb-shell-player.c: (open_location_thread):
2957         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2958         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
2959         (rb_shell_quit):
2960         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
2961         progress in the status bar.
2963         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
2964         (rb_shell_preferences_sync),
2965         (rb_shell_preferences_browser_views_activated_cb):
2966         * data/glade/general-prefs.glade: move the browser views setting from
2967         the library tab to the general one.
2969         * data/glade/library-prefs.glade: add settings for the layout of the
2970         user's library, and their preferred encoding format (e.g. for CD
2971         ripping).
2973         * lib/rb-preferences.h:
2974         * data/rhythmbox.schemas: add keys for the above options (and a few
2975         other minor ones)
2977         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
2978         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
2979         entry, that isn't inserted into the database.
2981         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
2982         (rb_audiocd_create_track_entry):
2983         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
2984         cds, and set the mime-type of audio cd tracks correctly.
2986         * sources/rb-library-source.c: (rb_library_source_class_init),
2987         (rb_library_source_finalize),
2988         (rb_library_source_edit_profile_clicked_cb),
2989         (impl_get_config_widget), (rb_library_source_preferences_sync),
2990         (impl_receive_drag), (rb_library_source_path_changed_cb),
2991         (rb_library_source_filename_changed_cb),
2992         (rb_library_source_format_changed_cb), (sanitize_path),
2993         (filepath_parse_pattern), (layout_example_label_update),
2994         (rb_library_source_layout_path_changed),
2995         (rb_library_source_layout_filename_changed), (build_filename),
2996         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
2997         entries to the library. Large chunks of code for determining the
2998         destination file name stolen from Sound-Juicer.
3000         * sources/rb-sourcelist-model.c: (path_is_droppable):
3001         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
3002         * sources/rb-static-playlist-source.c:
3003         (rb_static_playlist_source_class_init):
3004         * sources/rb-removable-media-source.c:
3005         (rb_removable_media_source_class_init):
3006         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
3007         (rb_source_can_paste):
3008         * sources/rb-source.h: add a new _can_paste method, and use it (rather
3009         than _can_copy) to determine whether we can paste into the source.
3012 2006-03-31  Steve Frécinaux  <steve@istique.net>
3014         * plugins/rb-python-module.c: allow import of python modules with a '.'
3015         (gedit's bug 336403). Patch by Johan Dahlin.
3017 2006-03-31  James Livingston  <doclivingston@gmail.com>
3019         * sources/rb-library-source.c: 
3020         * sources/rb-library-source.h:
3021         * sources/rb-browser-source.c:
3022         * sources/rb-browser-source.h: Split RBLibrarySource into two.
3023         RBBrowserSource now contains all the stuff for having a source which
3024         views a particular entry type (including browsers and searching).
3025         RBLibrarySource derives from this, and includes the library-specific
3026         stuff, like importing and library watching. Fixes some issues where
3027         library-derived sources were doing things that should be
3028         library-specific. Fixes bug 335185.
3030         * data/ui/rhythmbox-ui.xml:
3031         * sources/Makefile.am: modifications for the above
3033         * sources/rb-daap-source.c: (rb_daap_source_class_init),
3034         (rb_daap_source_get_paned_key):
3035         * sources/rb-daap-source.h:
3036         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
3037         * sources/rb-removable-media-source.c:
3038         (rb_removable_media_source_class_init):
3039         * sources/rb-removable-media-source.h: derive from RBBrowserSource
3040         instead of RBLibrarySource.
3042 2006-03-31  James Livingston  <doclivingston@gmail.com>
3044         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
3045         I buggered up when changing from GnomeVFSFileSize.
3047 2006-03-30  James Livingston  <doclivingston@gmail.com>
3049         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
3050         for "-Wno-error".
3052         * bindings/python/rb.override:
3053         * bindings/python/Makefile.am: make the RB python bindings depend on
3054         the RhythmDB ones, and use "-Wno-error" since the machine-generated
3055         code sometimes emits warnings.
3057         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3058         (rb_shell_player_error_get_type):
3059         * shell/rb-shell-player.h:
3060         * bindings/python/rb.defs: add bindings for RBShellPlayer
3062         * rhythmdb/rhythmdb.c: (rhythmdb_init),
3063         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
3064         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
3065         * rhythmdb/rhythmdb.h:
3066         * shell/rb-shell.c: (rb_shell_get_song_properties):
3067         * widgets/rb-entry-view.c: (propid_from_name):
3068         * widgets/rb-property-view.c: (rb_property_view_class_init):
3069         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
3070         than just plain GPtrArray, and add bindings for it.
3072         * bindings/python/rhythmdb.override: wrap some functions that use
3073         GValues
3075 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3077         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
3078         Only watch directories from which entries of type SONG have been
3079         added.
3081 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3083         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
3084         No need to restore the selection after rebuilding the child model,
3085         since that can't have changed the selection.
3087 2006-03-29  James Livingston  <doclivingston@gmail.com>
3089         * bindings/python/override_common.c:
3090         * bindings/python/override_common.h: add some for missing files to
3091         cvs.
3093 2006-03-29  James Livingston  <doclivingston@gmail.com>
3095         * configure.ac:
3096         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
3097         copied from gedit's autofoo and we don't need it
3099         * bindings/python/rhythmdb.defs:
3100         * bindings/python/rhythmdb.override: add missing files to cvs
3102 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3104         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
3105         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
3106         before running any of the debug/test modes.
3107         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
3108         Make plugin loading work when running uninstalled from the shell/
3109         directory.
3111 2006-03-29  James Livingston  <doclivingston@gmail.com>
3113         * rhythmdb/rhythmdb-property-model.c:
3114         (rhythmdb_property_model_sync),
3115         (rhythmdb_property_model_column_get_type):
3116         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
3118         * rhythmdb/rhythmdb-private.h:
3119         * rhythmdb/rhythmdb-query-model.c:
3120         (rhythmdb_query_model_class_init):
3121         * rhythmdb/rhythmdb-query-model.h:
3122         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
3123         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
3124         (rhythmdb_entry_get_type):
3125         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
3127         * widgets/rb-query-creator-properties.c:
3128         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
3129         was missing.
3131         * bindings/python/Makefile.am:
3132         * bindings/python/rb.defs:
3133         * bindings/python/rb.override:
3134         * plugins/rb-python-module.c: (rb_python_module_init_python): add
3135         Python bindings for RhythmDB.
3137 2006-03-29  James Livingston  <doclivingston@gmail.com>
3139         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
3140         sharing when using --no-registration
3142 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3144         * rhythmdb/rhythmdb-query-model.c:
3145         (rhythmdb_query_model_reapply_query):
3146         Don't remove entries while iterating, as it breaks the sequence
3147         nodes.  Instead, collect a list of removed entries and process it
3148         after iterating the sequence.  Fixes #334642.
3150 2006-03-29  James Livingston  <doclivingston@gmail.com>
3152         * plugins/rb-plugin-manager.c: (active_toggled_cb),
3153         (row_activated_cb), (plugin_manager_toggle_all):
3154         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
3155         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
3156         (button_press_cb), (source_name_edited_cb):
3157         * widgets/rb-property-view.c: (rb_property_view_set_property),
3158         (rb_property_view_post_row_deleted_cb),
3159         (rb_property_view_row_activated_cb),
3160         (rb_property_view_selection_changed_cb),
3161         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
3162         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
3164 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3166         * rhythmdb/rhythmdb-query-model.c:
3167         (rhythmdb_query_model_drag_data_received):
3168         Increment the reference count for entries added by drag and drop.
3169         Fixes #336045.
3171 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3173         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
3174         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
3175         Ignore invalid UTF-8 strings.  Fixes most of #334167.
3177 2006-03-27  James Livingston  <doclivingston@gmail.com>
3179         * shell/rb-shell.c: (rb_shell_constructor),
3180         (rb_shell_sync_window_state): fix a maximise-realise race that would
3181         cause some widgets to be resized after we had explicity set theri
3182         size. Hopefully fixes bug 331927.
3184 2006-03-27  James Livingston  <doclivingston@gmail.com>
3186         * plugins/rb-plugin-manager.c: (active_toggled_cb),
3187         (row_activated_cb), (plugin_manager_set_active),
3188         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
3189         configure button sensitivity when a plugin is enabled/disabled.
3191 2006-03-27  James Livingston  <doclivingston@gmail.com>
3193         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
3194         stop warnings, only the vbos is used anyway
3196         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
3197         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
3198         collection every now an then.
3200         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
3201         if we are finalising because the python object couldn't be created.
3203         * plugins/rb-python-module.c: (rb_python_module_new_object): return
3204         NULL if the python-side object couldn't be created. Stops crashes when
3205         the object is later used when it doesn't exist in Python.
3207         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
3208         (rb_python_shutdown): do better garbage collection when shutting down.
3209         Fixes the problem where Python was holding a reference to the shell,
3210         causing RB not to exit.
3212 2006-03-27  James Livingston  <doclivingston@gmail.com>
3214         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
3215         336131.
3217 2006-03-27  James Livingston  <doclivingston@gmail.com>
3219         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
3220         From bug 334829.
3222 2006-03-26  James Livingston  <doclivingston@gmail.com>
3224         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
3225         library location list to NULL after we free it. Fixes bug 336047.
3227 2006-03-26  James Livingston  <doclivingston@gmail.com>
3229         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
3231         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
3232         supplies. Fixes bug 335947.
3234 2006-03-25  James Livingston  <doclivingston@gmail.com>
3236         * data/glade/audioscrobbler-prefs.glade:
3237         * shell/rb-audioscrobbler.c:
3238         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
3239         "submit songs" checkbox, and make it not disable username/password
3240         entry. This will be needed when we support other last.fm stuff
3241         (profile access, radio, etc).
3243 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
3245         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
3246         Volume should not display stock_volume-0 for volume > 0. Fixes bug
3247         335777.
3249 2006-03-24  James Livingston  <doclivingston@gmail.com>
3251         * shell/rb-shell-player.c: (rb_shell_player_set_property),
3252         (rb_shell_player_sync_play_order),
3253         (rb_shell_player_play_order_update_cb),
3254         (actually_set_playing_source): update the next/previous availablility
3255         in places where it was missing. Fixes bug 335490.
3257 2006-03-24  James Livingston  <doclivingston@gmail.com>
3259         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
3260         can't find the widget
3262         * lib/rb-util.c: (rb_uri_list_parse):
3263         * lib/rb-util.h: add function for parsing a URI list into strings.
3265         * metadata/Makefile.am: make the metdata helper build when linking
3266         with --as-needed
3268         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
3269         g_mkdir_with_parents instead of coding our own.
3271         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
3272         <itunes:author> over <generator>, instead of using whichever comes
3273         last.
3275         * rhythmdb/rhythmdb-private.h:
3276         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
3277         field, as we don't ever check it (to detect corruption). Saves a bit
3278         of memory.
3280 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3282         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
3283         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
3284         Escape '&' and '=' in the paths we get back from
3285         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
3287 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3289         * shell/rb-shell.c: (rb_shell_constructor):
3290         Issue startup notification after creating the main window, so
3291         notification is issued whether the window is visible or not.
3292         Fixes #335086.
3294 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3296         * sources/rb-auto-playlist-source.c: (impl_search),
3297         (rb_auto_playlist_source_query_complete_cb),
3298         (rb_auto_playlist_source_do_query):
3299         * sources/rb-library-source.c: (impl_search),
3300         (rb_library_source_query_complete_cb),
3301         (rb_library_source_do_query):
3302         Defer subset searches (where text is appended to an existing search)
3303         until the original query is complete.
3305 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
3307         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
3309         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
3310         (rb_refstring_get_sort_key): fixes for strict-aliasing
3312 2006-03-21  James Livingston  <jrl@ids.org.au>
3314         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
3315         importing a single file. Fixes bug 335307.
3317 2006-03-21  James Livingston  <jrl@ids.org.au>
3319         * shell/Makefile.am: remove the reference to backends/ that I
3320         accidently included.
3322 2006-03-21  James Livingston  <jrl@ids.org.au>
3324         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
3325         with Forte (on Solaris). Closes bug 335318.
3327         * configure.ac:
3328         * lib/Makefile.am:
3329         * player/rb-recorder-gst.c:
3330         * podcast/rb-podcast-parse.c:
3331         * remote/bonobo/Makefile.am:
3332         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
3333         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
3334         (rhythmdb_query_model_add_entry),
3335         (rhythmdb_query_model_add_results):
3336         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
3337         * rhythmdb/rhythmdb.h:
3338         * shell/Makefile.am:
3339         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
3340         (update_speed_combobox):
3341         * sources/rb-sourcelist-model.c:
3343 2006-03-21  James Livingston  <jrl@ids.org.au>
3345         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
3347         * player/Makefile.am:
3348         * shell/Makefile.am: work correctly with a separate build root.
3350 2006-03-21  James Livingston  <jrl@ids.org.au>
3352         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
3353         get handed NULL.
3355 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3357         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
3358         Only create ignore entries when importing into the library.  
3359         Ignore entries for files in removable media sources don't help.
3361 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3363         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
3364         * shell/rb-source-header.h:
3365         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
3366         * widgets/rb-search-entry.h:
3367         Add functions to make the search box grab focus.
3369         * shell/rb-shell.c: (rb_shell_cmd_view_all):
3370         Focus the search box after handling the 'view all' action.
3372 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3374         * rhythmdb/rhythmdb.h:
3375         * rhythmdb/rhythmdb.c: (rhythmdb_init),
3376         (rhythmdb_execute_multi_stat_info_cb),
3377         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
3378         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
3379         (action_thread_main):
3380         Collect all the get_file_info requests on startup into one gnome-vfs
3381         job to reduce overhead and avoid contention for the rhythmdb lock.
3382         Add a new method to call when all initial query models are set up.
3383         
3384         * shell/rb-shell.c: (idle_handle_load_complete):
3385         Call rhythmdb startup complete function when we've loaded all the
3386         playlists.  Fixes #334106.
3388 2006-03-20  James Livingston  <jrl@ids.org.au>
3390         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
3391         (rb_entry_view_selection_changed_cb),
3392         (rb_entry_view_have_complete_selection): make has_complete_selection
3393         not slow. Fixes a performance issue I added a week or so ago.
3395 2006-03-20  James Livingston  <jrl@ids.org.au>
3397         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
3398         before passing to strcmp. From bug 334559.
3400 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3402         * configure.ac:
3403         * lib/Makefile.am:
3404         * lib/rb-proxy-config.c:
3405         * lib/rb-proxy-config.h:
3406         Add a new object to watch the HTTP proxy configuration and emit
3407         signals when it changes.
3409         * shell/rb-audioscrobbler.c:
3410         * shell/rb-audioscrobbler.h:
3411         Use rb-proxy-config to watch HTTP proxy configuration.
3413         * shell/rb-shell.c:
3414         Construct rb-proxy-config object on startup, and remove all
3415         audioscrobbler references.
3417         * shell/Makefile.am:
3418         * plugins/audioscrobbler/Makefile.am:
3419         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
3420         Move all audioscrobbler code into the plugin.  We should move
3421         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
3422         point.  Don't use a private data structure in the plugin, since the
3423         class definition isn't in a header file.  Fixes #335091.
3425 2006-03-20  James Livingston  <jrl@ids.org.au>
3427         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
3428         don't enable Next if the source has an EOS type other than
3429         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
3431 2006-03-20  James Livingston  <jrl@ids.org.au>
3433         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
3434         (rb_song_info_forward_clicked_cb): deal with there being no
3435         next/previous entry.
3437         (rb_song_info_query_model_inserted_cb),
3438         (rb_song_info_query_model_deleted_cb),
3439         (rb_song_info_query_model_reordered_cb),
3440         (rb_song_info_query_model_changed_cb): monitor the query for changes,
3441         to update the button status. Fixes bug 333293.
3443 2006-03-20  James Livingston  <jrl@ids.org.au>
3445         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
3446         caused by my last commit
3448 2006-03-20  James Livingston  <jrl@ids.org.au>
3450         * bindings/python/Makefile.am:
3451         * bindings/python/rb.defs:
3452         * bindings/python/rb.override: add python bindings of RBRemoteProxy
3454         * shell/rb-shell.c: (rb_shell_constructor),
3455         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
3456         tray-icon detection slightly
3458 2006-03-19  Steve Frécinaux  <steve@istique.net>
3460         * data/ui/rhythmbox-ui.xml:
3461         * shell/rb-shell.c:
3463         Add an empty Tool Menu (hidden by default) containing placeholders for
3464         plugins.
3466         * configure.ac:
3467         * plugins/Makefile.am:
3468         * plugins/pythonconsole/Makefile.am:
3469         * plugins/pythonconsole/pythonconsole.py:
3470         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
3471         
3472         Python Console plugin
3474 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3476         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
3477         Extra step to encode '&' and '=' to match what gnome-vfs does
3478         internally.
3479         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3480         (rhythmdb_tree_save):
3481         Increment rhythmdb xml version to 1.2, and force another uri
3482         re-canonicalisation when loading v1.1 databases.
3483         Fixes bug #333998.
3485 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3487         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
3488         (avahi_client_init), (browse_cb):
3489         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
3490         (avahi_client_init):
3491         Fix compilation with Avahi 0.5.x (bug #334551).
3493 2006-03-19  James Livingston  <jrl@ids.org.au>
3495         Add Increase/Decrease Volume menu items and keybindings. From bug
3496         123383.
3498         * data/ui/rhythmbox-ui.xml:
3499         * shell/rb-shell-player.c: (rb_shell_player_constructor),
3500         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
3501         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
3503 2006-03-19  James Livingston  <jrl@ids.org.au>
3505         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
3507         * shell/Makefile.am: fix the link order, so that we compile with
3508         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
3510 2006-03-19  James Livingston  <jrl@ids.org.au>
3512         patch by: Adam Petaccia  <adam@tpetaccia.com>
3514         * data/ui/rhythmbox-ui.xml: move preferences below "configure
3515         plugins". Fixes bug 335037.
3517 2006-03-18  James Livingston  <jrl@ids.org.au>
3519         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
3520         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
3521         332992.
3523         * widgets/rb-header.c: don't make artist/album info in the header the
3524         small size, since it's hard to read.
3526 2006-03-16  William Jon McCann  <mccann@jhu.edu>
3528         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
3529         (rhythmdb_finalize): Don't leak the hash tables.
3530         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
3531         (rhythmdb_commit_internal): Make sure to process the deletions.
3532         (rhythmdb_entry_delete): Use a hash.
3534         * podcast/rb-podcast-manager.c: Random analness about char*
3535         (rb_podcast_manager_remove_feed): Add debugging.
3536         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
3537         the result of gnome_vfs_unlink.  Don't leak a uri.
3539         Fixes #334786
3541 2006-03-18  James Livingston  <jrl@ids.org.au>
3543         * NEWS: update NEWS file
3545 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3547         * rhythmdb/rhythmdb-property-model.c:
3548         (rhythmdb_property_model_prop_changed_cb):
3549         Remove entries from the hash table after processing visible->hidden
3550         changes.
3552 2006-03-16  William Jon McCann  <mccann@jhu.edu>
3554         * sources/rb-daap-source.c (connection_connected_cb) 
3555         (connection_disconnected_cb): Add debug.
3556         (rb_daap_source_get_headers): Check for NULL connection.
3558         * daapsharing/rb-daap-src.c (rb_daap_src_open):
3559         Check return value of rb_daap_source_get_headers.
3561         Fixes #332089
3563 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3565         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
3566         Restore the selection after rebuilding the child model, so the
3567         selection is shown correctly after using the 'browse this
3568         album/artist/genre' menu items.
3570 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3572         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
3573         Clear the selection before changing the active model.
3574         Fixes crash reported in bug 334549.
3576 2006-03-15  James Livingston  <jrl@ids.org.au>
3578         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
3579         (rb_tray_icon_sync_action):
3580         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
3581         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
3582         for non-libnotify notification bubbles. Fixes bug 331721.
3584 2006-03-15  James Livingston  <jrl@ids.org.au>
3586         Add search-bar options to playlists. Fixes bug 334407.
3588         * sources/rb-auto-playlist-source.c:
3589         (rb_auto_playlist_source_class_init),
3590         (rb_auto_playlist_source_constructor),
3591         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
3592         (search_action_to_prop), (search_action_changed):
3593         * sources/rb-static-playlist-source.c:
3594         (rb_static_playlist_source_class_init),
3595         (rb_static_playlist_source_constructor),
3596         (construct_query_from_selection), (impl_get_search_actions),
3597         (search_action_to_prop), (search_action_changed):
3599 2006-03-14  William Jon McCann  <mccann@jhu.edu>
3601         * shell/rb-source-header.c (rb_source_header_set_source_internal):
3602         Remove broken attempt at making the search bar buttons not
3603         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
3605 2006-03-14  William Jon McCann  <mccann@jhu.edu>
3607         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
3608         Chain up to parent's dispose instead of finalize.  Fixes #334479.
3610 2006-03-14  William Jon McCann  <mccann@jhu.edu>
3612         * widgets/rb-header.c (rb_header_sync): Escape album and
3613         artist before adding to markup.
3615 2006-03-14  William Jon McCann  <mccann@jhu.edu>
3617         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
3618         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
3619         (rb_header_set_property), (rb_header_get_property),
3620         (rb_header_sync):
3621         Remove the GnomeUrl song links until we can do it properly.
3622         Fixes #334453.
3624 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3626         * shell/rb-source-header.c: (rb_source_header_clear_search):
3627         Remove the stored search text from the hash table, so it doesn't
3628         reappear after switching to another source and back.
3630         * sources/rb-auto-playlist-source.c: (impl_search):
3631         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
3632         * sources/rb-static-playlist-source.c: (impl_search):
3633         Make sure all sources treat impl_search(NULL) and impl_search("") the
3634         same.  Fixes #334525.
3636 2006-03-14  James Livingston  <jrl@ids.org.au>
3638         Store which thread created new entries, and make rhythmdb_commit only
3639         insert the entries for the thread that calls it. This stops one thread
3640         calling rhythmdb_commit inserting entries that are half-way through
3641         construction by another thread (as happens with audio cds). From bug
3642         330226.
3644         * rhythmdb/rhythmdb.c: (rhythmdb_init),
3645         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
3646         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
3647         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
3648         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
3649         (rhythmdb_process_metadata_load),
3650         (rhythmdb_process_queued_entry_set_event),
3651         (rhythmdb_prop_get_type):
3653 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3655         * rhythmdb/rhythmdb-query-model.c:
3656         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
3657         (rhythmdb_query_model_finalize):
3658         Move object unrefs from _finalize into _dispose.
3659         
3660         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
3661         Remove extra g_object_ref that was causing query model leaks.
3662         
3663         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
3664         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
3665         (genre_selection_reset_cb), (rb_iradio_source_do_query):
3666         Remove the cached 'all' query, since it doesn't really help and it
3667         makes the code more complicated.  Attach the genre property view to
3668         the query model build from the search text, so only genres for
3669         stations matching the search terms are displayed.  Preserve the genre
3670         selection across searches.
3672         * widgets/rb-library-browser.c: 
3673         (rb_library_browser_class_init), (rb_library_browser_get_property):
3674         Add properties for the input and output models for the browser, and
3675         remove the 'changed' signal as we can just use notify::output-model.
3676         (ignore_selection_changes),
3677         (selection_restore_data_destroy), (query_complete_cb),
3678         (restore_selection): Helper functions for preserving selections across
3679         query model rebuilds.
3680         (rebuild_output_model):  New function for creating a query model to
3681         use as the display model for a source using the browser.
3682         (rebuild_child_model): Add a call to rebuild_output_model, add missing
3683         g_object_unrefs, reuse the parent's query model when there's no
3684         selection, and use ignore_selection_changes and restore_selection.
3685         (rb_library_browser_set_selection): rebuild_child_model emits the
3686         changed signal, so no need to do it here.
3687         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
3688         ignore_selection_changes and restore_selection. 
3689         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
3690         flag to rb_library_browser_set_model indicating whether the query is
3691         asynchronous.
3693         * sources/rb-static-playlist-source.c:
3694         (rb_static_playlist_source_class_init),
3695         (rb_static_playlist_source_dispose):
3696         (rb_static_playlist_source_constructor):  Add an extra reference on
3697         the base model, so it doesn't vanish when we set a new display model
3698         based on a search or browser selection.
3699         (impl_search): Ensure the search_text field in the source is NULL if
3700         the search box is empty.
3701         (construct_query_from_selection),
3702         (rb_static_playlist_source_do_query): Use the query model constructed
3703         from the search as the input model for the browser.
3704         (rb_static_playlist_source_browser_changed_cb): Use the browser's
3705         output model as the query model for the source.
3707         * sources/rb-auto-playlist-source.c:
3708         (rb_auto_playlist_source_finalize): Free more stuff.
3709         (rb_auto_playlist_source_constructor),
3710         (rb_auto_playlist_source_browser_changed_cb):
3711         Update for rb-library-browser changes, use the browser's output query
3712         model as the query model for the source.
3713         (impl_reset_filters), (impl_search), 
3714         (rb_auto_playlist_source_do_query),
3715         (rb_auto_playlist_source_set_query):
3716         Use the query model constructed from the search text as the input to
3717         the library browser, and when adding text to an existing search, apply
3718         the new query to the existing query model.
3719         
3720         * sources/rb-library-source.c: (rb_library_source_dispose):
3721         (rb_library_source_finalize): Chain dispose up to the parent class.
3722         (rb_library_source_constructor): Update for rb-library-browser
3723         changes. 
3724         (impl_search): Ensure search_text is NULL if the search box is empty,
3725         and use the subset flag to _do_query if text has been appended to an
3726         existing search.
3727         (search_action_changed), (impl_reset_filters):
3728         (rb_library_source_browser_changed_cb),
3729         (rb_library_source_do_query): Use the browser's output model as the
3730         query model for the source.
3732         Rework library and playlist sources to use a single query chain,
3733         and to limit the entries shown in property views based on the search
3734         terms.  Fixes bug #322787.
3736 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3738         * configure.ac:  Enable metadata helper by default, and fix a typo.
3740 2006-03-13  James Livingston  <jrl@ids.org.au>
3742         Make RBRefStrings lazily create the folded and sort-key strings when
3743         they are first used. This will same some memory by not creating ones
3744         that are never used, and delaying some of the others to when the user
3745         resorts or performs a similar action. Fixes bug 332992.
3747         * rhythmdb/rb-refstring.c: (rb_refstring_free),
3748         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
3749         (rb_refstring_get), (rb_refstring_get_folded),
3750         (rb_refstring_get_sort_key), (rb_refstring_hash),
3751         (rb_refstring_equal):
3752         * rhythmdb/rb-refstring.h:
3753         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3755 2006-03-12  William Jon McCann  <mccann@jhu.edu>
3757         * data/ui/rhythmbox-ui.xml:
3758         * lib/rb-stock-icons.c: (rb_stock_icons_init):
3759         * lib/rb-stock-icons.h:
3760         * shell/rb-shell-player.c:
3761         * shell/rb-shell.c: (rb_shell_constructor):
3762         * shell/rb-source-header.c: (force_no_shadow),
3763         (ui_manager_add_widget_cb), (rb_source_header_constructor),
3764         (rb_source_header_class_init), (rb_source_header_init),
3765         (merge_source_ui_cb), (toolbar_set_homogeneous),
3766         (rb_source_header_set_source_internal),
3767         (rb_source_header_set_property), (rb_source_header_get_property),
3768         (rb_source_header_set_source), (rb_source_header_new),
3769         (rb_source_header_filter_changed_cb):
3770         * shell/rb-source-header.h:
3771         * sources/rb-library-source.c: (rb_library_source_class_init),
3772         (rb_library_source_init), (search_action_to_prop),
3773         (search_action_changed), (rb_library_source_constructor),
3774         (impl_search), (impl_reset_filters), (impl_get_search_actions),
3775         (construct_query_from_selection):
3776         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3777         (rb_podcast_source_init), (search_action_to_prop),
3778         (search_action_changed), (rb_podcast_source_constructor),
3779         (construct_query_from_selection), (impl_get_ui_actions),
3780         (impl_get_search_actions):
3781         * sources/rb-source.c: (rb_source_class_init),
3782         (rb_source_get_ui_actions), (default_get_search_actions),
3783         (rb_source_get_search_actions):
3784         * sources/rb-source.h:
3786         Add a search bar.  Fixes #328618
3788 2006-03-12  James Livingston  <jrl@ids.org.au>
3790         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
3791         * shell/main.c: (main): make --no-update not stat files checking for
3792         changes, instead of doing nothing. Fixes bug 125177.
3794 2006-03-12  James Livingston  <jrl@ids.org.au>
3796         * podcast/rb-podcast-manager.c:
3797         (rb_podcast_manager_thread_parse_feed):
3798         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
3799         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
3800         having an invalid mime-type. Fixed bug 329813.
3802 2006-03-12  James Livingston  <jrl@ids.org.au>
3804         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
3805         Finally lets us close bug 309609.
3807         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
3808         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
3809         0.10
3811         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
3812         inverted logic of the editable check.
3814 2006-03-12  James Livingston  <jrl@ids.org.au>
3816         Make API doc generation work again. Fixes bug 334276.
3818         * doc/reference/Makefile.am:
3819         * doc/reference/tmpl/rb-debug.sgml:
3820         * doc/reference/tmpl/rb-druid.sgml:
3821         * doc/reference/tmpl/rb-entry-view.sgml:
3822         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
3823         * doc/reference/tmpl/rb-metadata.sgml:
3824         * doc/reference/tmpl/rb-shell.sgml:
3825         * doc/reference/tmpl/rhythmbox-unused.sgml:
3826         * doc/reference/tmpl/rhythmdb.sgml:
3828 2006-03-12  James Livingston  <jrl@ids.org.au>
3830         * shell/rb-shell-clipboard.c:
3831         (rb_shell_clipboard_set_source_internal),
3832         (rb_shell_clipboard_sync): don't try to use the source's entry view if
3833         it doesn't have one. Fixes bug 331673.
3835         * sources/rb-source.c: (rb_source_class_init): provide a default
3836         have_url implementation that returns FALSE.
3838 2006-03-12  James Livingston  <jrl@ids.org.au>
3840         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
3841         doing a distclean. Fixes bug 334221.
3844         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
3846         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
3848 2006-03-11  James Livingston  <jrl@ids.org.au>
3850         * shell/rb-shell.c: (rb_shell_window_state_cb),
3851         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
3852         update the window width/height when iconified. Stops the window
3853         changing size when it is restored from the tray, fixing bug 333824. 
3855 2006-03-11  James Livingston  <jrl@ids.org.au>
3857         Try to get cvs to actually add the necessary files for plugin support
3859 2006-03-11  James Livingston  <jrl@ids.org.au>
3861         Add a plugin framework, with basic support for Python plugins (based
3862         on gedit's). Closes bug 330523.
3864         * Makefile.am:
3865         * shell/Makefile.am:
3866         * configure.ac: necessary autofoo.
3868         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
3870         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
3871         * lib/rb-file-helpers.h:
3873         * data/glade/plugins/glade:
3874         * lib/rb-preferences.h:
3875         * plugins/*:
3876         * bindings/*: plugin framework
3878         * plugins/sample/*:
3879         * plugins/sample-python/*: sample plugins
3881         * plugins/audioscrobbler/*:
3882         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
3883         (rb_audioscrobbler_set_property),
3884         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
3885         submission into a plugin. shell/audioscrobbler.* should really be
3886         moved, but that sucks with cvs.
3888         * shell/rb-shell.h:
3889         * shell/rb-shell.c: (rb_shell_constructor),
3890         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
3891         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
3892         (rb_shell_quit): start and stop plugin framework.
3894 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3896         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
3897         (rhythmdb_entry_delete):
3898         Emit entry-deleted signals when rhythmdb_commit is called, rather than
3899         immediately, so we can't get change notifications afterwards.  
3900         Fixes #331732.
3901         (rhythmdb_process_metadata_load): Add a commit after removing an
3902         entry so we can recreate it with a different type without getting
3903         confused.
3905 2006-03-11  James Livingston  <jrl@ids.org.au>
3907         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
3908         use the drive name for audio CDs, use "Unknown CD".
3910 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3912         patch by:  James Henstridge  <james@jamesh.id.au>
3914         * sources/rb-removable-media-source.c:
3915         (rb_removable_media_source_constructor):
3916         Get the device name from the GnomeVFSDrive if possible,
3917         since this is usually a more descriptive name.  Fixes #333080.
3919 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3921         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
3923         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
3924         Don't automatically download episodes when configured for manual
3925         updating.  Fixes #331564.
3927 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3929         * rhythmdb/rhythmdb-property-model.c:
3930         (rhythmdb_property_model_iter_from_string):
3931         Return an iterator for the 'all' property when name == NULL,
3932         and don't write to *iter if iter == NULL.
3934 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3936         * shell/rb-shell-player.c: (rb_shell_player_do_next):
3937         When switching to the play queue, still call _go_next on the normal
3938         play order, so self-emptying auto playlists ("play count = 0" etc.)
3939         don't restart once the queue is empty.
3941         * shell/rb-tray-icon.c:
3942         Change shortcut for 'show notifications' to 'o' so it doesn't clash
3943         with 'next'.
3945 2006-03-05  James Livingston  <jrl@ids.org.au>
3947         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
3948         don't submit tracks which could not be played. Fixed bug 333013.
3950         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
3951         tracks which could not be played.
3953 2006-03-05  James Livingston  <jrl@ids.org.au>
3955         Sync musicbrainz lookup code from Sound-Juicer cvs.
3957         * metadata/sj-metadata-musicbrainz.c:
3958         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
3959         (get_offline_track_listing), (artist_and_title_from_title),
3960         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
3961         (mb_list_albums), (mb_get_submit_url):
3962         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
3963         * metadata/sj-metadata.h:
3964         * metadata/sj-structures.c: (track_details_free),
3965         (album_details_free):
3966         * metadata/sj-structures.h:
3968 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3970         * lib/rb-debug.h:
3971         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
3972         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
3973         (rb_profiler_reset), (rb_profiler_free):
3974         Filter debug output by matching the file and function names against a
3975         match string.
3977         * shell/main.c: (main):
3978         Add -D command line option to specify the debug match string.
3980         * shell/rb-removable-media-manager.c:
3981         (rb_removable_media_manager_mount_volume):
3982         Fix some typos in debug output.
3984 2006-03-03  James Livingston  <jrl@ids.org.au>
3986         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
3987         * shell/rb-shell.c: (rb_shell_load_uri):
3988         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
3989         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
3990         use the new "recurse" property from totem-plparser, if present. Stop
3991         RB hanging for new users who don't have a 'net connection. From bug
3992         331508.
3994 2006-03-02  Bastien Nocera  <hadess@hadess.net>
3996         * shell/rb-removable-media-manager.c:
3997         (rb_removable_media_manager_mount_volume):
3998         * sources/Makefile.am:
3999         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
4000         Fix missing files on make dist (conditional files), only build the
4001         N770 support if there's HAL support, as we have no other ways of
4002         detecting it
4004 2006-03-03  James Livingston  <jrl@ids.org.au>
4006         * shell/rb-shell-clipboard.c:
4007         (rb_shell_clipboard_set_source_internal): really fix it this time.
4008         hopefully.
4010 2006-03-03  James Livingston  <jrl@ids.org.au>
4012         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
4013         with the idle function not being removed.
4015 2006-03-02  James Livingston  <jrl@ids.org.au>
4017         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
4018         * widgets/rb-entry-view.h: add function for determining whether all
4019         entries are selected.
4021         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
4022         (rb_shell_clipboard_set_source_internal),
4023         (rb_shell_clipboard_finalize),
4024         (rb_shell_clipboard_idle_poll_deletions),
4025         (rb_shell_clipboard_entryview_changed_cb),
4026         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
4027         removals, to update things.
4029         (rb_shell_clipboard_sync): update the Select All and Select None
4030         sensitivity, based on what is selected. Fixed bug 172220.
4032 2006-03-02  James Livingston  <jrl@ids.org.au>
4034         * widgets/rb-library-browser.c: (rebuild_child_model): save and
4035         restore the selections of later models. This means that selecting the
4036         artist for the selected album does not reset the album selection.
4038 2006-03-02  James Livingston  <jrl@ids.org.au>
4040         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
4041         Stops it emitting critical warnings.
4043 2006-03-02  James Livingston  <jrl@ids.org.au>
4045         * lib/rb-file-helpers.c: (rb_uri_append_uri):
4046         * lib/rb-file-helpers.h: Add uri concatenation function for when the
4047         second fragment is already escaped.
4049         * sources/rb-generic-player-source.c:
4050         (rb_generic_player_source_class_init),
4051         (rb_generic_player_source_constructor), (impl_show_popup),
4052         (rb_generic_player_source_load_playlists),
4053         (rb_generic_player_source_transform_playlist_uri),
4054         (handle_playlist_entry_cb), (visit_playlist_dirs),
4055         (default_load_playlists), (default_transform_playlist_uri):
4056         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
4057         the device. Allow subclasses to override the playlist loading, and
4058         (playlist uri)->(actual uri) mapping. A lot of devices which have
4059         playlists won't work right now, but people will see them and hopefully
4060         file bugs.
4062         * sources/rb-psp-source.c: (rb_psp_source_class_init),
4063         (rb_psp_source_create_playlists): Adapt the PSP for the above change
4064         
4065         * sources/Makefile.am:
4066         + sources/rb-nokia770-source.{c,h}:
4067         * shell/rb-removable-media-manager.c:
4068         (rb_removable_media_manager_mount_volume): Add support for reading
4069         playlists of Nokia 770s.
4071 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4073         * data/glade/podcast-properties.glade:
4074         * podcast/rb-podcast-properties-dialog.c:
4075         (rb_podcast_properties_dialog_init),
4076         (rb_podcast_properties_dialog_update),
4077         (rb_podcast_properties_dialog_update_location),
4078         (rb_podcast_properties_dialog_update_download_location):
4079         Add 'download location' field showing the path to the downloaded copy.
4080         Fixes #330696.
4082 2006-03-01  Bastien Nocera  <hadess@hadess.net>
4084         * configure.ac: simplify HAVE_HAL define
4086 2006-03-01  Bastien Nocera  <hadess@hadess.net>
4088         * configure.ac:
4089         * lib/rb-file-helpers.c: (rb_uri_append_path):
4090         * lib/rb-file-helpers.h:
4091         * shell/rb-removable-media-manager.c:
4092         (rb_removable_media_manager_mount_volume):
4093         * sources/Makefile.am:
4094         * sources/rb-ipod-source.c:
4095         * sources/rb-psp-source.*:
4096         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
4097         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
4099 2006-03-02  James Livingston  <jrl@ids.org.au>
4101         * shell/rb-shell-player.c: (rb_shell_player_set_property),
4102         (rb_shell_player_play), (rb_shell_player_jump_to_current),
4103         (swap_playing_source), (rb_shell_player_playpause),
4104         (rb_shell_player_sync_buttons), (actually_set_playing_source),
4105         (rb_shell_player_set_playing_source_internal): check for the entry
4106         view being NULL before trying to use it. Lets us support sources which
4107         don't have an entry view. From bug 331673.
4109 2006-03-01  Bastien Nocera  <hadess@hadess.net>
4111         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
4112         use gnome_vfs_read_entire_file with a URI, not a local filename
4114 2006-03-01  James Livingston  <jrl@ids.org.au>
4116         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
4117         first-seen and last-seen when merging duplicate entries.
4119 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4121         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
4122         * widgets/rb-property-view.h:  New function, allowing custom 
4123         interactive search functions for property views.
4124         
4125         * sources/rb-podcast-source.c: 
4126         (feed_select_change_cb): Only do a new query when the selection
4127         actually changes.
4128         (rb_podcast_source_constructor),
4129         (rb_podcast_source_feed_title_search_func):
4130         Interactive search function for podcast feed titles.  Fixes #327451.
4132 2006-03-01  James Livingston  <jrl@ids.org.au>
4134         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
4135         the uri in the callback, since it causes symbols to not be escaped.
4136         Fixes bug 332976.
4138         * data/ui/rhythmbox-ui.xml:
4139         * sources/rb-import-errors-source.c:
4140         (rb_import_errors_source_class_init),
4141         (rb_import_errors_source_constructor), (impl_get_status),
4142         (impl_move_to_trash),
4143         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
4144         import errors source
4145         
4146         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
4147         (rb_entry_view_append_column): unescape the URI for display.
4149 2006-03-01  James Livingston  <jrl@ids.org.au>
4151         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
4152         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
4153         function fails.
4155 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
4157         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
4158         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
4159         * sources/rb-play-queue-source.c:
4160         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
4161         (rb_play_queue_source_update_count):  Use "Play Queue" instead
4162         of "Queued Songs".
4164         Fixes #331637.
4166 2006-03-01  James Livingston  <jrl@ids.org.au>
4168         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
4169         Fixes bug 332913.
4171 2006-03-01  James Livingston  <jrl@ids.org.au>
4173         * daapsharing/rb-daap-mdns-browser-howl.c:
4174         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
4175         * daapsharing/rb-daap-mdns-publisher-avahi.c:
4176         (rb_daap_mdns_publisher_class_init),
4177         (rb_daap_mdns_publisher_finalize):
4178         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
4179         * player/rb-recorder-gst.c: (rb_recorder_class_init),
4180         (rb_recorder_finalize):
4181         * rhythmdb/rhythmdb-query-model.c:
4182         (rhythmdb_query_model_constructor):
4183         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
4184         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
4185         * sources/rb-playlist-source-recorder.c:
4186         (rb_playlist_source_recorder_style_set),
4187         (rb_playlist_source_recorder_class_init),
4188         (rb_playlist_source_recorder_finalize):
4189         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
4190         other classes in the same way, so they don't break when derived from.
4192 2006-03-01  James Livingston  <jrl@ids.org.au>
4194         * sources/rb-generic-player-source.c:
4195         (rb_generic_player_source_constructor): don't get the parent class in
4196         a dumb way, and it breaks when the class is derived from.
4198 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
4200         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
4202 2006-03-01  James Livingston  <jrl@ids.org.au>
4204         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
4205         not work in glib 2.8 systems.
4207 2006-03-01  James Livingston  <jrl@ids.org.au>
4209         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
4210         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
4211         say it is crap.
4213         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
4214         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
4215         podcasts on ion-local places
4217         * rhythmdb/gsequence.c: (g_sequence_node_new),
4218         (g_sequence_node_free): use gslice if we are building against glib
4219         2.10.
4221         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
4222         local files too, so it doesn't block.
4224 2006-02-28  James Livingston  <jrl@ids.org.au>
4226         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
4227         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
4228         stats the file. Stops the UI blocking while stats are done.
4230 2006-02-28  James Livingston  <jrl@ids.org.au>
4232         * sources/rb-static-playlist-source.c:
4233         (rb_static_playlist_source_class_init),
4234         (rb_static_playlist_source_constructor), (impl_reset_filters),
4235         (impl_get_property_views), (impl_browser_toggled),
4236         (rb_static_playlist_source_do_query),
4237         (rb_static_playlist_source_browser_changed_cb): add browsers to static
4238         playlists. From bug 118862.
4240         * sources/rb-play-queue-source.c:
4241         (rb_play_queue_source_class_init): disable them for the play queue.
4243 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
4245         * data/glade/library-prefs.glade:  Add a mnemonic.
4246         * sources/rb-library-source.c:
4247         (rb_library_source_location_button_clicked_cb):  Use title
4248         capitalization for window title.
4250 2006-02-28  James Livingston  <jrl@ids.org.au>
4252         * sources/rb-auto-playlist-source.c:
4253         (construct_query_from_selection): don't create a subquery for only one
4254         criteria, as it's a silly effifiency degredation.
4256 2006-02-28  James Livingston  <jrl@ids.org.au>
4258         * rhythmdb/rhythmdb.h:
4259         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4260         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
4261         saved to disk
4263         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
4264         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
4265         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
4266         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
4267         IGNORE (e.g. known video stream) create an entry of the Ignore type.
4268         This will make importing files quicker as we don't need to try files
4269         that we know are not going to be interesting - especially useful when
4270         using the library watching facility.
4272         Fixes bug 323179.
4274 2006-02-28  James Livingston  <jrl@ids.org.au>
4276         * shell/rb-shell.c: (rb_shell_constructor),
4277         (rb_shell_set_visibility): fix browser and source-list pane
4278         positioning, that I broke with the "remember visibility" patch.
4280 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4282         * metadata/rb-metadata-dbus-service.c: (main):
4283         Change argument handling so you can use --debug with the --load and
4284         --can-save test modes.
4285         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
4286         Use a separate GMainContext, not the default one.  Probably fixes
4287         #332344.
4289 2006-02-27  James Livingston  <jrl@ids.org.au>
4291         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
4292         first starting up. Fixes bug 330342.
4294 2006-02-27  James Livingston  <jrl@ids.org.au>
4296         * sources/rb-sourcelist-model.c:
4297         (rb_sourcelist_model_set_dnd_targets):
4298         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
4299         COPY action for draging sources and tracks, not MOVE as well. Stops
4300         Nautilus moving file away, and fixes bug 332488.
4302 2006-02-27  James Livingston  <jrl@ids.org.au>
4304         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
4306         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
4307         and Last Played metadata off iPods. Closes bug 324648.
4309 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4311         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
4312         Disable audioscrobbler when run with the --no-registration flag, since
4313         last.fm doesn't allow multiple concurrent clients per user.
4315 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4317         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
4318         Rename renamable sources when F2 is pressed when the sourcelist has
4319         focus.  Fixes #330700.
4321 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4323         * shell/rb-playlist-manager.c: (cleanup_edit_data),
4324         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
4325         (rb_playlist_manager_cmd_edit_automatic_playlist):
4326         Fix various crashes when deleting auto playlists previously edited
4327         by disconnecting signal handlers when the query editor is closed or
4328         the playlist is deleted.
4330 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4332         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
4333         removed load failure dialog, and actually use the friendly file type
4334         name in error messages.
4336 2006-02-24  James Livingston  <jrl@ids.org.au>
4338         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
4340         * sources/rb-library-source.c:
4341         (rb_library_source_location_button_clicked_cb),
4342         (rb_library_source_preferences_sync),
4343         (rb_library_source_library_location_cb): convert the library URI to
4344         for display, and back again. Fixes bug 332356.
4346 2006-02-23  James Livingston  <jrl@ids.org.au>
4348         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
4349         (rhythmdb_process_metadata_load), (monitor_subdirectory),
4350         (rhythmdb_sync_library_location): don't monitor files at all if
4351         watching is turned off. From bug 323096.
4353 2006-02-23  James Livingston  <jrl@ids.org.au>
4355         * data/rhythmbox.schemas:
4356         * lib/rb-preferences.h:
4357         * shell/rb-shell.c: (rb_shell_constructor),
4358         (rb_shell_set_visibility): remember main window visibility between
4359         sessions. Fixes bug 127320.
4361 2006-02-23  James Livingston  <jrl@ids.org.au>
4363         * data/glade/library-prefs.glade:
4364         * sources/rb-library-source.c: (impl_get_config_widget),
4365         (rb_library_source_location_button_clicked_cb),
4366         (rb_library_source_preferences_sync),
4367         (rb_library_source_library_location_cb),
4368         (rb_library_source_watch_toggled_cb): change the library-location
4369         widgets from the file-chooser drop menu to a text entry and Browse
4370         button. This is needed to prevent the location from chaning if the
4371         directory cannot be found. Fixes bug 328414.
4373 2006-02-23  James Livingston  <jrl@ids.org.au>
4375         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
4376         item. Fixes bug 329042.
4378 2006-02-23  James Livingston  <jrl@ids.org.au>
4380         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
4382         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
4383         comma in some podcast feeds. Fixes bug 332194.
4385 2006-02-23  James Livingston  <jrl@ids.org.au>
4387         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
4388         lower priority.
4390         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
4391         the internal audio cd URIs from "cdda://device:track" to
4392         "cdda://track#device" as it makes processing much easier.
4394         * shell/rb-shell-player.c: (rb_shell_player_open_location):
4395         * player/rb-player-gst.c: don't have the shell close the player
4396         between songs, as doing that should be backend-specific. Make the
4397         gstreamer backend close before starting a new track, unless the old
4398         and new ones are both tracks on the same audio cd. Just seek in that
4399         case.
4401 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4403         * doc/reference/rhythmbox.types: Fix doc build a bit more.
4405 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4407         * configure.ac: Enable more warnings in my stupid setup too.
4408         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
4409         #332210.
4411 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4413         * sources/rb-missing-files-source.h,
4414         * sources/rb-missing-files-source.c,
4415         * sources/rb-import-errors-source.h,
4416         * sources/rb-import-errors-source.c:
4417         Add library meta-sources, showing missing files and import errors.
4418         Fixes #167763, #142322.
4420         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
4421         * sources/rb-sourcelist-model.h:
4422         * sources/rb-sourcelist.c: (rb_sourcelist_append),
4423         (match_source_to_iter), (rb_sourcelist_source_to_iter),
4424         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
4425         (visibility_notify_cb):
4426         Store source visibility in the sourcelist model, so we can determine
4427         child source counts correctly and get the sourcelist expander column
4428         right.
4429         
4430         * widgets/rb-entry-view.h:
4431         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
4432         (rb_entry_view_append_column), (set_column_visibility):
4433         Allow the creator of the entry view to specify which columns are
4434         always visible.
4436         * sources/rb-source.h:
4437         * sources/rb-source.c: (_autohide_update_visibility),
4438         (_rb_autohide_source_row_deleted_cb),
4439         (_rb_autohide_source_row_inserted_cb),
4440         (_rb_source_hide_when_empty):
4441         Allow sources to automatically hide themselves when empty.
4442         
4443         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
4444         * sources/rb-library-source.c: (rb_library_source_constructor):
4445         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4446         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
4447         Explicitly specify which columns are always visible.
4448         
4449         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4450         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
4451         Remove load error signal handling and load failure dialog.
4452         Create missing files and import errors sources for the library.
4454         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
4455         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
4456         Create DB entries for import errors rather than emitting the 'load
4457         error' signal; mark loaded entries visible.
4458         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
4459         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
4460         (rhythmdb_prop_get_type): Store string form of last seen time for
4461         hidden entries, since it's used in the missing files source.
4462         (rhythmdb_entry_import_error_get_type): 
4463         Add entry type for import errors.
4464         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
4465         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
4466         (rhythmdb_entry_move_to_trash_set_error),
4467         (rhythmdb_entry_move_to_trash):  
4468         Correct spelling, add missing rhythmdb_commit.
4469         * rhythmdb/rhythmdb.h:  
4470         Add import error entry type and last seen string property.
4471         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
4472         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4473         (save_entry):  Ignore string form of 'last seen' property.
4475         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
4476         Don't try to play hidden entries or import error entries.
4478         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
4479         * sources/Makefile.am: Add meta-source files
4480         * widgets/Makefile.am: Remove load failure dialog files
4482 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4484         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
4485         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
4486         few bits and pieces.
4488 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4490         * metadata/test-metadata.c: (load_metadata_cb):
4491         Fix compile warning for ignoring return value from getcwd, #332064.
4493 2006-02-21  James Livingston  <jrl@ids.org.au>
4495         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
4496         (edit_auto_playlist_deleted_cb),
4497         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
4498         playlist editor non-modal. Fixes bug 320030.
4500 2006-02-21  James Livingston  <jrl@ids.org.au>
4502         * shell/rb-shell.c: (rb_shell_constructor):
4503         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
4504         (rb_header_set_show_artist_album):
4505         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
4506         (rb_song_display_box_sync): make the queue sidebar and song display
4507         not get affected by gtk_widget_show_all. Fixes bug 332001.
4509 2006-02-21  James Livingston  <jrl@ids.org.au>
4511         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4513         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
4514         feeds which use timezone names instead of offsets. Doesn't actually
4515         parse the timezone name since they are not standardised. Fixes bug
4516         331691.
4518 2006-02-21  James Livingston  <jrl@ids.org.au>
4520         * help/C/figures/rb-notification-area.png:
4521         * help/C/figures/rb-sidebar.png:
4522         * help/C/quick-reference.xml: remove obsolete files from CVS.
4524         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
4525         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
4526         (rhythmdb_query_free), (rhythmdb_query_serialize),
4527         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
4528         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
4530         * widgets/rb-query-creator-properties.c: add prefix and suffix
4531         (escapedStringCriteriaGetWidgetData): use better escaping, so it
4532         doesn't escape the ':' separator in uris.
4534 2006-02-21  James Livingston  <jrl@ids.org.au>
4536         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
4537         on startup.
4539 2006-02-21  James Livingston  <jrl@ids.org.au>
4541         * NEWS: update with recent changes
4543 2006-02-21  James Livingston  <jrl@ids.org.au>
4545         * shell/rb-shell.c: (rb_shell_constructor),
4546         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
4547         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
4548         (rb_druid_browse_clicked_cb), (do_response):
4549         * widgets/rb-druid.h: Make running the druid not block RBShell
4550         starting up. This is required so that bonobo registration doesn't time
4551         out. Fixed bug 318766.
4553 2006-02-21  James Livingston  <jrl@ids.org.au>
4555         * rhythmdb/rhythmdb-property-model.c:
4556         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
4557         hash table after using it, not before. Fixed bug 331922.
4559 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4561         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
4562         (rb_shell_view_queue_as_sidebar_changed_cb):
4563         When playing from the queue, only attempt to highlight the queue
4564         source in the source list if it's actually visible there.  Otherwise,
4565         leave the preempted source highlighted.  Mostly fixes #330819.
4567 2006-02-20  James Livingston  <jrl@ids.org.au>
4569         * rhythmdb/rhythmdb-property-model.c:
4570         (rhythmdb_property_model_row_inserted_cb),
4571         (rhythmdb_property_model_prop_changed_cb),
4572         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
4573         store the roperty value in the entry-mapping table, so that receiving
4574         the remove signal from a query model before we get notified of a
4575         change doesn't cause a crash. Fixes bug 331770.
4577 2006-02-20  James Livingston  <jrl@ids.org.au>
4579         * data/ui/rhythmbox-ui.xml:
4580         * sources/rb-play-queue-source.c:
4581         (rb_play_queue_source_class_init),
4582         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
4583         playlist things in the queue popup source. From 330490.
4585         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
4586         previous commit
4588 2006-02-20  James Livingston  <jrl@ids.org.au>
4590         * widgets/rb-song-info.c: (rb_song_info_response_cb),
4591         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
4592         attempt to sync data for non-editable entries when using
4593         next/previous. Don't write our Year if it wasn't changed. Fixes bug
4594         331762.
4596 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
4598         * .cvsignore:
4599         * Makefile.am:
4600         * autogen.sh:
4601         * configure.ac:
4602         * help/.cvsignore:
4603         * help/Makefile.am: ported to gnome-doc-utils
4604         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
4605         * help/ChangeLog: added, for translators
4606         * help/C/rhytmbox-C.omf: removed, no longer used
4607         Know issue: figures are installed, but some are not showed; manual
4608         description added, but not showed in Yelp while browsing. I'll
4609         investigate, maybe are needed some little changes to
4610         help/C/rhythmbox.xml.
4612 2006-02-20  James Livingston  <jrl@ids.org.au>
4614         * data/ui/rhythmbox-ui.xml:
4615         * help/C/figures/rb-adv.png:
4616         * help/C/figures/rb-asst-finish.png:
4617         * help/C/figures/rb-asst-library.png:
4618         * help/C/figures/rb-asst-start.png:
4619         * help/C/figures/rb-basic.png:
4620         * help/C/figures/rb-browser.png:
4621         * help/C/figures/rb-context-menu.png:
4622         * help/C/figures/rb-empty.png:
4623         * help/C/figures/rb-full-play.png:
4624         * help/C/figures/rb-group-auto.png:
4625         * help/C/figures/rb-group-create.png:
4626         * help/C/figures/rb-group.png:
4627         * help/C/figures/rb-imported.png:
4628         * help/C/figures/rb-iradio-add.png:
4629         * help/C/figures/rb-iradio.png:
4630         * help/C/figures/rb-nextprev.png:
4631         * help/C/figures/rb-nobrowse-play.png:
4632         * help/C/figures/rb-notification-area-menu.png:
4633         * help/C/figures/rb-player.png:
4634         * help/C/figures/rb-prefs-general.png:
4635         * help/C/figures/rb-prefs-ipod.png:
4636         * help/C/figures/rb-prefs-library.png:
4637         * help/C/figures/rb-prefs.png:
4638         * help/C/figures/rb-repeat.png:
4639         * help/C/figures/rb-search.png:
4640         * help/C/figures/rb-shuffle.png:
4641         * help/C/figures/rb-stats.png:
4642         * help/C/figures/rb-toolbar-editor.png:
4643         * help/C/figures/rb-volume-mute.png:
4644         * help/C/figures/rhythmbox-group.png:
4645         * help/C/figures/rhythmbox-tray-icon.png:
4646         * help/C/user-guide.xml: remove old stuff from cvs
4648 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4650         * metadata/rb-metadata-dbus-client.c: 
4651         * metadata/rb-metadata-dbus-service.c:
4652         * metadata/rb-metadata-dbus.c:
4653         * metadata/rb-metadata-dbus.h:
4654         New files, adding an external service for reading and writing
4655         metadata, and an implementation of the RBMetaData interface that uses
4656         dbus to communicate with it.
4657         
4658         * metadata/rb-metadata.h,
4659         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
4660         (rb_metadata_get_field_name): Put metadata details in a static array
4661         instead of using a hash table, and add a field for language code (not
4662         used for anything)
4663         * metadata/rb-metadata-gst.c: Updates for changes in
4664         rb-metadata-common.c, fix signal handler closure leak for the typefind
4665         element's have-type signal, and add XML to the list of types we ignore.
4666         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
4667         Update for changes to rb_metadata_get_field_type
4668         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
4669         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
4670         here and there.
4671         
4672         * configure.ac: Add --enable-metadata-helper option (not enabled by
4673         default) to use the external metadata service
4674         * metadata/Makefile.am: Add new files
4675         * metadata/test-metadata.c:  Test program for the metadata service
4677         Fixes #329597. 
4679 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4681         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
4682         * sources/rb-podcast-source.c: (impl_get_ui_actions),
4683         (rb_podcast_source_cmd_new_podcast):
4684         Move 'new podcast' action to the podcast source, and add it to the
4685         toolbar.  Fixes #331562.
4687 2006-02-19  James Livingston  <jrl@ids.org.au>
4689         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
4690         menus, and away from move-to-trash. Fixes bug 331013.
4692 2006-02-19  James Livingston  <jrl@ids.org.au>
4694         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
4695         when deleting last entry. Fixes bug 331712.
4697 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4699         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
4700         (rb_entry_view_button_press_cb):
4701         * widgets/rb-entry-view.h: Emit show-popup when right clicked
4702         anywhere, and include a flag indicating whether the click was over an
4703         entry or not.
4704         
4705         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
4706         (rb_playlist_source_songs_show_popup_cb):
4707         * sources/rb-playlist-source.h:
4708         Add the 'over entry' flag to the class show popup method, and in the
4709         default handler, ignore right clicks when not over an entry.
4710         
4711         * sources/rb-iradio-source.c:
4712         (rb_iradio_source_songs_show_popup_cb):
4713         * sources/rb-library-source.c:
4714         (rb_library_source_songs_show_popup_cb):
4715         * sources/rb-podcast-source.c:
4716         (rb_podcast_source_songs_show_popup_cb):
4717         Show the source list popup menu when right clicked while not over an
4718         entry.
4720         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
4721         For the queue sidebar, always display the popup so the 'clear queue'
4722         action is available regardless of where you click.  For the queue
4723         source, only display the popup when right clicked over an entry.
4724         Fixes #331392.
4726 2006-02-19  James Livingston  <jrl@ids.org.au>
4728         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
4729         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
4730         entry view, when we're not even using it
4732         * rhythmdb/rhythmdb-property-model.c:
4733         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
4734         function, rather than a copy of the code.
4736         * shell/rb-playlist-manager.c:
4737         (rb_playlist_manager_playlist_row_inserted_cb),
4738         (rb_playlist_manager_set_source_internal),
4739         (rb_playlist_manager_playlist_entries_changed): use the query-model
4740         directly, rather than the source's entry view.
4742         * shell/rb-source-header.c: don't use the entry view, just select the
4743         source widget.
4745 2006-02-18  James Livingston  <jrl@ids.org.au>
4747         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
4749         * help/C/figures/rb-iradio-main.png:
4750         * help/C/figures/rb-notification-area-menu.png:
4751         * help/C/figures/rb-notification-window.png:
4752         * help/C/figures/rb-notification-zone.png:
4753         * help/C/figures/rb-podcast-main.png:
4754         * help/C/figures/rb-statusbar.png:
4755         * help/C/figures/rb-toolbar-prevplaynext.png:
4756         * help/C/figures/rb-toolbar-repeat.png:
4757         * help/C/figures/rb-toolbar-shuffle.png:
4758         * help/C/figures/rb-toolbar.png:
4759         * help/C/figures/rb-volume-changer.png:
4760         * help/C/figures/rb-window-small.png:
4761         * help/C/figures/rb-window.png:
4762         * help/C/rhythmbox.xml: Update user guide with some of the changes
4763         that have occurred after 0.8.8. From bug 314001.
4765 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4767         * rhythmdb/rhythmdb-query-results.h,
4768           rhythmdb/rhythmdb-query-results.c:
4769         New interface for objects that accept query results from RhythmDB.
4771         * rhythmdb/rhythmdb-query-model.c:
4772         (rhythmdb_query_model_query_results_init),
4773         (rhythmdb_query_model_set_query),
4774         (rhythmdb_query_model_add_results),
4775         (rhythmdb_query_model_query_complete):
4776         * rhythmdb/rhythmdb-query-model.h:
4777         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
4779         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
4780         (rhythmdb_tree_do_full_query):
4781         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
4782         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
4783         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
4784         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
4785         * rhythmdb/rhythmdb.h:
4786         Pass query results through the RhythmDBQueryResults interface, rather
4787         than directly to a RhythmDBQueryModel.
4789         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
4790         (rb_podcast_manager_db_entry_deleted_cb):
4791         * sources/rb-auto-playlist-source.c:
4792         (rb_auto_playlist_source_do_query),
4793         (rb_auto_playlist_source_set_query):
4794         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
4795         * sources/rb-library-source.c: (rb_library_source_constructor),
4796         (rb_library_source_do_query):
4797         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
4798         (rb_podcast_source_do_query):
4799         * rhythmdb/rhythmdb-property-model.c:
4800         (rhythmdb_property_model_drag_data_get):
4801         Cast the query model to RhythmDBQueryResults when passing to one of
4802         the RhythmDB query methods.
4804         * rhythmdb/Makefile.am: Add new files.
4806 2006-02-18  James Livingston  <jrl@ids.org.au>
4808         * data/ui/rhythmbox-ui.xml:
4809         * shell/rb-playlist-manager.c:
4810         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
4811         "queue playlist" item to source context menu. Fixes bug 330490.
4813 2006-02-18  James Livingston  <jrl@ids.org.au>
4815         * data/glade/general-prefs.glade:
4816         * shell/rb-shell-preferences.c:
4817         (rb_shell_preferences_column_check_changed_cb),
4818         (rb_shell_preferences_sync):
4819         * sources/rb-library-source.c: (rb_library_source_constructor):
4820         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4821         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
4822         (rb_entry_view_append_column): Add a "quality" colume which indicates
4823         the bitrate of media. Part of bug 167659.
4825 2006-02-18  James Livingston  <jrl@ids.org.au>
4827         * shell/rb-play-order.c: (do_next_idle_cb),
4828         (default_playing_entry_removed): move to next track when playing entry
4829         is deleted. Fixes bug 131150.
4831         * shell/rb-shell-player.h: remove ancient stuff
4833 2006-02-17  William Jon McCann  <mccann@jhu.edu>
4835         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
4836         (rb_shell_clipboard_set_property): 
4837         * shell/rb-shell.c (rb_shell_sync_party_mode):
4838         Trigger a resync of the clipboard properties when changing party mode.
4840 2006-02-17  William Jon McCann  <mccann@jhu.edu>
4842         * sources/rb-static-playlist-source.c: Fix includes.
4844         * sources/rb-source.c (rb_source_can_rename) 
4845         (rb_source_can_delete, rb_source_can_move_to_trash):
4846         Return FALSE if in party mode.
4848         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
4849         Replace fullscreen with party mode.
4850         (rb_shell_window_delete_cb): Don't quit if in party mode.
4851         (rb_shell_view_party_mode_changed_cb): Setup party mode.
4852         (window_state_event_cb): Try to deiconify shell when iconified
4853         in party mode.
4854         (rb_shell_sync_party_mode): Sync party mode properties.
4855         Currently, that means [de]sensitizing close, quit, and small-display,
4856         going into fullscreen mode with window stuck and kept above, and
4857         toggling queue-only for the shell player.
4858         (rb_shell_sync_smalldisplay): Sensitive party mode.
4859         (rb_shell_get_party_mode): Get party mode setting.
4861         * shell/rb-shell-player.c (rb_shell_player_class_init) 
4862         (rb_shell_player_set_property, rb_shell_player_get_property):
4863         Add queue-only property.
4864         (rb_shell_player_entry_activated_cb): If in party mode
4865         only queue the entry on activation.
4867         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
4868         Break out from set_properties.  Desensitize some actions when
4869         in party mode.
4870         (rb_playlist_manager_set_property): Break out set_source_internal.
4872         * data/rhythmbox.schemas: Remove fullscreen mode.
4874         * data/ui/rhythmbox-ui.xml: Replace fullscreen
4875         action with party mode.
4877         Partial fix for #323933
4879 2006-02-17  James Livingston  <jrl@ids.org.au>
4881         * configure.ac:
4882         * shell/rb-removable-media-manager.c:
4883         (get_nautilus_burn_drive_for_path),
4884         (rb_removable_media_manager_playing_uri_changed_cb): only use
4885         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
4886         over the list when it doesn't.
4888 2006-02-17  James Livingston  <jrl@ids.org.au>
4890         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
4891         (rb_iradio_source_first_time_changed): Only do the import on the
4892         first change from FALSE to TRUE.
4894         * sources/rb-library-source.c:
4895         (rb_library_source_preferences_sync),
4896         (rb_library_source_library_location_cb): set the first-run done flag
4897         if the user presses close and then sets their watches library
4898         location. Fixes bug 325997.
4900 2006-02-17  James Livingston  <jrl@ids.org.au>
4902         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
4903         removable media manager gobject properties
4905         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
4906         (split_drive_from_cdda_uri),
4907         (rb_removable_media_manager_playing_uri_changed_cb),
4908         (rb_removable_media_manager_load_media): stop polling a cd drive
4909         when we are playing from it. Part of bug 330716.
4911 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4913         * rhythmdb/rhythmdb-query-model.c:
4914         (rhythmdb_query_model_set_property),
4915         (rhythmdb_query_model_finalize),
4916         (rhythmdb_query_model_base_entry_removed):
4917         Propagate entry removal from base models out to attached property
4918         models.  Fixes the rest of #331165.
4920 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4922         * rhythmdb/rhythmdb-property-model.c:
4923         (rhythmdb_property_model_row_inserted_cb),
4924         (rhythmdb_property_model_prop_changed_cb),
4925         (rhythmdb_property_model_insert):
4926         Don't store NULL as a hash table value if we want to use
4927         g_hash_table_lookup to check if a key exists, and get the checks for
4928         how and whether to handle entry changes the right way around.
4929         Fixes #331211 and half of #331165.
4931 2006-02-16  James Livingston  <jrl@ids.org.au>
4933         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
4934         the audio cd's TOC in a separate thread, so it doesn't block the UI.
4935         Fixes bug 329942.
4937 2006-02-16  James Livingston  <jrl@ids.org.au>
4939         * widgets/rb-library-browser.c: (reset_view_cb): make View All
4940         actually reset the browsers.
4942 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4944         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
4945         Escape the strings we pass into libnotify so we don't get blank
4946         notifications when the song name contains '&' etc.  Fixes #330784.
4948 2006-02-16  James Livingston  <jrl@ids.org.au>
4950         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
4951         enable "View All" when there is only a search box and no browser.
4952         Fixes bug 331395.
4954 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4956         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
4957         popup menu, which I forgot to commit with the patch for bug #330014.
4959 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4961         * shell/rb-shell-player.c: (open_location_thread):
4962         Sync button and entry view state once we've started the player, so the
4963         entry view gets into the playing state for iradio.
4965 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4967         * shell/rb-shell-player.c: (open_location_thread):
4968         Take GDK lock before doing anything UI-related.
4970 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4972         * shell/rb-shell.c: Move 'new iradio station' action to
4973         iradio source.
4975         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
4976         (rb_iradio_source_init), (rb_iradio_source_finalize),
4977         (rb_iradio_source_constructor):
4978         Remove some unused stuff.
4980         (guess_uri_scheme), (rb_iradio_source_add_station),
4981         (rb_iradio_source_add_from_playlist),
4982         (impl_get_ui_actions), (new_station_location_added),
4983         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
4984         action, include it in the toolbar, and make sure the URI we add has a
4985         scheme.  Fixes #327059, more or less.
4987 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4989         * sources/rb-play-queue-source.c:
4990         (rb_play_queue_source_class_init),
4991         (rb_play_queue_source_constructor),
4992         (rb_play_queue_source_update_count),
4993         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
4994         Add a toolbar button to clear the play queue, and make it sensitive
4995         only when there are entries in the queue.  Fixes #330014.
4997         * sources/rb-source.c: (_rb_source_register_action_group):
4998         * sources/rb-source.h:  Add helper function to register an
4999         action group for a source.
5001         * sources/rb-library-source.c: (rb_library_source_constructor):
5002         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5003         (register_action_group):  Use _rb_source_register_action_group.
5005 2006-02-15  James Livingston  <jrl@ids.org.au>
5007         * widgets/rb-song-info.c: (rb_song_info_add_completion),
5008         (rb_song_info_constructor), (rb_song_info_set_property): make
5009         tag-editing completion work for albums too.
5011 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5013         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5014         Check the 'limit' checkbox for time-limited playlists.
5016 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
5018         * widgets/rb-song-info.c: Prove text-completion when editing title,
5019         artist or album
5021 2006-02-14  James Livingston  <jrl@ids.org.au>
5023         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
5024         tray icon popup menu. Fixes bug 331026.
5026 2006-02-14  James Livingston  <jrl@ids.org.au>
5028         * data/iradio-initial.pls: update the Virgin Radio stations to use the
5029         Ogg Vorbis streams, instead of the MP3 ones.
5031 2006-02-14  James Livingston  <jrl@ids.org.au>
5033         * rhythmdb/rhythmdb-property-model.c:
5034         (rhythmdb_property_model_class_init),
5035         (rhythmdb_property_model_drag_data_get):
5036         * rhythmdb/rhythmdb-query-model.c:
5037         (rhythmdb_query_model_title_sort_func):
5038         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
5039         LOCATION as the key. Fixes bug 330601.
5041 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5043         * sources/rb-playlist-source.c: (playlist_iter_func):
5044         Make it compile with older versions of totem-plparser too.      
5046 2006-02-13  James Livingston  <jrl@ids.org.au>
5048         * rhythmdb/rhythmdb.h:
5049         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
5050         structure private, since things should use the accessor functions
5051         rather than manipulating it directly - Only RhythmDB and the
5052         implementation classes should access it directly. Part of the RhythmDB
5053         cleanup of bug 330226.
5055         * iradio/rb-station-properties-dialog.c:
5056         (rb_station_properties_dialog_update_title),
5057         (rb_station_properties_dialog_update_title_entry),
5058         (rb_station_properties_dialog_update_genre),
5059         (rb_station_properties_dialog_update_location),
5060         (rb_station_properties_dialog_update_play_count),
5061         (rb_station_properties_dialog_update_bitrate),
5062         (rb_station_properties_dialog_update_last_played),
5063         (rb_station_properties_dialog_update_rating),
5064         (rb_station_properties_dialog_update_playback_error),
5065         (rb_station_properties_dialog_sync_entries):
5066         * podcast/rb-feed-podcast-properties-dialog.c:
5067         (rb_feed_podcast_properties_dialog_update_title),
5068         (rb_feed_podcast_properties_dialog_update_title_label),
5069         (rb_feed_podcast_properties_dialog_update_author),
5070         (rb_feed_podcast_properties_dialog_update_location),
5071         (rb_feed_podcast_properties_dialog_update_copyright),
5072         (rb_feed_podcast_properties_dialog_update_language),
5073         (rb_feed_podcast_properties_dialog_update_summary):
5074         * podcast/rb-podcast-manager.c:
5075         (rb_podcast_manager_entry_downloaded),
5076         (rb_podcast_manager_db_entry_added_cb),
5077         (download_progress_update_cb),
5078         (rb_podcast_manager_db_entry_deleted_cb):
5079         * podcast/rb-podcast-properties-dialog.c:
5080         (rb_podcast_properties_dialog_update_title),
5081         (rb_podcast_properties_dialog_update_title_label),
5082         (rb_podcast_properties_dialog_update_feed),
5083         (rb_podcast_properties_dialog_update_location),
5084         (rb_podcast_properties_dialog_update_play_count),
5085         (rb_podcast_properties_dialog_update_bitrate),
5086         (rb_podcast_properties_dialog_update_last_played),
5087         (rb_podcast_properties_dialog_update_rating),
5088         (rb_podcast_properties_dialog_update_date),
5089         (rb_podcast_properties_dialog_update_description):
5090         * rhythmdb/rhythmdb-query-model.c:
5091         (rhythmdb_query_model_entry_changed_cb),
5092         (rhythmdb_query_model_remove_from_main_list),
5093         (rhythmdb_query_model_update_limited_entries),
5094         (rhythmdb_query_model_drag_data_get),
5095         (rhythmdb_query_model_album_sort_func):
5096         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5097         (save_entry):
5098         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
5099         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
5100         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
5101         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
5102         (rhythmdb_entry_get_double):
5103         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5104         * shell/rb-play-order-random-by-age-and-rating.c:
5105         (rb_random_by_age_and_rating_get_entry_weight):
5106         * shell/rb-play-order-random-by-age.c:
5107         (rb_random_by_age_get_entry_weight):
5108         * shell/rb-play-order-random-by-rating.c:
5109         (rb_random_by_rating_get_entry_weight):
5110         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
5111         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
5112         (rb_shell_player_set_playing_entry),
5113         (rb_shell_player_sync_replaygain),
5114         (rb_shell_player_sync_with_source),
5115         (rb_shell_player_get_playing_song_duration), (info_available_cb):
5116         * sources/rb-playlist-source.c: (playlist_iter_func),
5117         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
5118         (rb_playlist_source_entry_added_cb):
5119         * sources/rb-podcast-source.c:
5120         (rb_podcast_source_post_status_cell_data_func):
5121         * sources/rb-source.c: (rb_source_update_play_statistics):
5122         * sources/rb-sourcelist-model.c:
5123         (rb_sourcelist_model_drag_data_get):
5124         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
5125         (rb_static_playlist_source_add_entry),
5126         (rb_static_playlist_source_remove_entry):
5127         * widgets/rb-entry-view.c: (type_ahead_search_func),
5128         (rb_entry_view_playing_cell_data_func),
5129         (rb_entry_view_rating_cell_data_func),
5130         (rb_entry_view_pixbuf_clicked_cb):
5131         * widgets/rb-header.c: (rb_header_get_duration):
5132         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
5133         (rb_song_info_populate_dialog),
5134         (rb_song_info_update_playback_error),
5135         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
5136         (rb_song_info_update_location), (rb_song_info_update_play_count),
5137         (rb_song_info_update_last_played), (rb_song_info_update_rating),
5138         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
5139         (rb_song_info_sync_entry_single): fix the huge number of times that
5140         the internals got accessed directly.
5142 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5144         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
5145         trash' are grouped together.
5146         * shell/main.c: (main): Pass no-registration flag in to RBShell
5147         constructor, rather than mysteriously always passing TRUE.
5148         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
5149         Set dirty flag when entries are removed from the model, so the play
5150         queue is marked dirty appropriately.
5151         * AUTHORS: update my email address
5153 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5155         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5157         * widgets/rb-druid.c: (path_dialog_response_cb):
5158         If the URI is local, don't display the 'file://' prefix.  
5159         Fixes #330919.
5161 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5163         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5164         Attach the notification to the tray icon widget, so libnotify
5165         positions it less badly.  Fixes #330876.
5167 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5169         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
5170         Reverse the selection list before returning it, so we get it in the
5171         right order.  Fixes #330283 and some other weirdness.
5173 2006-02-11  James Livingston  <jrl@ids.org.au>
5175         * shell/rb-shell.c: (rb_shell_constructor),
5176         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
5177         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
5178         make small-mode and fullscreen mutually exclusive, since they don't
5179         work together
5181         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
5182         Mode.
5184 2006-02-10  James Livingston  <jrl@ids.org.au>
5186         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
5187         since it can cause it to be slower than real-time. Should fix bug
5188         322270.
5190 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5192         * rhythmdb/rhythmdb-query-model.c:
5193         (rhythmdb_query_model_set_property):
5194         Think just a little bit harder about that last commit.
5196 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5198         * rhythmdb/rhythmdb-query-model.c:
5199         (rhythmdb_query_model_set_property):
5200         Get the check for hidden entries the right way around.
5201         Fixes #330527, #330514.
5203         (rhythmdb_query_model_set_sort_order):
5204         Ignore no-op sort order changes, so we don't get critical
5205         messages when selecting 'all' in auto playlist browsers.
5207 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5209         Patch by: Christophe Fergeau  <teuf@gnome.org>
5211         * sources/rb-removable-media-source.c:
5212         (rb_removable_media_source_init),
5213         (rb_removable_media_source_constructor):
5214         Move icon setup code to the constructor, as the volume property
5215         haven't been set yet when _init is called.
5217 2006-02-09  William Jon McCann  <mccann@jhu.edu>
5219         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
5220         Make the source pixbuf a dynamic property.
5222         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
5223         (rb_source_set_pixbuf, rb_source_set_property) 
5224         (rb_source_get_property): Add icon property.
5226         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
5227         (rb_auto_playlist_source_init):
5228         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
5229         (rb_static_playlist_source_init):
5230         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
5231         (rb_removable_media_source_init): 
5232         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
5233         (rb_podcast_source_init): 
5234         * sources/rb-library-source.c (rb_library_source_class_init) 
5235         (rb_library_source_set_property, rb_library_source_get_property): 
5236         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
5237         (rb_iradio_source_init): Remove impl_get_pixbuf and
5238         set icon property on source base class.
5240         * sources/rb-daap-source.c (rb_daap_get_icon): Get
5241         a different icon for when the share is password protected
5242         and locked.
5243         (rb_daap_source_new): Set icon property.
5244         (composite_icons): Composite an emblem on a pixbuf.
5245         (create_pixbufs): Load global pixbufs.
5246         (destroy_pixbufs): unref global pixbufs.
5247         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
5248         (connection_auth_cb, connection_connected_cb) 
5249         (connection_disconnected_cb): Update icon when connection
5250         status changes.
5251         (rb_daap_source_activate): Connect signals.
5253         * daapsharing/rb-daap-share.c (name_collision_cb): Run
5254         dialog with parent.
5256         * daapsharing/rb-daap-marshal.list: Add new signal.
5258         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
5259         (rb_daap_collision_dialog_new_run): Set parent of dialog.
5261         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
5262         Add authenticate, connected, and disconnected signals.
5263         (connection_get_password): emit authenticate signal instead
5264         of running dialog directly.
5265         (connection_connected, connection_disconnected): Emit signals.
5266         (handle_login): Emit connected signal.
5267         (handle_logout): Emit disconnected signal.
5268         (rb_daap_connection_do_something): Fix leak.
5270         Fixes #330291
5272 2006-02-09  James Livingston  <jrl@ids.org.au>
5274         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
5275         entries from the base model if we don't have show-hidden set. Fixes
5276         bug 330514.
5278 2006-02-08  William Jon McCann  <mccann@jhu.edu>
5280         * daapsharing/rb-daap-share.c (message_get_session_id):
5281         Ugh. Use strtoul instead of atoi.
5282         (session_id_validate): Add debug statements.
5284 2006-02-08  William Jon McCann  <mccann@jhu.edu>
5286         * daapsharing/rb-daap-connection.c (http_response_handler):
5287         Report the actual uri from the message in debug statements.
5289 2006-02-08  William Jon McCann  <mccann@jhu.edu>
5291         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
5292         Add context argument.
5293         (message_get_session_id): New function to parse session id from
5294         the message.
5295         (message_get_revision_number): Break out function to parse
5296         revision number from the message.
5297         (session_id_validate): New function to validate given session id
5298         is valid for given context (ie. client address).
5299         (session_id_generate): Generate a random session id.
5300         (session_id_create): Create a unique session id and store it.
5301         (session_id_remove): Remove a session id from the store.
5302         (login_cb): Create a session id instead of using a constant one.
5303         (logout_cb): Validate session id.
5304         (update_cb): Use new message_get_revision_number function.
5305         (databases_cb): Validate session id.
5306         (server_cb): Add server context to argument list for callbacks.  It
5307         is needed to look up the remote host.
5308         (db_entry_changed_cb): Use braces.
5309         (soup_auth_callback): Remove FIXME.
5310         (rb_daap_share_server_start): Create session id store.
5311         (rb_daap_share_server_stop): Destroy session id store.
5313         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
5314         Don't base64-encode password here since it needs to be
5315         combined with the username first.
5317         * daapsharing/rb-daap-connection.c (build_message):
5318         Add username to Authorization token.
5319         (handle_login, handle_song_listing) 
5320         (rb_daap_connection_do_something): Session id
5321         must be an unsigned int.
5323         Fixes #329814
5325 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5327         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
5328         Don't check if we've got a playing entry, ask the player object (duh).
5329         Might actually fix #329993.     
5331 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5333         * sources/rb-static-playlist-source.c:
5334         (rb_static_playlist_source_add_list_uri):
5335         Canonicalise URIs before trying to add them to the playlist, and 
5336         don't try to add files to the database for which there is 
5337         already an entry.
5339 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5341         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
5342         Don't ask the entry view if we're playing, just check if we've got a
5343         playing entry.  Fixes #329993.
5345 2006-02-08  James Livingston  <jrl@ids.org.au>
5347         * rhythmdb/rhythmdb-query-model.c:
5348         (rhythmdb_query_model_set_property),
5349         (rhythmdb_query_model_finalize),
5350         (rhythmdb_query_model_base_complete): remove
5351         rhythmdb_query_model_base_entry_prop_changed, so that two signals
5352         don't get emitted for entry changes. Fixes bug 330301.
5354         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
5355         (rb_library_browser_init), (rb_library_browser_constructor),
5356         (rb_library_browser_new): do stuff in the constructor, not the init
5357         function, so that the db property gets set on RBPropertyViews
5358         correctly. Fixes a crash when dragging properties to a playlist.
5360 2006-02-07  William Jon McCann  <mccann@jhu.edu>
5362         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
5363         Actually stop soup server.  Fixes #329816.
5365 2006-02-07  James Livingston  <jrl@ids.org.au>
5367         * lib/rb-util.h:
5368         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
5369         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
5370         (collate_values_cb), (rb_collate_hash_table_keys),
5371         (rb_collate_hash_table_values): add functions to compare, copy and
5372         free string-lists. add functions to collate the keys or values of a
5373         hash table into a list.
5375         * rhythmdb/rhythmdb-property-model.c:
5376         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
5377         (_remove_entry_cb), (_add_entry_cb),
5378         (rhythmdb_property_model_set_property),
5379         (rhythmdb_property_model_get_property),
5380         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
5381         (rhythmdb_property_model_row_inserted_cb),
5382         (rhythmdb_property_model_prop_changed_cb),
5383         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
5384         that are hidden, storing those that we have counted in a hash-table.
5386         * shell/Makefile.am: fix build order issue
5388         * shell/rb-shell-player.c: (rb_shell_player_set_property):
5389         * sources/rb-source.h:
5390         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
5391         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
5392         * sources/rb-podcast-source.c: (feed_select_change_cb): add
5393         browser-toggled method, rename _get_exta_views to _get_property_views,
5394         since several things depend on returning only that.
5396         * sources/rb-source.c: (rb_source_class_init),
5397         (rb_source_browser_toggled), (default_get_property_views),
5398         (rb_source_get_property_views), (rb_source_row_deleted_cb),
5399         (rb_source_gather_hash_keys),
5400         (rb_source_gather_selected_properties): above changes, and move some
5401         utility functions up from RBLibraryView
5403         * widgets/rb-property-view.c:
5404         (rb_property_view_selection_changed_cb): fix leak.
5406         * rhythmdb/rhythmdb-query-model.c:
5407         (rhythmdb_query_model_set_property),
5408         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
5409         (rhythmdb_query_model_set_sort_order),
5410         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
5411         query model being resorted.
5413         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
5414         NULL query.
5416         * rhythmdb/rhythmdb.h:
5417         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
5418         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
5419         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
5420         two queries. Add a function to append "property={X,Y,Z,...}" to a
5421         query.
5423         * sources/rb-library-source.c: (rb_library_source_class_init),
5424         (rb_library_source_finalize), (rb_library_source_constructor),
5425         (rb_library_source_cmd_choose_genre),
5426         (rb_library_source_cmd_choose_artist),
5427         (rb_library_source_cmd_choose_album), (impl_search),
5428         (impl_get_property_views), (impl_reset_filters),
5429         (rb_library_source_preferences_sync),
5430         (rb_library_source_browser_views_activated_cb),
5431         (rb_library_source_state_prefs_sync),
5432         (construct_query_from_selection), (rb_library_source_do_query),
5433         (rb_library_source_browser_changed_cb):
5434         * widgets/Makefile.am:
5435         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
5436         browser" widgets, which contains several property views, based on the
5437         code from RBLibrarySource. Make RBLibrarySource use it.
5439         * sources/rb-auto-playlist-source.c:
5440         (rb_auto_playlist_source_class_init),
5441         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
5442         (rb_auto_playlist_source_constructor), (impl_reset_filters),
5443         (impl_get_property_views), (impl_browser_toggled),
5444         (construct_query_from_selection),
5445         (rb_auto_playlist_source_do_query),
5446         (rb_auto_playlist_source_set_query),
5447         (rb_auto_playlist_source_browser_changed_cb): Use the new
5448         library-browser widget to add browsers to automatic playlists.
5450 2006-02-07  James Livingston  <jrl@ids.org.au>
5452         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
5453         properly.
5454         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
5455         type of the source is taken into account. Fixes bug 329621.
5457 2006-02-07  James Livingston  <jrl@ids.org.au>
5459         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5460         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
5461         1.1, and perform URI canonicalistion when first upgrading. This should
5462         fix our remaining canonicalisation issues, such as bug 329988.
5464 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
5466         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
5467         Track the playing entry when the entry view isn't in the playing
5468         state, so we don't have to get the state changes exactly right.
5469         Fixes #330135.
5471 2006-02-06  James Livingston  <jrl@ids.org.au>
5473         * shell/rb-shell-player.c: (open_location_thread),
5474         (rb_shell_player_open_location): fix several iradio issues: having to
5475         press play after double-clicking on a station, not working correctly
5476         without a http:// prefix, and ignoring totem-plparser results other
5477         than success or error (e.g. IGNORE).
5479 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
5481         Addition of dbus methods for dealing with static playlists and the
5482         play queue.  Fixes #329958.
5484         * shell/Makefile.am:
5485         * shell/rb-playlist-manager.h:
5486         * shell/rb-playlist-manager.xml:
5487         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
5488         (rb_playlist_manager_get_playlists),
5489         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
5490         (rb_playlist_manager_create_static_playlist),
5491         (rb_playlist_manager_delete_playlist),
5492         (rb_playlist_manager_add_to_playlist),
5493         (rb_playlist_manager_remove_from_playlist),
5494         (rb_playlist_manager_export_playlist):
5495         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
5496         to create, delete, list, modify, export, and import  static playlists.
5497         
5498         * shell/main.c: (main): Register playlist manager object with dbus.
5500         * shell/rb-shell.h:
5501         * shell/rb-shell.xml:
5502         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
5503         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
5504         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
5505         object, and implement the addToQueue and removeFromQueue methods.
5506         
5507         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
5508         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
5509         formats.
5511 2006-02-05  James Livingston  <jrl@ids.org.au>
5513         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
5514         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
5515         (save_entry): allow storage of booleans in the on-disk db, and
5516         save/load the HIDDEN property.
5518         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
5519         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
5520         to the state it was when RB shutdown. This makes RB appear to start
5521         faster, as tracks can appear before the stat is done. Remote files
5522         still start hidden. From bug 325215.
5524 2006-02-05  James Livingston  <jrl@ids.org.au>
5526         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
5527         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
5528         really cares about the difference from "entry-added", and it isn't
5529         emitted by the tree backend anyway.
5531         * rhythmdb/rhythmdb-query-model.c:
5532         (rhythmdb_query_model_constructor):
5533         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
5534         remove the references to the entry-restored signal.
5536 2006-02-05  James Livingston  <jrl@ids.org.au>
5538         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
5539         issue.
5541 2006-02-05  James Livingston  <jrl@ids.org.au>
5543         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
5544         things are NULL before using g_object_unref. Fixes bug 327452.
5546         * player/rb-recorder-gst.c: (rb_recorder_construct):
5547         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
5548         rather than assertion.
5550         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
5551         emit a warning, rather than asserting if an unknown playlist type is
5552         encountered.
5554 2006-02-05  James Livingston  <jrl@ids.org.au>
5556         * widgets/Makefile.am:
5557         * widgets/rb-simple-view.c:
5558         * widgets/rb-simple-view.h: Move the two features that this class
5559         provides into RBPropertyView, and remove this class. Closes bug
5560         327500.
5562         * podcast/rb-feed-podcast-properties-dialog.c:
5563         * podcast/rb-feed-podcast-properties-dialog.h:
5564         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5565         (rb_podcast_source_feeds_show_popup_cb):
5566         * sources/rb-podcast-source.h:
5567         * widgets/rb-property-view.c: (rb_property_view_class_init),
5568         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
5569         (rb_property_view_append_column_custom),
5570         (rb_property_view_button_press_cb):
5571         * widgets/rb-property-view.h: Updated for the above change.
5573 2006-02-04  James Livingston  <jrl@ids.org.au>
5575         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
5576         too close to Move to Trash and people aren't likely to use it often.
5578 2006-02-04  James Livingston  <jrl@ids.org.au>
5580         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
5582 2006-02-04  James Livingston  <jrl@ids.org.au>
5584         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
5585         passed a path instead of a URI.
5587         * sources/rb-generic-player-source.c: (default_get_mount_path):
5588         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
5589         the path. This fixes bug 329723.
5591 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
5593         * daapsharing/rb-daap-structure.c:
5594         (rb_daap_content_code_string_as_int32):
5595         Use network byte order.
5597 2006-02-03  William Jon McCann  <mccann@jhu.edu>
5599         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
5600         Use a hash for source lookup.
5601         (mdns_service_added, mdns_service_removed): Handle
5602         service-added and service-removed signals from RBDaapMdnsBrowser.
5603         (remove_source): GDestroyNotify function for when sources
5604         are removed from the hash.
5605         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
5606         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
5607         (rb_daap_sources_shutdown): Update.
5608         (source_host_find): GHRFunc for finding a source by ip.
5609         (rb_daap_source_find_for_uri): Use the hash source lookup.
5611         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
5612         Namespace keys.
5613         (password_check_button_toggled_cb): Handle password enabled.
5614         (share_name_entry_focus_out_event_cb): Namespace keys.
5615         Handle changes more robustly.
5616         (share_password_entry_focus_out_event_cb): Handle password entry.
5617         (add_daap_preferences): Connect to password signals.
5619         * lib/rb-preferences.h: Add DAAP keys.
5621         * data/glade/daap-prefs.glade: Add password UI.
5623         * data/rhythmbox.schemas: Add password keys.
5625         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
5626         assert with warning.
5628         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
5629         gconf keys to lib/rb-preferences.h.  Namespace
5630         the gconf keys.
5631         (create_share): Add password support.
5632         (enable_sharing_changed_cb): Namespaced keys.
5633         (require_password_changed_cb): Handle key change.
5634         (share_name_changed_cb): Namespaced keys.
5635         (share_password_changed_cb): Handle key change.
5636         (rb_daap_sharing_init): Namespaced keys.
5637         (rb_daap_sharing_shutdown): Ditto.
5639         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
5640         Add password property.
5641         (rb_daap_share_set_name): Break out prop set function.
5642         (published_cb): New RBDaapMdnsPublisher signal handler.
5643         (name_collision_cb): Ditto.
5644         (rb_daap_share_init): Create publisher object and
5645         connect to signals.
5646         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
5647         (rb_daap_share_set_property): Break out prop set functions.
5648         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
5649         Unref publisher.
5650         (rb_daap_share_new): Add password argument.  Start
5651         publishing and DAAP server.
5652         (message_set_from_rb_daap_structure): Change print to debug.
5653         (server_info_cb): Set auth method to publish.
5654         (logout_cb): Handle DAAP client logout.
5655         (update_cb): Remove C++ comments.
5656         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
5657         (server_cb): Add debug.
5658         (soup_auth_callback): Handle auth requests.
5659         (rb_daap_share_server_start): Split up functions for starting
5660         server and publishing.  Add auth handling to server.
5661         (rb_daap_share_server_stop): Split stop server and publish.
5662         No C++ comments.
5663         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
5664         Start and stop publishing.
5665         (rb_daap_share_restart): Restart server and publishing.
5666         (rb_daap_share_maybe_restart): Conditionally restart.
5668         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
5669         (rb_daap_collision_dialog_new_run): Don't use
5670         separators in dialogs.
5672         * daapsharing/rb-daap-connection.h: Add private
5673         data to class structure.
5675         * daapsharing/rb-daap-connection.c: Move
5676         some includes to top of file.  Make private
5677         data struct name consistent with others.
5678         (rb_daap_connection_class_init): Rename
5679         private.
5680         (rb_daap_connection_init): Get and store the pointer
5681         to the private data once instead of in every
5682         function.  Create a username value "Rhythmbox_VERSION".
5683         (connection_get_password): Don't get private.
5684         (build_message): Ditto.
5685         (http_response_handler): Don't init variables in
5686         declaration.  Add debug.  Spacing.
5687         (http_get, entry_set_string_prop, handle_server_info) 
5688         (handle_login, handle_update, handle_database_info) 
5689         (handle_song_listing, handle_playlists, handle_playlist_entries) 
5690         (rb_daap_connection_constructor, rb_daap_connection_logout) 
5691         (rb_daap_connection_state_done): Don't get private.
5692         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
5693         spacing.  Correctly base64 encode the Authentication token.
5694         Add username to auth token.
5695         (rb_daap_connection_get_playlists): Don't get private.
5696         (rb_daap_connection_dispose): Ditto.  Free username.
5697         (rb_daap_connection_set_property) 
5698         (rb_daap_connection_get_property): Don't get private.
5700         * daapsharing/Makefile.am: Conditionally
5701         compile MDNS backends.  Add marshall stuff.
5703         * daapsharing/.cvsignore: Update.
5705         * configure.ac: Add conditional to see which
5706         MDNS backend we should use.
5708         * daapsharing/rb-daap-mdns.[ch]: Removed files.
5710         * daapsharing/rb-daap-marshal.list:
5711         * daapsharing/rb-daap-mdns-browser-avahi.c:
5712         * daapsharing/rb-daap-mdns-browser-howl.c:
5713         * daapsharing/rb-daap-mdns-browser.h:
5714         * daapsharing/rb-daap-mdns-publisher-avahi.c:
5715         * daapsharing/rb-daap-mdns-publisher-howl.c:
5716         * daapsharing/rb-daap-mdns-publisher.h:
5717         Split rb-daap-mdns.c into two classes.  One for
5718         publishing and one for browsing.  Split out
5719         the avahi and howl backends into different files.
5721         Fixes #322966
5722         
5723 2006-02-04  James Livingston  <jrl@ids.org.au>
5725         patch by: Jan Schmidt <thaytan@mad.scientist.com>
5727         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
5728         crash if metadata reader gives us NULL for strings.
5730 2006-02-03  James Livingston  <jrl@ids.org.au>
5732         * shell/rb-shell-player.c: (open_location_thread),
5733         (rb_shell_player_open_location):
5734         retrieve iradio playlists files in a thread, so that with GStreamer
5735         0.10 the UI doesn't block while connecting to stations. The streamer
5736         connection is synchronous with 0.8, so that will still block (a bit).
5737         Fixed bug 128106.
5739         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
5740         because _open_entry does that automatically when it is ready to.
5742 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
5744         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5745         (rb_podcast_source_post_status_cell_data_func):
5746         Leave the podcast status column blank for episodes that have not been
5747         downloaded.
5749 2006-02-03  James Livingston  <jrl@ids.org.au>
5751         Add support for source-specific toolbar items, and make the Burn
5752         Playlist item only available for playlists. Also add Update All
5753         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
5755         * data/ui/rhythmbox-ui.xml:
5756         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
5757         (impl_get_ui_actions): make the Burn CD toolbar item only for
5758         playlists
5760         * lib/rb-stock-icons.c: (rb_stock_icons_init):
5761         * lib/rb-stock-icons.h: load the Eject icon as stock.
5763         * shell/rb-removable-media-manager.c: use the eject icon for the eject
5764         action
5766         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
5767         (rb_shell_select_source):
5768         * sources/rb-source.c: (rb_source_class_init),
5769         (rb_source_disconnect), (default_get_ui_actions),
5770         (rb_source_get_ui_actions):
5771         * sources/rb-source.h: add support for source-specific toolbar items
5773         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
5774         Eject and Rip toolbar items
5776         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5777         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
5778         item.
5780 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
5782         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
5783         * shell/main.c: (main):
5784         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
5785         Replace all g_critical calls with g_warning, since none of them are
5786         the sort of thing the process should die over.  Fixes #329398.
5788 2006-02-03  James Livingston  <jrl@ids.org.au>
5790         * configure.ac: mention gst-plugins-base in the error message for not
5791         finding GStreamer 0.10, since not having that will cause it to fail.
5793 2006-02-03  James Livingston  <jrl@ids.org.au>
5795         * configure.ac: fix typo that means you get the wrong error message if
5796         you explicity request a particular playback engine, and it can't be
5797         found.
5799 2006-02-03  James Livingston  <jrl@ids.org.au>
5801         * data/glade/library-prefs.glade: allow the watched library location
5802         to be a non-local place.
5804 ============ Version 0.9.3
5807 2006-02-02  James Livingston  <jrl@ids.org.au>
5809         * NEWS: update NEWS
5810         * configure.ac: bump version to 0.9.3
5812         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
5813         <caillon@redhat.com>, fixed bug 329517. 
5815 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
5817         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
5819         * widgets/rb-song-info.c: (rb_song_info_constructor):
5820         Make year and disc number fields non-editable if tag editing
5821         is disabled.  Fixes #329463.
5823 2006-02-01  James Livingston  <jrl@ids.org.au>
5825         * rhythmdb/rhythmdb-property-model.c:
5826         (rhythmdb_property_model_row_inserted_cb),
5827         (rhythmdb_property_model_prop_changed_cb),
5828         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
5829         correctly. Fixes bug 327061.
5831         * rhythmdb/rhythmdb-query-model.c:
5832         (rhythmdb_query_model_entry_changed_cb): emit change notification of
5833         the HIDDEN property when an entry is removed for being hidden.
5835         * rhythmdb/rhythmdb-query-model.h:
5836         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
5837         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
5838         models's "connected" property. Whatever it was needed for seems to
5839         have gone.
5841 2006-02-01  James Livingston  <jrl@ids.org.au>
5843         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
5845         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
5846         (rb_shell_player_playing_changed_cb): block the signal to prevent
5847         re-entrancy. Fixes bug 329329 and fixes the first click of the play
5848         button pausing.
5850 2006-02-01  James Livingston  <jrl@ids.org.au>
5852         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
5853         /should/ now work, if the neccessary plugins get ported.
5855 2006-01-30  James Livingston  <jrl@ids.org.au>
5857         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
5858         string properties to "Unknown" is the string is empty. Kind of fixes
5859         bug 327495.
5861         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
5862         gettext calls once, rather than once per time the function is used.
5863         This stops us making tens of thousands of gettext calls on startup,
5864         which reduces the cpu-time of startup by 10-20%
5866 2006-01-29  James Livingston  <jrl@ids.org.au>
5868         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
5869         (rhythmdb_add_uri):
5870         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
5871         for files containing known video streams.
5874 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
5876         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
5877         required.
5879 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
5881         * INSTALL.quick: More random updates
5883         * rhythmdb/rhythmdb-query-model.c:
5884         (rhythmdb_query_model_class_init),
5885         (rhythmdb_query_model_set_property),
5886         (rhythmdb_query_model_get_property),
5887         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
5888         Remove user sort data handling, take a property ID and a reverse
5889         flag instead.
5890         (rhythmdb_query_model_insert_into_main_list),
5891         (rhythmdb_query_model_insert_into_limited_list),
5892         (rhythmdb_query_model_do_reorder),
5893         (_reverse_sorting_func):
5894         Handle reverse sorting by calling _reverse_sorting_func, which
5895         calls the real sort function and reverses the result.
5896         (rhythmdb_query_model_set_sort_order):
5897         Allow this to be called to set the initial sort order for limited
5898         queries, and handle reverse sorting when reordering.
5899         (rhythmdb_query_model_location_sort_func),
5900         (rhythmdb_query_model_album_sort_func),
5901         (rhythmdb_query_model_artist_sort_func),
5902         (rhythmdb_query_model_genre_sort_func),
5903         (rhythmdb_query_model_track_sort_func),
5904         (rhythmdb_query_model_double_ceiling_sort_func),
5905         (rhythmdb_query_model_ulong_sort_func),
5906         (rhythmdb_query_model_date_sort_func),
5907         (rhythmdb_query_model_string_sort_func):
5908         Sort functions moved from rb-entry-view.c.
5909         * rhythmdb/rhythmdb-query-model.h:
5910         Add the sort functions, and update the changed functions.
5911         
5912         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
5913         Just call _resort_model when the query model is set, since it
5914         does all the same things.
5915         (rb_entry_view_append_column):
5916         Rework bits so the rating column doesn't have to be so much of a
5917         special case.
5918         (rb_entry_view_append_column_custom):
5919         Take a property ID to sort on, rather than arbitrary custom data.
5920         (rb_entry_view_resort_model):
5921         Query model does all the reverse sort handling now.
5922         * widgets/rb-entry-view.h: Update _append_column_custom.
5924         * sources/rb-play-queue-source.c:
5925         (rb_play_queue_source_constructor):
5926         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
5927         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5928         (rb_podcast_source_post_date_cell_sort_func),
5929         (rb_podcast_source_post_status_cell_sort_func),
5930         (rb_podcast_source_post_feed_cell_sort_func):
5931         Updates required by all the other changes.
5933         * rhythmdb/rhythmdb-property-model.c:
5934         (rhythmdb_property_model_drag_data_get):
5935         Sort the query results on the selected property,
5936         so they arrive in the expected order.  All the other changes were made
5937         to make this possible.  Fixes bug #327494.
5939 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
5940         
5941         * shell/rb-shell-clipboard.c:
5942         Use GTK_STOCK_REMOVE icon for the remove action in
5943         the play queue too.
5945 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
5947         * sources/rb-play-queue-source.c:
5948         (rb_play_queue_source_constructor),
5949         (rb_play_queue_source_update_count):
5950         Don't make the 'queued songs' column clickable,
5951         and add the queued song count to the column title.
5953 2006-01-29  James Livingston  <jrl@ids.org.au>
5955         * configure.ac: remove "experimental" marking from DAAP, and enable by
5956         default if the dependencies are found.
5958 2006-01-29  James Livingston  <jrl@ids.org.au>
5960         * NEWS: update NEWS
5962 2006-01-29  James Livingston  <jrl@ids.org.au>
5964         patch by: William Jon McCann  <mccann@jhu.edu>
5966         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5967         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
5968         property used for the feed list. Fixes problem with feeds with no
5969         episodes not showing up.
5971 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
5972         
5973         * shell/rb-play-order-random-by-age-and-rating.c:
5974         (rb_random_by_age_and_rating_get_entry_weight):
5975         Fix compile errors, bug #328978.
5977 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
5979         * INSTALL.quick, README: Random updates
5980         * README.lirc: Add notes on controlling Rhythmbox with LIRC
5982 2006-01-28  James Livingston  <jrl@ids.org.au>
5984         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
5985         default rating back to 0 (from 2.5, which was needed for autorating).
5987         * shell/rb-play-order-random-by-age-and-rating.c:
5988         (rb_random_by_age_and_rating_get_entry_weight):
5989         * shell/rb-play-order-random-by-rating.c:
5990         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
5991         2.5 for the purposes of weighting entries.
5993 2006-01-28  James Livingston  <jrl@ids.org.au>
5995         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
5996         translator comments, to make it clearer what the "friendly time"
5997         formatting strings mean.
5999 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
6001         * daapsharing/rb-daap-connection.c: (http_response_handler):
6002         Fix the sense of the overflow check so it'll accept valid input.
6004 2006-01-27  James Livingston  <jrl@ids.org.au>
6006         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
6008         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
6009         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
6011 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
6013         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6014         
6015         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
6016         Don't include the artist field in the window title if it's blank.
6017         Fixes #325973.
6019 2006-01-26  William Jon McCann  <mccann@jhu.edu>
6021         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
6022         Use stock delete icon for move to trash and stock remove
6023         for remove menu item.
6025 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
6027         * shell/rb-shell.c: (rb_shell_constructor),
6028         (idle_handle_load_complete):  Don't start the playlist save
6029         timeout until we've loaded the playlists, otherwise we'll
6030         write an empty playlist file if startup takes too long.
6032 2006-01-25  William Jon McCann  <mccann@jhu.edu>
6034         * shell/rb-shell.c: Make view toolbar toggle use
6035         shift+ctrl+t.  Fixes #327585.
6037 2006-01-25  James Livingston  <jrl@ids.org.au>
6039         patch by: Christope Fergeau  <teuf@gnome.org>
6041         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
6042         (http_response_handler): fix a potential buffer overflow issue.
6044 2006-01-25  James Livingston  <jrl@ids.org.au>
6046         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
6047         Year column wide enough to display "Unknown"
6049 2006-01-25  James Livingston  <jrl@ids.org.au>
6051         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
6052         (rb_podcast_source_post_status_cell_data_func): make the episode
6053         status wording better. Part of bug 321607.
6055 2006-01-25  James Livingston  <jrl@ids.org.au>
6057         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
6058         others with a separator.
6060         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
6061         stock Delete icon.
6063 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
6065         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
6067 2006-01-23  James Livingston  <jrl@ids.org.au>
6069         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
6070         0.3.2. Fixed bug 328158.
6072 2006-01-23  James Livingston  <jrl@ids.org.au>
6074         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
6075         (gulong_gst_date_transform), (rb_metadata_class_init):
6076         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
6078 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
6080         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
6081         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
6082         (record_entry_change): Protect added_entries and changed_entries with
6083         a mutex, so it doesn't crash on startup on SMT/SMP machines.
6085 2006-01-23  James Livingston  <jrl@ids.org.au>
6087         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
6088         the browser for audio CDs.
6090 2006-01-22  James Livingston  <jrl@ids.org.au>
6092         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
6093         NEVER_FAIL as it causes the daemon-not-running error to never be
6094         reported, resulting in bug 319438 re-occurring.
6096 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
6098         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
6099         Just call the podcast manager's update method.  Unbreaks the 'update
6100         all feeds' command.
6102 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
6104         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
6106 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
6108         * configure.ac: Don't disable DAAP with gstreamer 0.10
6110         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
6111         (rb_daap_src_class_init), (rb_daap_src_init),
6112         (rb_daap_src_finalize), (rb_daap_src_set_property),
6113         (rb_daap_src_get_property), (rb_daap_src_write),
6114         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
6115         (_split_uri), (rb_daap_src_open):
6116         * daapsharing/rb-daap-src.h:
6117         Mostly fix seeking, handle chunked transfer encoding, and port to
6118         gstreamer 0.10.
6119         
6120         * player/rb-player-gst.c:
6121         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
6122         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
6124         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
6125         being fixed.
6127 2006-01-21  James Livingston  <jrl@ids.org.au>
6129         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
6130         for Year metadata in DAAP sources. Fixes bug 327700.
6132         * daapsharing/rb-daap-connection.c: (handle_song_listing):
6134 2006-01-20  William Jon McCann  <mccann@jhu.edu>
6136         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
6137         enum values instead of magic numbers.
6139         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
6140         Add number of songs that match each property title into
6141         the cell.  Also show the number of properties that match
6142         in the All entry.
6143         (rb_property_view_constructor): Use enum values instead of
6144         magic numbers.
6146         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
6147         Query podcast posts instead of feeds for browser.  Use
6148         post SUBTITLE which is the location for the property view.
6149         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
6150         (construct_query_from_selection) 
6151         (rb_podcast_source_cmd_delete_feed) 
6152         (rb_podcast_source_cmd_properties_feed) 
6153         (rb_podcast_source_cmd_update_feed): Use variable to make
6154         it clear what the selection data represents.
6155         (rb_podcast_source_feed_title_cell_data_func): Add number
6156         of posts that belong to each feed in the browser.
6158         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
6159         (rhythmdb_property_model_delete_prop): Decrement the refcount
6160         for the All entry.
6161         (rhythmdb_property_model_get_column_type): Use column enum
6162         values instead of magic numbers.  Add NUMBER column.
6163         (rhythmdb_property_model_get_value): Use enum.
6164         Add NUMBER column that represents the refcount for
6165         the title of that property.
6166         (rhythmdb_property_model_perform_sync): Don't fake up
6167         a title for All here.
6169         Fixes #327372.
6170         
6171 2006-01-21  James Livingston  <jrl@ids.org.au>
6173         Make Rhythmbox start faster by not blocking the UI while database
6174         initialisation and loading occurs. Closes bug 323348.
6176         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
6177         start 10 seconds later instead of immediately.
6178         
6179         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
6180         safe to call from any thread.
6182         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
6183         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
6184         so the UI doesn't block.
6186 2006-01-18  James Livingston  <jrl@ids.org.au>
6188         * sources/rb-static-playlist-source.c:
6189         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
6190         cause crashes. Oops. fixes bug 327477.
6192 2006-01-17  William Jon McCann  <mccann@jhu.edu>
6194         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
6195         Set GST element state to NULL before unreffing.
6196         Fixes #327422.
6198 2006-01-18  James Livingston  <jrl@ids.org.au>
6200         * sources/rb-static-playlist-source.c:
6201         (rb_static_playlist_source_do_query): don't filter on the SONG entry
6202         type, since the playlists can contain non-song entries. Fixes bug
6203         327448.
6205         * sources/rb-play-queue-source.c:
6206         (rb_play_queue_source_class_init): disable the search box for the
6207         queue.
6209 2006-01-18  James Livingston  <jrl@ids.org.au>
6211         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
6212         dragging of podcast episodes. Fixed bug 327450.
6214 2006-01-18  James Livingston  <jrl@ids.org.au>
6216         * rhythmdb/rhythmdb-query-model.c:
6217         (rhythmdb_query_model_drag_data_received): fix possible assertion when
6218         dragging to an emoty playlist.
6220 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
6222         * sources/rb-playlist-source-recorder.c:
6223         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
6225 2006-01-17  James Livingston  <jrl@ids.org.au>
6227         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
6229         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
6230         different number of tracks than exist on the cd, since that happens
6231         with audio+data hybrid CDs. Part of bug 325046.
6233 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
6235         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
6236         Remove useless call to gtk_tree_view_column_set_clickable().
6238         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
6239         Don't store sort data for columns if the sort function is NULL,
6240         so only sortable columns will be in the column sort data map.
6241         (rb_entry_view_set_columns_clickable): Only make columns we can sort
6242         on clickable.
6243         (rb_entry_view_constructor):  The 'playing icon' column is never
6244         clickable, so don't connect a signal handler for it.
6246         Fixes bug 326811.
6248 2006-01-17  James Livingston  <jrl@ids.org.au>
6250         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
6251         are 0.8 only. Fix element detection.
6253         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
6254         saving the new metadata failed
6256 2006-01-17  James Livingston  <jrl@ids.org.au>
6258         * shell/rb-shell-player.c: (do_next_idle),
6259         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
6260         (eos_cb): release audio device when a playlist finishes. Fixes bug
6261         323679.
6263 2006-01-17  James Livingston  <jrl@ids.org.au>
6265         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
6266         canonicalise the URIs when things are added via library watching.
6268 2006-01-16  William Jon McCann  <mccann@jhu.edu>
6270         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
6271         Off by one error in default speed index.
6273 2006-01-16  William Jon McCann  <mccann@jhu.edu>
6275         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
6276         (update_speed_combobox, update_speed_combobox):
6277         Get a list of the actually supported write speeds from
6278         n-c-b >= 2.13.90.  Otherwise use fallback list.
6280 2006-01-17  James Livingston  <jrl@ids.org.au>
6282         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
6283         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
6284         don't get stuck on recursive symlinks. Fixed bug 125452.
6286 2006-01-17  James Livingston  <jrl@ids.org.au>
6288         Add support for mass-storage audio players. Players are detected via
6289         either the HAL "audio_player" capability, or a ".is_audio_player" file
6290         in the root of the volume. Closes bug 325602.
6292         * configure.ac: separate using HAL from ipod support.
6294         * lib/rb-file-helpers.c: (rb_uri_is_local):
6295         * lib/rb-file-helpers.h: add function to determine whether a URI is
6296         local.
6298         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
6299         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
6300         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
6301         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
6302         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
6303         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
6304         directories can be scanned for files to add as  non-SONG entries.
6306         * shell/rb-removable-media-manager.c:
6307         (rb_removable_media_manager_mount_volume): add checking for
6308         mass-storage players.
6310         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
6311         * sources/rb-ipod-source.c: (rb_ipod_source_new),
6312         (hal_udi_is_ipod):
6313         * sources/rb-removable-media-source.c:
6314         (rb_removable_media_source_class_init),
6315         (rb_removable_media_source_constructor): move some things up to the
6316         RBRemovableMediaSource, rather than making subclasses do it.
6318         * sources/Makefile.am:
6319         * sources/rb-generic-player-source.c:
6320         * sources/rb-generic-player-source.h: add mass-storage player source.
6322 2006-01-16  James Livingston  <jrl@ids.org.au>
6324         patch by: William Jon McCann  <mccann@jhu.edu>
6326         * rhythmdb/rhythmdb-query-model.c:
6327         (rhythmdb_query_model_base_row_deleted): fix build issue from last
6328         commit.
6330 2006-01-16  James Livingston  <jrl@ids.org.au>
6332         Patch to add support for "chained queries" and putting hidden tracks
6333         in query models. Use chained queries to add search box support to
6334         normal playlists, and to make hidden entries not get lost. Fixes bug
6335         319278.
6337         * rhythmdb/rhythmdb-query-model.h:
6338         * rhythmdb/rhythmdb-query-model.c:
6339         (rhythmdb_query_model_class_init),
6340         (rhythmdb_query_model_set_property),
6341         (rhythmdb_query_model_get_property):
6342         (rhythmdb_query_model_finalize): add "show-hidden" and
6343         "base-model" properties.
6345         (rhythmdb_query_model_set_connected),
6346         (rhythmdb_query_model_has_pending_changes),     
6347         (rhythmdb_query_model_entry_added_cb),
6348         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
6349         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
6350         (rhythmdb_query_model_remove_entry),
6351         (rhythmdb_query_model_drag_data_received),
6352         (rhythmdb_query_model_base_row_inserted),
6353         (rhythmdb_query_model_base_row_deleted),
6354         (rhythmdb_query_model_base_non_entry_dropped),
6355         (rhythmdb_query_model_base_complete),
6356         (rhythmdb_query_model_base_entry_prop_changed),
6357         (rhythmdb_query_model_base_rows_reordered),
6358         (rhythmdb_query_model_row_drop_possible): handle base-model by
6359         chaining events and operations where necessary. Make hidden entries
6360         not get added only if "show-hidden" is false.
6362         (rhythmdb_query_model_child_index_to_base_index),
6363         (rhythmdb_query_model_base_index_to_child_index),
6364         (rhythmdb_query_model_get_entry_index): utility functions for handling
6365         base-model entries.
6367         (rhythmdb_query_model_reapply_query): apply the current query, and
6368         remove entries that don't match it.
6370         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
6371         empty queries.
6373         * sources/rb-source.c: (rb_source_set_property): move the unref later
6374         to fix problem if it is the last reference.
6376         * sources/rb-static-playlist-source.c:
6377         (rb_static_playlist_source_class_init),
6378         (rb_static_playlist_source_init),
6379         (rb_static_playlist_source_finalize),
6380         (rb_static_playlist_source_constructor), (impl_reset_filters),
6381         (impl_search), (rb_static_playlist_source_do_query),
6382         (impl_save_contents_to_xml),
6383         (rb_static_playlist_source_add_location_internal): use a chained query
6384         model to filter out hidden entries and implement the search box.
6386 2006-01-15  James Livingston  <jrl@ids.org.au>
6388         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
6389         the default playlist loading, which I broke earlier.
6391 2006-01-15  James Livingston  <jrl@ids.org.au>
6393         patch by: William Jon McCann  <mccann@jhu.edu>
6395         * sources/rb-playlist-source.c: (playlist_iter_func): use
6396         totem-plparser's new API version macros to check for API changes.
6397         Handle the recent API change.
6399 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
6401         * sources/rb-library-source.c: (impl_get_config_widget):
6402         Ref the preferences object to match the unref in the
6403         finalizer.  Fixes some portion of #323505.
6405 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
6407         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
6408         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
6409         Fix valgrind warnings about accessing uninitialised values.
6411 2006-01-14  William Jon McCann  <mccann@jhu.edu>
6413         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
6415 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
6417         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
6418         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
6419         Stops the 'now playing' icon from being displayed after the play
6420         order finishes.
6422 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
6424         * podcast/rb-podcast-manager.c:
6425         (rb_podcast_manager_db_entry_deleted_cb):
6426         Don't try to delete files we never downloaded, and cancel downloads
6427         for deleted episodes.  Fixes bug #326862.
6428         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
6429         Don't complain about NULL data items in the selection list.
6431 2006-01-14  James Livingston  <jrl@ids.org.au>
6433         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
6434         Make the name ofthe queue non editable. Fixes bug 326918.
6436 2006-01-13  William Jon McCann  <mccann@jhu.edu>
6438         * sources/rb-playlist-source-recorder.c (burn_cd) 
6439         (ask_rewrite_disc): Don't use our locally copied functions
6440         if we have at least 2.13.
6442 2006-01-13  William Jon McCann  <mccann@jhu.edu>
6444         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
6445         Correct the argument type for the process_error signal.
6446         May fix bug #323154.
6448 2006-01-13  James Livingston  <jrl@ids.org.au>
6450         save the queue to disk when exiting, and reload on startup. Fixed bug
6451         326677 .
6453         * shell/rb-playlist-manager.c:
6454         (rb_playlist_manager_load_playlists),
6455         (rb_playlist_manager_save_playlists_async): don't disable saving of
6456         the queue
6458         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
6459         add the queue source as a gobject property.
6461         * sources/rb-play-queue-source.c:
6462         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
6463         code to save the queue to xml
6465         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
6466         load the queue from xml.
6467         * sources/rb-playlist-xml.h:
6469         * sources/rb-static-playlist-source.c:
6470         (rb_static_playlist_source_load_from_xml),
6471         (rb_static_playlist_source_new_from_xml):
6472         * sources/rb-static-playlist-source.h: split the playlist xml loading
6473         from the static playlist creation function, so the queue can use it.
6475 2006-01-13  James Livingston  <jrl@ids.org.au>
6477         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
6478         assertion that should be there. Fixes bug 325923.
6479         
6480         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
6481         return NULL if the entry already exists (e.g. as another type).
6482         * daapsharing/rb-daap-connection.c: (handle_song_listing):
6483         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
6484         (rb_podcast_manager_insert_feed):
6485         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
6486         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
6487         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
6488         for the above function returning NULL.
6490 2006-01-12  James Livingston  <jrl@ids.org.au>
6492         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
6493         is enabled. Fixes bug 326673.
6494         
6495         * doc/reference/tmpl/eggtrayicon.sgml:
6496         * doc/reference/tmpl/rb-daap-src.sgml:
6497         * doc/reference/tmpl/rb-source.sgml:
6498         * doc/reference/tmpl/rb-statusbar.sgml:
6499         * doc/reference/tmpl/rb-tree-model-sort.sgml:
6500         * doc/reference/tmpl/rhythmbox-unused.sgml:
6501         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
6503 2006-01-11  James Livingston  <jrl@ids.org.au>
6505         * widgets/rb-song-info.c: (rb_song_info_constructor),
6506         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
6507         (rb_song_info_populate_dialog): fill in the fields if all tracks have
6508         the same value for properties. From bug 326054.
6510 2006-01-11  James Livingston  <jrl@ids.org.au>
6512         * sources/rb-source.h:
6513         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
6514         (rb_shell_player_set_playing_source_internal), (eos_cb):
6515         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
6516         every entry.
6518         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
6519         source use this. Closes bug 322077.
6521 2006-01-10  William Jon McCann  <mccann@jhu.edu>
6523         * widgets/eggtrayicon.c (egg_tray_icon_notify):
6524         In order for set_icon_data_from_pixbuf() to be
6525         effective, one must not set an icon in _new().
6527 2006-01-10  William Jon McCann  <mccann@jhu.edu>
6529         * widgets/eggtrayicon.c (egg_tray_icon_init) 
6530         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
6531         (egg_tray_icon_notify): Add support for libnotify 0.3.
6532         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
6533         * configure.ac: Determine the version of libnotify.
6534         Fixes #326333.
6536 2006-01-08  James Livingston  <jrl@ids.org.au>
6538         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
6539         trying to share a track with unknown length.
6541 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
6543         * shell/rb-shell-player.c: (rb_shell_player_init):
6544         Sync volume on startup so it doesn't default to 0.
6546 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
6548         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6549         (rb_shell_player_get_property), (rb_shell_player_open_location),
6550         (info_available_cb):  Add the iradio streamed song title as a
6551         property, and emit a signal when it changes.
6553         * shell/rb-shell.c: (rb_shell_constructor),
6554         (rb_shell_player_elapsed_changed_cb),
6555         (rb_shell_player_stream_song_changed_cb):
6556         Issue a notification when the iradio song title changes.
6557         Fixes #326166.
6559 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
6561         * shell/rb-shell-player.c: (rb_shell_player_init),
6562         (rb_shell_player_finalize), (rb_shell_player_set_property),
6563         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
6564         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
6565         (rb_shell_player_set_volume_relative),
6566         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
6567         (rb_shell_player_get_mute):
6568         * shell/rb-shell-player.h:
6569         * shell/rb-shell-player.xml:
6570         Store volume as a property on RBShellPlayer, rather than in gconf.
6571         Add some methods to control volume via dbus.
6573         * shell/rb-shell.c: (rb_shell_constructor),
6574         (rb_shell_volume_widget_changed_cb),
6575         (rb_shell_player_volume_changed_cb):
6576         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
6577         Update volume using player properties rather than gconf, and sync the
6578         volume with the volume control button when something else changes it.
6579         Fixes #323840.
6581 2006-01-07  William Jon McCann  <mccann@jhu.edu>
6583         * shell/rb-tray-icon.c (tray_popup_position_menu):
6584         Make tray menu align with edge of panel.
6586         patch from Jaap A. Haitsma <jaap@haitsma.org>
6587         Fixes #319913
6589 2006-01-07  William Jon McCann  <mccann@jhu.edu>
6590         * shell/rb-shell.c (sourcelist_drag_received_cb): 
6591         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
6592         (rb_playlist_manager_new_playlist_from_selection_data):
6593         Make a reasonable default name for playlists created from
6594         dropped data.  Fixes #326116.
6596 2006-01-07  William Jon McCann  <mccann@jhu.edu>
6598         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
6599         Use new gconf key.
6600         (burn_cd): Always eject CD after burning.  Too many drives
6601         get confused if we don't.  Save the speed used if the burn
6602         was completed successfully.
6604         * data/rhythmbox.schemas: Use our own speed instead of from
6605         n-c-b. The situation is that the default_speed for n-c-b is most
6606         likely the maximum write speed.  This is fine for n-c-b because it
6607         has burn-proof turned on.  We can't turn it on for audio CDs
6608         because the results are poor in quality.  So we'll just pick a
6609         default that should work for everyone (4).
6611 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
6612         
6613         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
6614         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
6616 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
6618         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
6619         in my previous commit.  Fixes #326037.
6621 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
6623         patch by: Jonathan Matthew
6625         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
6626         error on Fedora Rawhide.
6628 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
6630         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
6631         Assume HTTP URLs ending with .xml or .rss are podcasts.
6632         (rb_shell_add_uri): Handle adding podcast feeds.
6634         * sources/rb-podcast-source.c: (rb_podcast_source_new):
6635         Register as the source for podcast feeds.
6637 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
6639         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
6640         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
6641         (rb_shell_preferences_append_view_page):
6642         * shell/rb-shell-preferences.h:
6643         Fix typo in function name.  Fixes #325992.
6645 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
6647         * shell/rb-audioscrobbler.c:
6648         Add '+' to the list of characters to URI-encode, so it doesn't get
6649         interpreted as a space.
6651 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
6653         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
6654         (rb_daap_connection_do_something):  Don't crash if the DAAP server
6655         goes away while we're still trying to log in.
6657 2006-01-06  James Livingston  <jrl@ids.org.au>
6659         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
6661 2006-01-06  James Livingston  <jrl@ids.org.au>
6663         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
6664         support for Year to automatic playlists. Closes bug 321341.
6666         * rhythmdb/rhythmdb-query-model.c:
6667         (rhythmdb_query_model_set_property):
6668         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
6669         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
6670         (rhythmdb_query_free), (rhythmdb_query_serialize),
6671         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
6672         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
6673         * rhythmdb/rhythmdb.h: Support special
6674         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
6675         year in date.
6677         * widgets/rb-query-creator-properties.c:
6678         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
6679         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
6681 2006-01-06  James Livingston  <jrl@ids.org.au>
6683         * configure.ac: make the playback backend selection work correctly
6685         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
6686         (rb_daap_src_class_init), (rb_daap_src_dispose),
6687         (rb_daap_src_change_state), (rb_daap_src_initialize):
6688         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
6689         doesn't work for this class. Fixes bug 325934
6691 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
6693         * configure.ac: Fix check for libnotify.
6695 2006-01-05  William Jon McCann  <mccann@jhu.edu>
6697         * sources/rb-playlist-source.c (xml_get_and_trim_names):
6698         Get name element for current lang and remove all name nodes
6699         from the XML tree.
6700         (get_playlist_name_from_xml): Try to get name element or
6701         fall back to name attribute.
6702         (rb_playlist_source_new_from_xml): Get name before turning over
6703         to sub-types for parsing so that we can remove name elements
6704         from the tree if necessary.
6706         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
6707         Load default playlists file if per user playlists are not found.
6709         * data/playlists.xml.in: 
6710         * data/Makefile.am: 
6711         * data/.cvsignore: Add default set of playlists.
6712         Fixes #323004
6714 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
6716         * shell/main.c: (main): Don't use the dbus interface to show the
6717         window if we're also going to use the bonobo interface.
6719 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
6721         * shell/rb-history.c: (rb_history_set_playing):
6722         Allow setting the playing song to NULL.
6723         (rb_history_append), (rb_history_delete_link):
6724         Don't randomly change position when entries are added and removed,
6725         it confuses play orders.
6726         
6727         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
6728         Random orders always have a next entry if the model is not empty.
6729         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
6730         Go back to the start of the history if we're past its end.
6732         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
6733         (rb_shuffle_play_order_go_next): Go back to the start of the history
6734         if we're past its end.
6735         (rb_shuffle_sync_history_with_query_model): Go back to the start of
6736         the history if the current entry is removed.
6738         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
6739         (rb_play_order_entry_deleted_cb): Only update have next/previous for
6740         the play order when the query has finished. This wasted about 10% CPU
6741         while the query was running.
6743         Fixes #324641: assertion failures when the query model was changed
6744         such that the playing song was no longer present.
6746 2006-01-05  James Livingston  <jrl@ids.org.au>
6748         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
6749         (rb_daap_src_dispose), (rb_daap_src_change_state):
6750         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
6751         (rhythmdb_gda_finalize):
6752         * widgets/rb-cell-renderer-pixbuf.c:
6753         * widgets/rb-cell-renderer-rating.c:
6754         (rb_cell_renderer_rating_class_init),
6755         (rb_cell_renderer_rating_finalize):
6756         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
6757         * widgets/rb-load-failure-dialog.c:
6758         (rb_load_failure_dialog_class_init),
6759         (rb_load_failure_dialog_finalize):
6760         * widgets/rb-rating.c: (rb_rating_class_init),
6761         (rb_rating_finalize):
6762         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
6763         (rb_search_entry_finalize): use G_DEFINE_TYPE
6765         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
6767 2006-01-05  James Livingston  <jrl@ids.org.au>
6769         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
6771         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
6772         the tarball.
6774         * shell/rb-history.c: (rb_history_class_init),
6775         (rb_history_finalize):
6776         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
6777         (rb_playlist_manager_finalize):
6778         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
6779         (rb_remote_init): use G_DEFINE_TYPE.
6781 2006-01-05  James Livingston  <jrl@ids.org.au>
6783         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
6784         changes
6786 2006-01-04  William Jon McCann  <mccann@jhu.edu>
6788         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
6789         Disable burn action when source is not a playlist.
6790         Fixes #323578.
6792 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
6794         Optionally use libnotify to display song change and other
6795         notifications, and provide an option to disable notifications.
6796         Fixes #320355 and innumerable informal complaints.
6798         * widgets/eggtrayicon.c: (egg_tray_icon_init),
6799         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
6800         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
6801         (egg_tray_icon_notify):
6802         * widgets/eggtrayicon.h:
6803         * configure.ac:
6804         * shell/Makefile.am:
6805         Optionally use libnotify instead of eggnotificationbubble.
6807         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
6808         (rb_tray_icon_constructor), 
6809         (rb_tray_icon_show_notifications_changed_cb),
6810         (rb_tray_icon_hide_notify_cb)
6811         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
6812         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
6813         EggNotificationBubble pointer to eggtrayicon.
6815         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
6816         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
6817         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
6819 2006-01-04  William Jon McCann  <mccann@jhu.edu>
6821         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
6822         Request a minimum size for the progress bar so that
6823         the window doesn't shrink too small.
6825 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
6827         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
6828         (add_db_entry), (db_entry_deleted_cb):
6829         Don't track the number of songs currently present, track the next ID
6830         to assign.  Fixes potential ID conflict problems.
6831         
6832         (db_entry_changed_cb), (rb_daap_share_start_publish),
6833         (rb_daap_share_stop_publish):
6834         Watch for db entry changes, and when songs become non-hidden after
6835         a successful stat, add them to the mapping tables.   Fixes #325178,
6836         making the DAAP server usable again.
6838 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
6839         
6840         * shell/rb-statusbar.c: (rb_statusbar_class_init),
6841         (rb_statusbar_construct), (rb_statusbar_init),
6842         (rb_statusbar_finalize), (rb_statusbar_set_property),
6843         (rb_statusbar_get_property), (rb_statusbar_new),
6844         (rb_statusbar_sync_with_source):
6845         * shell/rb-statusbar.h:
6846         Remove visibility management code, stop watching for play order
6847         changes (status bar doesn't show play order any more), remove unused
6848         'player' property, and some other minor cleanup.
6849         
6850         * shell/rb-shell.c: (rb_shell_constructor),
6851         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
6852         (rb_shell_sync_statusbar_visibility):
6853         Manage status bar visibility here rather than in the status bar
6854         itself, so we can take small mode into account.  Fixes #323589.
6856 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
6858         * widgets/eggnotificationbubble.c: (draw_bubble):
6859         Move the bubble off the visible screen while setting up bevels.  
6860         Fixes #316810.
6862 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
6864         * shell/rb-shell-player.c: (rb_shell_player_init),
6865         (rb_shell_player_finalize): 
6866         Remove unused structure members.
6867         
6868         (do_next_idle), (rb_shell_player_error):
6869         Only queue one call to do_next_idle, so we don't skip tracks if we get
6870         two errors for the same song.  Fixes #325216.
6872 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
6874         * data/glade/podcast-feed-properties.glade,
6875          podcast/rb-feed-podcast-properties-dialog.c:
6876         (rb_feed_podcast_properties_dialog_init),
6877         (rb_feed_podcast_properties_dialog_update):
6878         Add 'last episode' field to the podcast feed properties dialog.
6880         * podcast/rb-feed-podcast-properties-dialog.c:
6881         (rb_feed_podcast_properties_dialog_update_last_update),
6882         (rb_feed_podcast_properties_dialog_update_last_episode),
6883          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
6884         Use last-seen property for the time at which we last updated the feed,
6885         and post-time for the time the last episode was published.
6887         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
6888         Handle upgrades from 0.9.2; if no post-time was found for a podcast
6889         feed, use last-seen (which in 0.9.2 was the last post time).
6891         Fixes #323894.
6893 2006-01-01  James Livingston  <jrl@ids.org.au>
6895         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
6897         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
6898         year from the ipod database.
6900 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
6902         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
6903         Only set the pipeline back to NULL state for really uninteresting
6904         files.  This was causing deadlocks with various video files.
6905         Fixes #324912.
6907 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
6909         * data/glade/song-info-multiple.glade:
6910         Add disc number label and field.
6911         * widgets/rb-song-info.c: (rb_song_info_construct_single),
6912         (rb_song_info_constructor): 
6913         Handle widgets for disc number.
6914         (rb_song_info_sync_entries_multiple):
6915         Set disc number property on selected entries.
6916         Fixes #324777.
6918 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
6920         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
6921         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
6922         Activate the default widget when enter is pressed in these dialogs.
6923         Fixes #322887.
6925 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
6927         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
6928         Use rb_shell_player_get_playing_entry, so we get the right entry
6929         when playing from the queue.  Fixes #325379.
6931 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
6933         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
6934         Include podcast posts with no publication date.  Typically
6935         seen in static collections rather than feeds.
6937 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
6939         * shell/main.c: (main): Don't attempt to handle
6940         bonobo-only arguments if we couldn't get a bonobo
6941         client proxy.
6943 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
6945         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
6946         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
6947         abort if daap sharing is disabled and then re-enabled.
6949 2005-12-29  William Jon McCann  <mccann@jhu.edu>
6951         * podcast/rb-podcast-parse.c (rb_insert_item):
6952         Add debugging.
6953         (rb_podcast_parser_start_element): Support itunes:image.
6954         Add debugging.  Don't abuse the break statement.  Warn
6955         if state is unknown.
6956         (rb_podcast_parser_end_element): Add debugging.  Warn
6957         if state is unknown.
6958         (rb_podcast_parser_characters): Warn if state is unknown.
6960         Fixes parsing of feeds that use the itunes:image element.
6961         Fixes #324632
6963 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
6965         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
6966         (stations_view_drag_data_received_cb):
6967         Remove calls to rhythmdb_entry_lookup_by_location, as
6968         rb_iradio_source_add_station does that anyway.
6969         
6970         (rb_iradio_source_add_from_playlist):
6971         If the URL doesn't point to a playlist, add it as the stream
6972         URL instead.
6974 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
6976         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
6977         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
6978         so we don't get an assertion failure.
6979         Fixes #325025.
6981 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
6983         * shell/main.c: (load_uri_args): don't compile this in if
6984         neither bonobo nor dbus are enabled.  Fixes #324890.
6986 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
6988         * sources/rb-audiocd-source.c:
6989         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
6990         so it closes the device.
6992 2005-12-20  James Livingston  <jrl@ids.org.au>
6994         * metadata/rb-metadata-gst.c: make the state changes time-out again,
6995         so that it doesn't spend forever getting stuck on the one file. Don't
6996         report errors for failing to change state on known non-audio files.
6998         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
6999         audio sink creation if we can't create the gconfaudiosink. This lets
7000         it work with only gst-plugins-base on 0.10.
7002 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
7004         * rhythmdb/rhythmdb-query-model.c:
7005         (rhythmdb_query_model_set_sort_order):
7006         Fix a tiny memory leak in the previous commit.
7008 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
7010         * rhythmdb/rhythmdb-query-model.c:
7011         (rhythmdb_query_model_set_sort_order):
7012         Don't try to emit reorders for empty query models, since it doesn't
7013         achieve anything and it results in a few warnings.
7015 2005-12-19  William Jon McCann  <mccann@jhu.edu>
7017         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
7018         Make burn dialog non-resizable so that the expander can shrink.
7019         Fixes #308951.
7021 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
7023         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
7024         add entries without a location, rather than those with one.
7026 2005-12-19  James Livingston  <jrl@ids.org.au>
7028         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
7029         the error isn't set.
7031 2005-12-19  James Livingston  <jrl@ids.org.au>
7032         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
7033         add entries without a location. Fixes bug 324290.
7035         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
7036         without a location.
7038         * shell/main.c: (main): don't crash if dbus initialisation fails
7039         without setting an error
7041 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
7043         * sources/rb-library-source.c: Remove unused structure members
7044         (rb_library_source_do_query): Actually use the cached 'all' query.
7045         Fixes #324025.
7046         
7047 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
7049         * sources/rb-audiocd-source.c 
7050         (rb_audiocd_get_cd_info): tab
7051         (rb_audiocd_scan_songs): Return boolean success/failure,
7052         fix error messages a bit.
7053         (metadata_cb): Don't crash if we have no tracks
7054         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
7055         the CD.
7056         Fixes #324222.
7058 2005-12-15  William Jon McCann  <mccann@jhu.edu>
7060         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
7061         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
7062         key.
7064         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
7065         Fixes #324157
7067 2005-12-14  William Jon McCann  <mccann@jhu.edu>
7069         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
7070         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
7071         (fullscreen_changed_cb): 
7072         * lib/rb-preferences.h: 
7073         * data/ui/rhythmbox-ui.xml: 
7074         * data/rhythmbox.schemas:
7075         Add fullscreen mode.
7077         Fixes #324075.
7079 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
7081         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
7082         configure.  It was not working with RPM.
7083         * data/Makefile.am: Switched dbus directory location to use
7084         datadir instead of variable that was not working.
7086 2005-12-13  James Livingston  <jrl@ids.org.au>
7088         patch by: Alex Lancaster <alexl@users.sourceforge.net>
7090         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
7091         the podcast browser work again. Closes bug 323856.
7093 2005-12-12  William Jon McCann  <mccann@jhu.edu>
7095         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
7096         Remove C99ism.
7098         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
7099         (rb_utf_friendly_time):
7100         * lib/rb-cut-and-paste-code.h:
7102         * podcast/rb-feed-podcast-properties-dialog.c:
7103         (rb_feed_podcast_properties_dialog_parse_time):
7104         * podcast/rb-podcast-properties-dialog.c:
7105         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
7106         to display the date in a more user friendly way.
7107         For example, if the feed was updated yesterday it will say:
7108         Last updated: Yesterday 10:00 AM
7109         instead of printing the date.
7111 2005-12-12  William Jon McCann  <mccann@jhu.edu>
7113         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
7114         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
7115         (rb_validate_item_propert, rb_podcast_parser_start_element) 
7116         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
7117         Use RB style.  Check for NULL before strcmp.  No C++ comments.
7118         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
7119         Don't set invalid mime type when mime type is NULL.  Fix leaks.
7120         (rb_podcast_parse_date): Add support for some real world
7121         date formats.
7122         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
7123         (rb_podcast_parse_item_free): Style and no need to check
7124         for NULL before g_free.
7126         May fix #323742
7128 2005-12-12  James Livingston  <jrl@ids.org.au>
7130         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
7131         with gstreamer 0.10, which replaced audioscale.
7133         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
7134         function to free the SoupSession
7136         * shell/rb-source-header.c: (rb_source_header_set_property),
7137         (rb_source_header_disclosure_toggled_cb),
7138         (rb_source_header_view_browser_changed_cb),
7139         (rb_source_header_sync_control_state):
7140         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
7141         * sources/rb-library-source.c: (rb_library_source_class_init):
7142         * sources/rb-source.c: (rb_source_class_init),
7143         (rb_source_get_status), (default_get_browser_key),
7144         (rb_source_get_browser_key), (rb_source_can_browse),
7145         (rb_source_notify_status_changed),
7146         (rb_source_notify_filter_changed):
7147         * sources/rb-source.h: seperate the enabling of browsers from the use
7148         of a gconf key.
7150 2005-12-11  William Jon McCann  <mccann@jhu.edu>
7152         * data/glade/podcast-feed-properties.glade: 
7153         * data/glade/podcast-properties.glade: Use scrolled viewports
7154         for description text.  Fix regression of #320509.
7156 2005-12-11  James Livingston  <jrl@ids.org.au>
7158         * sources/rb-auto-playlist-source.c:
7159         (rb_auto_playlist_source_class_init), (impl_reset_filters),
7160         (impl_search), (rb_auto_playlist_source_do_query),
7161         (rb_auto_playlist_source_set_query),
7162         (rb_auto_playlist_source_get_query): add support for the search box
7163         to automatic playlists.
7165         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
7166         memory leak.
7168 2005-12-11  James Livingston  <jrl@ids.org.au>
7170         * NEWS: update NEWS
7172 2005-12-11  James Livingston  <jrl@ids.org.au>
7174         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
7175         (rhythmdb_load), (monitor_subdirectory),
7176         (rhythmdb_sync_library_location):  start the library sync and
7177         monitoring in an idle callback.
7179 2005-12-10  William Jon McCann  <mccann@jhu.edu>
7181         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
7182         (rb_podcast_source_constructor): Remove unused pixbuf column.
7183         (rb_podcast_source_set_property, rb_podcast_source_get_property):
7184         Use consistent style.
7186         Fixes #322961.
7188 2005-12-11  James Livingston  <jrl@ids.org.au>
7190         * rhythmdb/rhythmdb-property-model.c:
7191         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
7192         (rhythmdb_property_model_insert),
7193         (rhythmdb_property_model_delete_prop):
7194         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
7195         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
7196         (destroy_tree_property):
7197         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
7198         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
7199         GMemChunks, they are crap and deprecated. Improves startup-time and
7200         memory usage slightly.
7202 2005-12-10  William Jon McCann  <mccann@jhu.edu>
7204         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
7205         Added license and website info.
7207         * MAINTAINERS.old: Add Colin.
7208         * MAINTAINERS: Add James.
7209         * AUTHORS: Put back in order.  Add extra space between name and email
7210         to make it easier to read.  Add James and jonathan.
7212         * widgets/rb-song-info.c (rb_song_info_init) 
7213         (rb_song_info_constructor): Make sure close button is primary/rightmost.
7215 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
7217         Play queue implementation. Closes bug 107787.
7219         * data/rhythmbox.schemas: add items for whether the queue should be
7220         displayed as a sidebar, and the height of the sourcelist if it is.
7222         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
7223         playlist, and podcast popups; add 'view queue as sidebar' menu item,
7224         add popups for queue as source and as sidebar.  We need a separate
7225         popup for the sidebar view because otherwise it's hard to tell which
7226         of the visible entry views the action came from.
7228         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
7230         * po/POTFILES.in: Add new file
7232         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
7233         Add helper function for deciding if a podcast episode is available for
7234         playback.
7236         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
7237         reorder entries in the query model.
7238         (idle_process_update): Handle new update type used to insert entries
7239         at a particular position in the query model.
7240         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
7241         parameter to specify the position (-1 meaning 'at the end').
7242         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
7243         parameter.
7244         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
7245         bad entry removal updates for entries that aren't in the model.
7246         (rhythmdb_query_model_emit_reorder): Add helper function for
7247         reordering rows.
7248         (rhythmdb_query_model_move_entry): New method for moving entries
7249         around in the model
7250         (rhythmdb_query_model_entry_added_cb),
7251         (rhythmdb_query_model_update_limited_entries),
7252         (rhythmdb_query_model_do_reorder),
7253         (rhythmdb_query_model_do_insert): Pass through the index parameter,
7254         use rhythmdb_query_model_emit_reorder where appropriate.
7256         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
7257         Don't allow the queue to be deleted.
7258         (handle_playlist_entry_cb): Update for method signature change
7259         (rb_playlist_manager_save_playlists_async),
7260         (rb_playlist_manager_get_playlists): Don't save the play queue,
7261         don't report it as a playlist.
7263         * shell/rb-play-order.c: Include queue play order in the list of
7264         available orders.
7266         * shell/rb-shell.c
7267         (rb_shell_class_init), (rb_shell_get_property): Add new property 
7268         for access to the clipboard object.
7269         (rb_shell_constructor): Handle playing-from-queue signal to update the
7270         sourcelist display; add queue sidebar in to UI, listen for queue
7271         sidebar pane changes, and read initial settings from gconf.
7272         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
7273         Only tell the sourcelist the source has changed if the new source is 
7274         not the queue, as we update the sourcelist differently in that case.
7275         (rb_shell_set_window_title): Only use the cached window title if the
7276         playing state was the same when it was created.
7277         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
7278         (rb_shell_sync_pane_visibility): Only hide the side pane if the
7279         sourcelist is hidden and the queue is shown as a source.
7280         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
7281         mode, since it doesn't make any sense.
7282         (sourcelist_visibility_changed_cb): Update the visibility of the pane
7283         too.
7284         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
7285         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
7286         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
7287         playing from queue shown as sidebar.
7289         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
7290         MusicProperties action here from rb-shell-player.c, since it acts like
7291         cut/copy/paste etc.
7292         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
7293         (rb_shell_clipboard_get_property): new property for queue source.
7294         Watch for selection changes in the sidebar entry view as well as the
7295         normal one.
7296         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
7297         actions and MusicProperties.
7298         (rb_shell_clipboard_cmd_queue_delete),
7299         (rb_shell_clipboard_cmd_add_song_to_queue),
7300         (rb_shell_clipboard_cmd_song_info),
7301         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
7303         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
7304         actually came from (could be the playing source, or the queue), add a 
7305         new play order object for the queue, add a property for the queue
7306         source, add a signal for when we switch between playing from the
7307         source and from the queue.
7308         (rb_shell_player_set_property): Handle playing directly from the
7309         queue so we stop once the queue is empty.  Create queue play order
7310         when we get the queue source.
7311         (rb_shell_player_get_playing_source): Return the source we're actually
7312         playing from.
7313         (rb_shell_player_get_playing_entry): Get playing entry from queue if
7314         that's where it is.
7315         (rb_shell_player_set_playing_entry): Update the queue play order if 
7316         that's where we're playing from.
7317         (rb_shell_player_play_order_update_cb): Take has next/previous for the
7318         queue into consideration too.
7319         (swap_playing_source): Helper function for switching the playing
7320         source.
7321         (rb_shell_player_do_previous): Check the queue, even though there's
7322         never a previous entry in it (yet), swap playing source if it changed.
7323         (rb_shell_player_do_next): Check the queue for entries to play before
7324         the normal play order, and swap playing source if it changed.
7325         (rb_shell_player_do_previous_or_seek): Check the queue for previous
7326         entries to go to as well.
7327         (rb_shell_player_playpause): Check the queue before the selection and
7328         the play order, and swap playing source if it changed.
7329         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
7330         (rb_shell_player_entry_activated_cb): Use
7331         rb_podcast_manager_entry_downloaded, do some tapdancing to make
7332         activating queue entries work properly (move the activated entry to
7333         the start of the queue and then play it); if we were playing from the
7334         queue, clear its playing entry so it'll start again from the start
7335         after the activated entry.
7336         (rb_shell_player_sync_buttons): MusicProperties action handler moved
7337         to rb-shell-clipboard.c
7338         (actually_set_playing_source): Add helper for updating the playing
7339         source.
7340         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
7341         signal if we stop or start doing so; use actually_set_playing_source; 
7342         emit playing-source-changed if we actually did change source.
7344         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
7345         rb_static_playlist_source_add_location.
7347         * sources/rb-library-source.c (rb_library_source_class_init): Allow
7348         enqueueing of songs from the library.
7350         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
7351         enqueueing of sonsg from playlists.
7352         (rb_playlist_source_entry_added_cb): Add extra parameter for
7353         rhythmdb_query_model_add_entry.
7354         
7355         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
7356         Implement (can_)add_to_queue for this class.
7357         (rb_podcast_source_entry_activated): Use
7358         rb_podcast_manager_entry_downloaded.
7359         (impl_can_add_to_queue): Return TRUE if at least one entry that has
7360         been downloaded is selected.
7361         (impl_add_to_queue): Only add downloaded entries to the queue.
7363         * sources/rb-source.{c,h}:
7364         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
7365         methods.
7366         (rb_source_class_init): Don't allow enqueueing by default; implement 
7367         add_to_queue though.
7368         (default_add_to_queue): Add all selected entries to the queue.
7369         
7370         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
7371         would be playing if there wasn't anything in the queue).
7372         (set_source_playing): Helper function for manipulating tree store.
7373         (rb_sourcelist_set_playing_source): Use set_source_playing
7374         (rb_sourcelist_preempt_playing_source): Update preempted source
7375         pointer, manipulate source states.
7377         * sources/rb-static-playlist-source.{c,h}:
7378         (rb_static_playlist_source_add_location_internal),
7379         (rb_static_playlist_source_add_location),
7380         (rb_static_playlist_source_add_entry): Add index parameter for
7381         specifying where in the playlist the new entry goes.
7382         (rb_static_playlist_source_new_from_xml), (impl_paste),
7383         (rb_static_playlist_source_add_list_uri),
7384         (rb_static_playlist_source_add_location_swapped),
7385         (rb_static_playlist_source_add_locations),
7386         (rb_static_playlist_source_non_entry_dropped),
7387         (rb_static_playlist_source_row_inserted):
7388         Handle new index parameter everywhere it appears
7389         (rb_static_playlist_source_move_entry): New method for moving entries
7390         around in the playlist.
7392         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
7393         warnings when trying to scroll entry views that have never been
7394         displayed.
7396         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
7397         play order that removes the old entry when switching to a new one.
7399         * sources/rb-play-queue-source.{c,h}: New files, implementing a
7400         static playlist subclass that has a second entry view for the sidebar
7401         view using alternate formatting, and that displays the number of
7402         entries it contains in its source list entry.
7404 2005-12-10  James Livingston  <jrl@ids.org.au>
7406         * rhythmdb/rhythmdb-query-model.c:
7407         (rhythmdb_query_model_add_entry),
7408         (rhythmdb_query_model_drag_data_received):
7409         * sources/rb-static-playlist-source.c:
7410         (rb_static_playlist_source_non_entry_dropped): when things are
7411         dropped, ignore any blank lines in the list of uris. Make the source
7412         responsible for adding new items to the db.
7414         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
7415         empty string.
7417 2005-12-10  James Livingston  <jrl@ids.org.au>
7419         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7420         (rb_shell_player_sync_buttons),
7421         (rb_shell_player_selection_changed_cb): watch for the
7422         "selection-changed" signal, so that the Song Properties get enabled.
7423         Closes bug 323694.
7425 2005-12-10  James Livingston  <jrl@ids.org.au>
7427         * data/rhythmbox.schemas: fix the gconf schema
7429 2005-12-10  James Livingston  <jrl@ids.org.au>
7431         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
7432         the decoded-pad callback with gstreamer 0.8, it causes problems.
7434 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
7436         Remove more junk from RBEntryView. Closes bug 323640.
7438         * widgets/rb-entry-view.{c,h}:
7439         Remove unused private structure members, replace 'playing' boolean
7440         with an enum (so we know if we're paused too), and store a pointer to
7441         the RBShellPlayer too.  
7442         (rb_entry_view_class_init), (rb_entry_view_set_property),
7443         (rb_entry_view_get_property):
7444         Remove 'entry-selected' and 'changed' signals and
7445         'playing-entry' property, add 'selection-changed' signal and
7446         'shell-player' and 'playing-state' properties.
7447         (rb_entry_view_new): Take the shell player object reference
7448         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
7449         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
7450         No longer needed, shell player is the place to get this information.
7451         (rb_entry_view_busy), (rb_entry_view_get_duration),
7452         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
7453         (rb_entry_view_get_next_from_entry),
7454         (rb_entry_view_get_previous_from_entry),
7455         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
7456         (rb_entry_view_get_num_entries):
7457         Removed, callers should go to the query model directly.
7458         (rb_entry_view_playing_song_changed): Update active query model, emit
7459         row changed signals to update pixbufs, and scroll to the playing song
7460         when the playing song changes, based on a signal from the shell
7461         player.
7462         (queue_changed_sig), (rb_entry_view_row_changed_cb),
7463         (emit_entry_changed): Evil, removed.
7464         (rb_entry_view_selection_changed_cb): Remove old signals, add new
7465         selection-changed signal.
7466         (rb_entry_view_select_none), (rb_entry_view_select_entry):
7467         Remove selection lock.  It didn't work anyway.
7468         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
7469         (rb_entry_view_emit_row_changed): Simple helper function to emit
7470         row-changed signals.
7472         * widgets/Makefile.am: Entry view needs headers from the shell/
7473         directory.
7474         * widgets/rb-song-info.{c,h}: Use the query model for everything except
7476         scrolling the entry view to show the entry being displayed.
7477         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
7478         'source' property so we can watch for query model changes.
7479         (rb_song_info_finalize): Unref objects, disconnect signal handlers
7480         (rb_song_info_set_property): Watch for query model changes, don't
7481         watch for entry view changes.
7482         (rb_song_info_new): Take source as a parameter, use the source's entry
7483         view unless one was specifically supplied.
7484         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
7485         Use query model rather than entry view to move between songs.
7486         (rb_song_info_update_buttons): Use query model.
7487         (rb_song_info_query_model_changed_cb): Handle query model changes.
7489         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
7490         Only one copy of the code to enable/disable the CD burning action
7491         (rb_playlist_manager_playlist_entries_changed):
7492         Use the query model to get the number of entries, not the entry view.
7494         * shell/rb-play-order-random-by-age-and-rating.c,
7495         shell/rb-play-order-random-by-age.c,
7496         shell/rb-play-order-random-by-rating.c,
7497         shell/rb-play-order-random-equal-weights.c:
7498         Use G_DEFINE_TYPE
7500         * shell/rb-shell-player.{c,h}:
7501         Remove a few unused entries from the structure.
7502         (rb_shell_player_set_property):
7503         Don't use the 'changed' signal on the entry view (it's evil)
7504         (rb_shell_player_have_first): No longer needed
7505         (rb_shell_player_play): Just tell the entry view it's playing
7506         (rb_shell_player_playpause): Tell the entry view it's paused
7507         when pausing.
7508         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
7509         (rb_shell_player_property_row_activated_cb):
7510         Get the entry to play using the query model, not the entry view.
7511         (rb_shell_player_sync_buttons): Update entry view state while we're
7512         here.
7513         (rb_shell_player_set_playing_source_internal): Update entry view state
7514         (rb_shell_player_get_playing): Ask the entry view, not the player.
7515         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
7516         and rb_shell_set_window_title work properly, so you get "(Paused)" in
7517         the window title and tray icon tooltip.
7518         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
7520         * sources/rb-iradio-source.c, sources/rb-library-source.c,
7521         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
7522         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
7523         view constructor, pass the source in to the song info widget
7524         constructor.
7526         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
7527         Use 'selection-changed' instead of 'changed', since that's what the
7528         clipboard cares about.
7529         (rb_shell_clipboard_set_source): Don't die if source == NULL
7531 2005-12-10  James Livingston  <jrl@ids.org.au>
7533         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
7534         * sources/rb-playlist-source-recorder.c:
7535         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
7536         stuff not use the deprecated API when compiled against 2.13
7538 2005-12-10  James Livingston  <jrl@ids.org.au>
7540         patch by: Alex Lancaster <alexl@users.sourceforge.net>
7542         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
7543         problem where the genre tag was getting set to the artist. Closes bug
7544         323642.
7546 2005-12-09  William Jon McCann  <mccann@jhu.edu>
7548         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
7549         Return NULL if can't get first iter.
7551         Fixes #323663
7553 2005-12-09  William Jon McCann  <mccann@jhu.edu>
7555         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
7556         updated rb_station_properties_dialog_new API.
7557         (rb_iradio_source_add_from_playlist): New public function.
7558         (rb_iradio_source_first_time_changed): Use add_from_playlist.
7560         * shell/rb-shell.c (new_station_location_added): Handle
7561         iradio location added signal.
7562         (rb_shell_cmd_new_station): Use new iradio station dialog.
7564         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
7565         (rb_station_properties_dialog_new): Don't squeeze new
7566         station functionality into this class.
7567         (rb_station_properties_dialog_response_cb): ditto.
7568         (rb_station_properties_dialog_update_title): Make
7569         consistent with other properties dialogs.
7570         (rb_station_properties_dialog_location_changed_cb): Do nothing.
7572         * iradio/rb-new-station-dialog.[ch]: 
7573         * iradio/Makefile.am: Add new station dialog.
7575         * data/glade/station-new.glade: New file based on
7576         new podcast feed dialog.
7577         * data/glade/station-properties.glade: Updated to
7578         be consistent with song properties dialog.
7580         Fixes #323306.
7582 2005-12-10  James Livingston  <jrl@ids.org.au>
7584         patch by: Ståle Lyngaas <staale@lyngaas.com>
7586         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
7587         submit songs longer than 30 minutes. Fixes bug 323639.
7589 2005-12-09  William Jon McCann  <mccann@jhu.edu>
7591         * shell/rb-shell.c (idle_save_playlist_manager): Use new
7592         async save function.
7593         (rb_shell_finalize): Remove save timeout sources.  Reorder
7594         steps a bit to make saving db and playlists a bit more
7595         failsafe in case something goes wrong later.
7596         (rb_shell_constructor): Keep track of save timeout source.
7597         (add_to_library_response_cb): Keep track of db save timeout source.
7599         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
7600         g_atomic.
7601         (rb_playlist_manager_shutdown): New function to shutdown
7602         threads etc. before exit.
7603         (rb_playlist_manager_finalize): Moved handling outstanding
7604         threads stuff to shutdown since if there are outstanding threads
7605         they hold a ref and finalize is never called.
7606         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
7607         of signal which may be required for sync save.
7608         (rb_playlist_manager_save_playlists_async): Renamed old
7609         save_playlists to save_playlists_async.  Use g_atomic.
7610         (rb_playlist_manager_save_playlists): New function to
7611         perform sync saves (symmetric with RhythmDB API).
7612         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
7614         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
7615         Style consistency anality.
7616         (rhythmdb_finalize): Remove save timeout source.
7617         (rhythmdb_set_property, rhythmdb_get_property) 
7618         (rhythmdb_process_events): More anality and keep track of
7619         save timeout source.
7620         (action_thread_main): No need to call g_thread_exit.
7621         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
7622         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
7623         (write_encoded_gvalue, read_encoded_property): La la la.
7625         Fixes #322940.
7627 2005-12-10  James Livingston  <jrl@ids.org.au>
7629         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
7630         non-audio files.
7632 2005-12-10  James Livingston  <jrl@ids.org.au>
7634         * Makefile.am:
7635         * configure.ac: remove the rpm spec files, so that automake works.
7636         oops
7638         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
7639         locking issue
7641 2005-12-09  James Livingston  <jrl@ids.org.au>
7643         * debian/: try to get cvs to actually remove the files
7645 2005-12-09  James Livingston  <jrl@ids.org.au>
7647         * rhythmbox.spec.in:
7648         * debian/: remove the distro package stuff, they are *really* old, and
7649         downstream manage it anyway.
7651 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
7653         Rework play orders to work off query models rather than 
7654         entry views, and track the playing entry themselves rather
7655         than relying on the entry view to do it.  This makes the entry
7656         view mostly just a widget. Closes bug 323612.
7658         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
7659         Use query model rather than entry view to get the number
7660         of entries in playlists.
7662         * rhythmdb/rhythmdb-query-model.{c.h}
7663         (rhythmdb_query_model_tree_path_to_entry),
7664         (rhythmdb_query_model_iter_to_entry),
7665         (rhythmdb_query_model_get_next_from_entry),
7666         (rhythmdb_query_model_get_previous_from_entry):
7667         New utility functions for iterating through query models.
7668         (rhythmdb_query_model_compute_status_normal):
7669         Have one copy of this code, not four.
7671         * shell/rb-play-order.{c,h}:
7672         Add signals for when next/previous availability changes, and
7673         when the playing entry is removed, and add a property for
7674         the current playing entry.  Add gtkdoc comments too.
7675         (rb_play_order_class_init): Add new property and signals.
7676         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
7677         (rb_play_orer_query_model_changed_cb),
7678         (rb_play_order_query_model_changed): 
7679         Use query model rather than entry view.
7680         (rb_play_order_set_property), (rb_play_order_get_property):
7681         Handle new playing-entry property.  Call playing_entry_changed virtual
7682         method so subclasses can do any processing required.
7683         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
7684         (rb_play_order_set_playing_entry):
7685         Just use the playing-entry property.
7686         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
7687         Utility methods for subclasses.
7688         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
7689         Update next/previous availability, check if the playing entry
7690         was removed.
7691         (default_playing_entry_removed):
7692         Keep the current behaviour of just stopping playback when the 
7693         playing entry is deleted.
7694         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
7695         these for subclasses that don't have go_next/go_previous, but do
7696         have get_next/get_previous.
7697         (rb_play_order_update_have_next_previous): Emit signal if the
7698         availability of next/previous entries has changed.
7700         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
7701         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
7702         Use G_DEFINE_TYPE, replace entry view iterator with query model 
7703         methods.
7704         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
7705         on the last song in the shuffled order, go back to the start. This
7706         means if you press 'play' again you'll get the whole order again, not
7707         just one song.
7709         * shell/rb-shell-player.c:
7710         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
7711         play order rather than the entry view.
7712         (rb_shell_player_set_property): Update the play order when the
7713         selected source changes and we aren't playing anything.
7714         (rb_shell_player_sync_play_order): Copy the playing entry across to
7715         the new play order so playback continues from the same song, and watch
7716         for updates to have_next/have_previous.
7717         (rb_shell_player_play_order_update_cb): Enable/disable the
7718         next/previous actions when next/previous entry availability changes.
7719         (rb_shell_player_jump_to_current): Just use the play order's idea of
7720         what's playing, not the entry view's; if not playing anything, clear
7721         the selection, so when a playlist ends and you hit play again, it'll
7722         start at the start rather than the end.
7723         (rb_shell_player_do_previous): restructure a bit.
7724         (rb_shell_player_do_next): restructure, jump to new playing entry in
7725         an idle handler instead of directly.
7726         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
7727         song if there is one.
7728         (rb_shell_player_playpause): Jump to playing song, don't update the
7729         play order if we got the song from the selection.
7730         (rb_shell_player_playing_entry_deleted_cb): Not needed.
7731         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
7732         looks after next/previous actions now.  Don't break if called while
7733         there is no selected source.
7734         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
7735         (rb_shell_player_set_playing_source_internal),
7736         (rb_shell_player_error): No need to track the attempted playing entry
7737         any more, since the play order does that.
7739         * shell/rb-shell.c:
7740         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
7741         rb_shell_player_get_playing_entry rather than going through the entry
7742         view.
7744         * shell/rb-statusbar.c (rb_statusbar_set_property),
7745         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
7746         than the entry view for status bar text changes.
7747         (rb_statusbar_sync_status): Ask the query model directly
7749         * sources/rb-source.{c}: Add query model property.
7750         (default_get_status): Get status text from query model, should be
7751         suitable for most sources.
7752         (rb_source_set_property): Listen for changes to the query model 
7753         to update the status text.
7754         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
7755         (idle_emit_status_changed): Emit status-changed signals when query
7756         model changes. 
7758         * sources/rb-library-source.c, sources/rb-podcast-source.c:
7759         (impl_get_status): Not needed, RBSource does this now
7760         (rb_library_source_do_query) (rb_podcast_source_do_query): 
7761         Update RBSource's query model reference.
7763         * sources/rb-playlist-source.c:
7764         Remove query-model property, since RBSource has one now
7765         (impl_get_status): Not needed, RBSource does this now
7766         (rb_playlist_source_row_deleted): Use query model iterator helper
7767         function.
7768         (rb_playlist_source_set_query_model): Update RBSource's query model
7769         reference too.
7771         * sources/rb-iradio-source.c:
7772         (impl_get_status): Ask the query model directly.
7773         (rb_iradio_source_do_query): Update RBSource's query model reference
7774         when we create a new query.
7776         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
7777         Use query model rather than entry view.
7779         * widgets/rb-entry-view.{c,h}: 
7780         Remove playing_entry_deleted signal (now in play order).
7781         (entry_from_tree_path), (entry_from_tree_iter): Not needed
7782          as RhythmDBQueryModel has equivalent helper functions.
7783         (rb_entry_view_*): Use query model helpers instead of the above two
7784         functions.
7786 2005-12-09  James Livingston  <jrl@ids.org.au>
7788         * configure.ac:
7789         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
7790         (rb_recorder_enabled):
7791         * shell/rb-removable-media-manager.c: (poll_tray_opened):
7792         * sources/rb-playlist-source-recorder.c:
7793         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
7794         whether libnautilusburn has the _drive_unref function, and if so use
7795         it. Stops it complaining about deprecated API.
7797 2005-12-09  James Livingston  <jrl@ids.org.au>
7799         * configure.ac: drop the minimum gstreamer version back down, it
7800         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
7802 2005-12-09  James Livingston  <jrl@ids.org.au>
7804         * widgets/rb-song-info.c: (rb_song_info_class_init),
7805         (rb_song_info_show), (rb_song_info_constructor),
7806         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
7807         (rb_song_info_forward_clicked_cb): save metadata changes when the
7808         Next/Previous buttons are pressed (closes bug 320952). use
7809         G_DEFINE_TYPE.
7811 2005-12-09  James Livingston  <jrl@ids.org.au>
7813         Patch by: <jonathan@kaolin.hn.org>
7815         * sources/rb-iradio-source.c:
7816         (stations_view_drag_data_received_cb):
7817         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
7818         of urls. Fixes bug 323610.
7820 2005-12-09  James Livingston  <jrl@ids.org.au>
7822          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
7823          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
7825         * configure.ac:
7826         * metadata/rb-metadata-gst.c:
7827         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
7828         (rb_player_construct), (rb_player_new):
7829         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
7830         (rb_recorder_gst_signal_error), (pipe_message),
7831         (rb_recorder_new_pad_cb), (rb_recorder_construct),
7832         (rb_recorder_new):
7833         * shell/main.c: (main):
7834         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
7835         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
7837 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
7839         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
7841         * shell/rb-playlist-manager.c:
7842           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
7843           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
7844           (rb_playlist_manager_set_automatic_playlist),
7845           (rb_playlist_manager_cmd_new_automatic_playlist),
7846           (rb_playlist_manager_cmd_edit_automatic_playlist):
7847            Use new playlist subclasses.
7848           (rb_playlist_manager_save_playlists): Only read the dirty flag
7849            for local playlists, minor pointless reformatting
7851         * sources/Makefile.am: add new files
7853         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
7854           split lots of stuff out into two
7855           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
7856           make RBPlaylistSource abstract, add virtual methods for showing a
7857           popup for the entry view and saving the playlist to XML.
7858           Other stuff is subclass-specific, or already virtual in RBSource.
7860         * sources/rb-playlist-xml: Define playlist XML tags and attributes
7861           in one place, since they're used across three source files now
7863         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
7864           Use new static playlist class
7866         * sources/rb-ipod-source.c: (add_rb_playlist):
7867           Use new static playlist class
7869         * sources/rb-static-playlist-source.{c,h},
7870         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
7871         files.
7873         * po/POTFILES.in: add new files
7875 2005-12-07  James Livingston  <jrl@ids.org.au>
7877         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
7878         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
7879         metadata loads not attempt to write changes to disk.
7881 2005-12-07  James Livingston  <jrl@ids.org.au>
7883         patch by: Alex Lancaster <alexl@users.sourceforge.net>
7885         * data/glade/song-info-multiple.glade:
7886         * widgets/rb-song-info.c: (rb_song_info_constructor),
7887         (rb_song_info_sync_entries_multiple): allow the year to be changed on
7888         multiple songs at once.
7890 2005-12-06  James Livingston  <jrl@ids.org.au>
7892         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
7893         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
7895 2005-12-06  James Livingston  <jrl@ids.org.au>
7897         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
7898         names rather than adding a horizontal scroll bar.
7900 2005-12-06  James Livingston  <jrl@ids.org.au>
7902         * rhythmdb/rhythmdb-query-model.c:
7903         (rhythmdb_query_model_update_limited_entries),
7904         (rhythmdb_query_model_drag_data_received): remove some pointless debug
7905         messages
7907         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
7908         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
7909         always hide rather than remove DB entries, which will make RB not lose
7910         information when tag editing happens or people move files to trash and
7911         then change their mind. Also fix some races where the monitoring code
7912         would notice the temporary files generated by saving metadata.
7914 2005-12-05  William Jon McCann  <mccann@jhu.edu>
7916         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
7917         Hide internals and add tooltips.
7918         (rb_song_display_box_size_allocate): Hide internals.
7919         (sanitize_string, info_url): Copied from rb-header.
7920         (rb_song_display_box_sync): New public function.
7922         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
7923         (rb_header_init): Use a separate row for the seek bar.
7924         (rb_header_finalize): Don't unref widgets.
7925         (rb_header_sync): Use rb_song_display_box_sync.
7926         (rb_header_set_urldata)
7927         (rb_header_set_show_artist_album): Hide instead of remove widgets.
7928         (rb_header_set_show_position_slider): Set visibility of seek bar.
7929         (rb_header_set_show_timeline): Set sensitivity of seek bar.
7930         (rb_header_get_elapsed_string): Don't shift when you first start playback.
7932         * shell/rb-statusbar.c (rb_statusbar_init)
7933         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
7935         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
7936         (rb_shell_constructor): Remove hseparator.  Monitor
7937         toolbar visibility settings.  Add toolbar.  Add
7938         volume button to toolbar.  Add tooltips for volume button.
7939         (rb_shell_view_toolbar_changed_cb) 
7940         (rb_shell_sync_toolbar_visibility)
7941         (toolbar_visibility_changed_cb): Set visibility of
7942         toolbar.
7943         (rb_shell_sync_smalldisplay): Set the toolbar style to
7944         icons only when in small display mode.
7945         (rb_shell_volume_widget_changed_cb): Save volume setting.
7947         * shell/rb-shell-player.c (rb_shell_player_constructor):
7948         Remove pause and stop actions.  Make play action "important"
7949         so that text is visible in horizontal toolbar position.
7950         Remove control buttons.
7951         (rb_shell_player_init) 
7952         (rb_shell_player_sync_song_position_slider_visibility):
7953         Set visbibility of seek bar.
7954         (rb_shell_player_cmd_play, rb_shell_player_playpause):
7955         Make play action a toggle.
7956         (rb_shell_player_sync_volume): Volume control moved
7957         to player.
7958         (gconf_song_position_slider_visibility_changed):
7959         Set visbibility of seek bar.
7960         (rb_shell_player_sync_buttons):
7961         Set sensitivity of actions instead of buttons.
7962         (rb_shell_player_playing_changed_cb): Add callback
7963         for player notify::playing changes.
7965         * lib/rb-preferences.h: Add hide toolbar and seek
7966         bar key names.
7968         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
7969         seek bar menu items.  Remove pause and stop actions
7970         from the control menu.  Add a toolbar.
7972         * data/rhythmbox.schemas: Add toolbar_hidden
7973         song_position_slider_hidden keys.
7975         Patch by: James Livingston  <jrl@ids.org.au>
7976                   William Jon McCann  <mccann@jhu.edu>
7977         Fixes #316238.
7979 2005-12-05  James Livingston  <jrl@ids.org.au>
7981         * data/glade/library-prefs.glade:
7982         * data/rhythmbox.schemas:
7983         * lib/rb-preferences.h:
7984         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
7985         (rhythmdb_sync_library_location):
7986         * sources/rb-library-source.c: (rb_library_source_class_init),
7987         (rb_library_source_finalize), (rb_library_source_constructor),
7988         (impl_get_config_widget), (rb_library_source_preferences_sync),
7989         (rb_library_source_watch_toggled_cb): allow people to disable library
7990         monitoring, because with nothing set the file chooser button selects
7991         the Home folder (and hence that will get monitored).
7993 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
7995         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
7996         attempt to fix problem with RSS parsing showing invalid feed types.
7997         Fixes bug 323153
7999 2005-12-04  James Livingston  <jrl@ids.org.au>
8001         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
8002         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
8003         importing a remote directory not block the UI.
8005 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
8007         * data/glade/podcast-feed-properties.glade:
8008         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
8010 2005-12-04  James Livingston  <jrl@ids.org.au>
8012         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
8014         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
8015         to && to fix a mistake in the earlier podcast patch.
8017 2005-12-03  James Livingston  <jrl@ids.org.au>
8019         * data/glade/podcast-new.glade:
8020         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
8021         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
8023         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
8024         GValue, which stops occasional errors.
8026         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
8027         compile issue.
8029 2005-12-03  James Livingston  <jrl@ids.org.au>
8031         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
8033         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
8034         crasher with some podcasts feeds.
8036 2005-12-03  James Livingston  <jrl@ids.org.au>
8038         * data/rhythmbox.schemas: fix the gconf schema
8040 2005-12-03  James Livingston  <jrl@ids.org.au>
8042         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
8043         add a selection timeout to the sourcelist. This lets you hold a track
8044         over the playlist source, and then have the view switch so you can
8045         insert the track in the middle of the playlist. Closes bug 323044.
8047         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
8048         (select_on_drag_timeout), (remove_select_on_drag_timeout),
8049         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
8050         (rb_tree_dnd_add_drag_dest_support):
8051         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
8052         timeout.
8054         * sources/rb-sourcelist-model.c:
8055         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
8056         the source list.
8058 2005-12-02  Bastien Nocera  <hadess@hadess.net>
8060         * data/glade/audioscrobbler-prefs.glade: add a space before the web
8061         links, so that the text doesn't touch the button
8063 2005-12-02  James Livingston  <jrl@ids.org.au>
8065         Add full support for gnome-vfs remote files. Closes bug 140355.
8067         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
8068         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
8069         for authentication information from the user doesn't block the UI.
8071         (rhythmdb_entry_set_visibility): don't emit the signal twice.
8073         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
8074         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
8075         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
8076         (rhythmdb_process_stat_event), (emit_load_error_idle),
8077         (rhythmdb_process_metadata_load),
8078         (rhythmdb_process_queued_entry_set_event),
8079         (rhythmdb_process_file_created_or_modified),
8080         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
8081         (queue_stat_uri), (add_thread_main),
8082         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
8083         (rhythmdb_load), (rhythmdb_save_thread_main),
8084         (threadsafe_entry_set), (rhythmdb_query_internal),
8085         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
8086         (rhythmdb_do_full_query_internal),
8087         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
8088         (rhythmdb_volume_unmounted_cb),
8089         (rhythmdb_check_changed_file): trivial changes to support the
8090         asynchronous stats.
8092         * shell/main.c: (main): activate the authentication manager.
8094         * shell/rb-playlist-manager.c:
8095         (rb_playlist_manager_cmd_load_playlist),
8096         (rb_playlist_manager_cmd_save_playlist):
8097         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
8098         (rb_shell_cmd_add_file_to_library):
8099         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
8100         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
8101         remote files.
8103 2005-12-02  James Livingston  <jrl@ids.org.au>
8105         * shell/rb-playlist-manager.c: makes playlist menu items use the
8106         elipses correctly. Fixes bug 322283.
8108 2005-12-02  James Livingston  <jrl@ids.org.au>
8110         * shell/rb-playlist-manager.c:
8111         (rb_playlist_manager_load_playlists): fix silly mistake
8113 2005-12-02  James Livingston  <jrl@ids.org.au>
8115         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
8116         print out metadata-write unless --debug was passed.
8118         * rhythmdb/rhythmdb.c: (rhythmdb_load):
8119         * shell/rb-playlist-manager.c:
8120         (rb_playlist_manager_load_playlists): block writes to disk if they are
8121         still being loaded.
8123 2005-12-02  James Livingston  <jrl@ids.org.au>
8125         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
8126         ctrl-T, because Ctrl-D is used by "small mode"
8128 2005-12-02  James Livingston  <jrl@ids.org.au>
8130         * shell/rb-shell-preferences.c:
8131         (rb_shell_preferences_append_view_page):
8132         * sources/rb-library-source.c: (impl_get_config_widget):
8133         * sources/rb-podcast-source.c: (impl_get_config_widget):
8134         * sources/rb-source.c: (rb_source_get_config_widget):
8135         * sources/rb-source.h: Make the preference actually work.
8137         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
8138         if Rhythmbox is being run for the first time.
8140 2005-12-02  James Livingston  <jrl@ids.org.au>
8142         Add support for Rhythmbox to watch your library, and automatically add
8143         new tracks. Fixes bug 160159.
8145         * data/glade/library-prefs.glade: add "library location" preference
8146         * data/rhythmbox.schemas: add gconf key for the library location
8148         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
8149         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
8150         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
8151         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
8152         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
8153         (rhythmdb_load_thread_main), (rhythmdb_load),
8154         (monitor_subdirectory), (monitor_library_directory),
8155         (monitor_entry_file), (rhythmdb_sync_library_location),
8156         (library_location_changed_cb), (rhythmdb_check_changed_file),
8157         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
8158         specifiec in the gconf key for new additions. Also fix monitoring code
8159         so that it works properly, and notices deletions.
8161         * lib/rb-preferences.h:
8162         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
8163         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
8164         * shell/rb-audioscrobbler.h:
8165         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
8166         (rb_shell_preferences_append_view_page),
8167         (rb_shell_preferences_new):
8168         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
8169         it's preferences pane, so that we don't need #ifdef's through
8170         rb-shell-preferences.
8172         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
8173         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
8174         "preferences" property, so that sources can acccess it. This is needed
8175         because the library location pref needs to take effect when the window
8176         is closed.
8178         * sources/rb-library-source.c:
8179         (rb_library_source_library_location_changed),
8180         (rb_library_source_dispose), (rb_library_source_finalize),
8181         (rb_library_source_constructor), (impl_get_config_widget),
8182         (rb_library_source_preferences_sync),
8183         (rb_library_source_process_library_location_change),
8184         (rb_library_source_prefs_update),
8185         (rb_library_source_process_library_handle_selection),
8186         (rb_library_source_library_location_cb): set up and control the
8187         "library location" preference.
8189         * sources/rb-audiocd-source.c:(rb_source_class_init):
8190         * sources/rb-source.c: (rb_source_class_init): remove some pointless
8191         code.
8193 2005-12-01  William Jon McCann  <mccann@jhu.edu>
8195         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
8196         (rb_feed_podcast_properties_dialog_update_title): 
8197         * data/glade/podcast-feed-properties.glade:
8198         Make the feed properties dialog consistent with the podcast
8199         properties dialog.
8201 2005-12-01  William Jon McCann  <mccann@jhu.edu>
8203         * metadata/.cvsignore: 
8204         * po/.cvsignore: 
8205         * podcast/.cvsignore: Updated.
8207         * shell/main.c (main): Support DBus 0.6 flags.
8209 2005-11-30  Bastien Nocera  <hadess@hadess.net>
8211         * data/ui/rhythmbox-ui.xml:
8212         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
8213         (rhythmbd_entry_move_to_trash_set_error),
8214         (rhythmdb_entry_move_to_trash):
8215         * rhythmdb/rhythmdb.h:
8216         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
8217         (rb_shell_clipboard_cmd_delete),
8218         (rb_shell_clipboard_cmd_move_to_trash):
8219         * sources/rb-library-source.c: (rb_library_source_class_init),
8220         (impl_delete), (impl_move_to_trash):
8221         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
8222         (impl_delete), (impl_move_to_trash):
8223         * sources/rb-removable-media-source.c:
8224         (rb_removable_media_source_class_init):
8225         * sources/rb-source.c: (rb_source_class_init),
8226         (rb_source_can_move_to_trash), (rb_source_delete),
8227         (rb_source_move_to_trash):
8228         * sources/rb-source.h:
8229         Add move_to_trash member for the sources, implement move to trash for
8230         the library and playlists
8231         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
8232         local files to the trash, and deleting them from the database
8233         (Closes: #315389)
8235 2005-11-30  William Jon McCann  <mccann@jhu.edu>
8237         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
8238         (rb_tray_icon_init, rb_tray_icon_finalize): 
8239         * shell/rb-statusbar.c (rb_statusbar_class_init) 
8240         (rb_statusbar_init, rb_statusbar_finalize): 
8241         * shell/rb-source-header.c (rb_source_header_class_init) 
8242         (rb_source_header_init, rb_source_header_finalize): 
8243         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
8244         (rb_shell_finalize): 
8245         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
8246         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
8247         * shell/rb-shell-player.c (rb_shell_player_class_init) 
8248         (rb_shell_player_init, rb_shell_player_finalize): 
8249         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
8250         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
8251         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
8252         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
8253         * shell/rb-play-order.c (rb_play_order_class_init) 
8254         (rb_play_order_init, rb_play_order_finalize): 
8255         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
8256         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
8257         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
8258         (rb_random_play_order_init, rb_random_play_order_finalize): 
8259         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
8260         (rb_history_finalize): 
8261         * shell/rb-commander.c (rb_commander_class_init) 
8262         (rb_commander_init, rb_commander_finalize): 
8263         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
8264         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
8265         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
8266         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
8267         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
8268         (rb_podcast_properties_dialog_init) 
8269         (rb_podcast_properties_dialog_finalize): 
8270         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
8271         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
8272         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
8273         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
8274         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
8275         (rb_feed_podcast_properties_dialog_init) 
8276         (rb_feed_podcast_properties_dialog_finalize): 
8277         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
8278         (rb_metadata_init, rb_metadata_finalize): 
8279         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
8280         (rb_station_properties_dialog_init) 
8281         (rb_station_properties_dialog_finalize): 
8282         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
8283         (rb_daap_share_init, rb_daap_share_dispose): 
8285         Use g_type_class_add_private in all classes. Closes bug 313688.
8286         
8287 2005-11-30  James Livingston  <jrl@ids.org.au>
8289         patch by: William Jon McCann <mccann@jhu.edu> to use
8290         g_type_class_add_private in all classes. Closes bug 313688.
8292         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
8293         (rb_thread_finalize):
8294         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
8295         (rb_player_finalize):
8296         * rhythmdb/rhythmdb-property-model.c:
8297         (rhythmdb_property_model_class_init),
8298         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
8299         * rhythmdb/rhythmdb-query-model.c:
8300         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
8301         (rhythmdb_query_model_finalize):
8302         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
8303         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
8304         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
8305         (rhythmdb_finalize):
8306         * sources/rb-daap-source.c: (rb_daap_source_class_init),
8307         (rb_daap_source_init), (rb_daap_source_dispose):
8308         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
8309         (rb_iradio_source_init), (rb_iradio_source_finalize):
8310         * sources/rb-library-source.c: (rb_library_source_class_init),
8311         (rb_library_source_init), (rb_library_source_finalize):
8312         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
8313         (rb_playlist_source_init), (rb_playlist_source_dispose):
8314         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
8315         (rb_podcast_source_init), (rb_podcast_source_finalize):
8316         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
8317         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
8318         * sources/rb-sourcelist-model.h:
8319         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
8320         (rb_sourcelist_init), (rb_sourcelist_finalize):
8321         * sources/rb-sourcelist.h:
8322         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
8323         * widgets/rb-cell-renderer-rating.c:
8324         (rb_cell_renderer_rating_init),
8325         (rb_cell_renderer_rating_class_init),
8326         (rb_cell_renderer_rating_finalize):
8327         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
8328         (rb_druid_finalize):
8329         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8330         (rb_entry_view_init), (rb_entry_view_finalize):
8331         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
8332         (rb_header_finalize):
8333         * widgets/rb-load-failure-dialog.c:
8334         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
8335         (rb_load_failure_dialog_finalize):
8336         * widgets/rb-property-view.c: (rb_property_view_class_init),
8337         (rb_property_view_init), (rb_property_view_finalize):
8338         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
8339         (rb_rating_finalize):
8340         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
8341         (rb_search_entry_init), (rb_search_entry_finalize):
8342         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
8343         (rb_simple_view_init), (rb_simple_view_finalize):
8344         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
8345         (rb_song_display_box_init), (rb_song_display_box_finalize):
8346         * widgets/rb-song-info.c: (rb_song_info_class_init),
8347         (rb_song_info_init), (rb_song_info_finalize):
8348         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
8349         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
8351 2005-11-30  James Livingston  <jrl@ids.org.au>
8353         * iradio/rb-station-properties-dialog.c:
8354         (rb_station_properties_dialog_init),
8355         (rb_station_properties_dialog_new):
8356         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
8357         * lib/rb-glade-helpers.h:
8358         * podcast/rb-feed-podcast-properties-dialog.c:
8359         (rb_feed_podcast_properties_dialog_init),
8360         (rb_feed_podcast_properties_dialog_new):
8361         * podcast/rb-podcast-properties-dialog.c:
8362         (rb_podcast_properties_dialog_init),
8363         (rb_podcast_properties_dialog_new):
8364         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
8365         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
8366         * sources/rb-library-source.c: (impl_get_config_widget):
8367         * sources/rb-playlist-source-recorder.c:
8368         (rb_playlist_source_recorder_init):
8369         * widgets/rb-song-info.c: (rb_song_info_construct_single),
8370         (rb_song_info_constructor): create a single rb_glade_boldify_label()
8371         in rb-glade-helpers, rather than having eight implementation
8372         throughout the code.
8374 2005-11-30  James Livingston  <jrl@ids.org.au>
8376         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
8377         * lib/rb-util.h:
8378         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
8379         move the duration->string function into rb-utils, as it gets used in a
8380         few places.
8382         patch by: William Jon McCann <mccann@jhu.edu>
8384         * data/glade/podcast-properties.glade:
8385         * podcast/rb-podcast-properties-dialog.c:
8386         (rb_podcast_properties_dialog_init),
8387         (rb_podcast_properties_dialog_update),
8388         (rb_podcast_properties_dialog_update_title),
8389         (rb_podcast_properties_dialog_update_feed),
8390         (rb_podcast_properties_dialog_update_duration),
8391         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
8392         info dialog look more like the song info dialog. Use the same "Feed"
8393         value that is displayed in the treeview (ie. the album field), displays
8394         the duration, uses units in the bitrate field, and sort the fields in
8395         the same order.
8397 2005-11-29  James Livingston  <jrl@ids.org.au>
8399         * rhythmdb/rhythmdb-marshal.list:
8400         * rhythmdb/rhythmdb.h:
8401         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
8402         (emit_load_error_idle), (rhythmdb_process_metadata_load),
8403         (entry_to_rb_metadata), (emit_save_error_idle),
8404         (action_thread_main): emit error signal when metadata write fails.
8406         * shell/rb-shell.c: (rb_shell_constructor),
8407         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
8408         "metadata save" error and display it to the user.
8410 2005-11-29  James Livingston  <jrl@ids.org.au>
8412         * data/ui/rhythmbox-ui.xml:
8413         * sources/rb-podcast-source.c:
8414         (rb_podcast_source_songs_show_popup_cb),
8415         (rb_podcast_source_cmd_download_post),
8416         (rb_podcast_source_cmd_cancel_download): split download and cancel
8417         download commands. Replace usage of "Post" with "Esisode". Fixes bug
8418         321653.
8420 2005-11-18  William Jon McCann  <mccann@jhu.edu>
8422         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
8423         title on alert dialogs per the HIG.
8425         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
8426         the term Burn.
8427         (free_song_list): Routine to free song list.
8428         (rb_playlist_source_recorder_finalize): Use free_song_list.
8429         (rb_playlist_source_recorder_add_from_model): Return FALSE
8430         if unable to add all songs.  Check that duration of all
8431         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
8432         Fixes #321753.
8434         * sources/rb-playlist-source-recorder.c (check_media_length)
8435         (rb_playlist_source_recorder_start): Only check the duration
8436         and current media if the playlist length is longer than a
8437         standard CD (74 min).  Otherwise, just let the Recorder do the
8438         check.
8439         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
8440         drive at init.
8441         (rb_recorder_set_device): Don't leak drives.
8442         (rb_recorder_get_media_length): Use drive that was already set.
8443         (rb_recorder_burn): Let the recorder handle checking media type/size.
8444         Fixes bug 321754.
8446 2005-11-29  James Livingston  <jrl@ids.org.au>
8448         * rhythmdb/rhythmdb-query-model.c:
8449         (rhythmdb_query_model_set_sort_order):
8450         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
8451         emitting the tree-model "resorted" signal.
8453         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8454         (rb_entry_view_finalize), (rb_entry_view_set_property),
8455         (rb_entry_view_constructor), (rb_entry_view_resort_model):
8456         * widgets/rb-entry-view.h: add a function to resort the entry view,
8457         using the above function.
8459         * sources/rb-iradio-source.c:
8460         (rb_iradio_source_songs_view_sort_order_changed_cb):
8461         * sources/rb-library-source.c: (rb_library_source_finalize),
8462         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
8463         * sources/rb-playlist-source.c:
8464         (rb_playlist_source_songs_sort_order_changed_cb):
8465         * sources/rb-podcast-source.c:
8466         (rb_podcast_source_posts_view_sort_order_changed_cb),
8467         (rb_podcast_source_do_query): use the above function instead of
8468         re-creating the query model. This makes changing the sorting an order
8469         of magnitude faster, as it uses a single resorted signal rather than
8470         deleting and re-adding everything (which emits 2N signals). Closes bug
8471         315389.
8473 2005-11-29  James Livingston  <jrl@ids.org.au>
8475         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
8476         autosizing, which results in large speedups. Closes bug 312122.
8478         * po/ja.po: change the date format, so that it is a constant width
8480         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8481         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8482         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
8483         (rb_entry_view_constructor): make columns use fixed widths,
8484         disable column autosizing, and enable fixed-height mode.
8486         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
8487         (rb_entry_view_get_time_date_column_sample):
8488         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
8489         and get the canonical date format for the locale.
8491 ============ Version 0.9.2
8493 2005-11-28  James Livingston  <jrl@ids.org.au>
8495         * configure.ac: bump version to 0.9.2
8496         * NEWS: update with changes for 0.9.2
8498 2005-11-28  James Livingston  <jrl@ids.org.au>
8500         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
8502         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
8503         Disable saving, renaming and delting for DAAP playlists.
8504         Fixes bug 322627.
8506 2005-11-28  James Livingston  <jrl@ids.org.au>
8508         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
8509         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
8510         prevent bug 322619.
8512         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
8513         * sources/rb-removable-media-source.c:
8514         (rb_removable_media_source_class_init): fix ipod browser visibility
8515         problem.
8517 2005-11-28  James Livingston  <jrl@ids.org.au>
8519         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
8520         Avahi 0.6 support actually work. Fixes bug 322519.
8522 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
8524         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
8525         avahi is specified in --with-mdns
8527 2005-11-27  James Livingston  <jrl@ids.org.au>
8529         patch by: Bastien Nocera <hadess@hadess.net>
8531         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
8532         not the private one. Fixes bug 322485.
8534 2005-11-26  James Livingston  <jrl@ids.org.au>
8536         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
8537         Avahi 0.6, as well as 0.5.
8539         * configure.ac:
8540         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
8541         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
8542         (add_service):
8544 2005-11-25  James Livingston  <jrl@ids.org.au>
8546         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
8547         321926.
8549 2005-11-25  James Livingston  <jrl@ids.org.au>
8551         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
8552         correct type for checking the date against 0. Stops a warning when
8553         saving metadata.
8555 2005-11-25  James Livingston  <jrl@ids.org.au>
8557         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
8558         adjustment to be inside the element's limits. Without this songs that
8559         have large ReplayGain values will recieve no increase because they are
8560         outside the acceptable range, causing them to remain quiet.
8562 2005-11-25  James Livingston  <jrl@ids.org.au>
8564         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
8565         * sources/rb-daap-source.c: (rb_daap_source_class_init):
8566         * sources/rb-ipod-source.c:
8567         * sources/rb-source.h:
8568         * sources/rb-library-source.h:
8569         * sources/rb-library-source.c: (rb_library_source_class_init),
8570         (rb_library_source_constructor),
8571         (rb_library_source_has_first_added_column),
8572         (rb_library_source_has_drop_support):
8573         * sources/rb-removable-media-source.c:
8574         (rb_removable_media_source_class_init): Make library-derived sources
8575         not show the Date Added column, as it doesn't make sense. Fixes bug
8576         322269.
8577         Move some of the feature funcs from the ipod and audio cd sources up to
8578         the removable media source.
8580 2005-11-24  James Livingston  <jrl@ids.org.au>
8582         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
8583         errors. oops.
8585 2005-11-24  James Livingston  <jrl@ids.org.au>
8587         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
8588         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
8589         (rb_iradio_source_constructor): Chain up dispose method and use
8590         G_DEFINE_TYPE
8592 2005-11-24  James Livingston  <jrl@ids.org.au>
8594         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
8595         mistake in the last commit that can cause crashes.
8597 2005-11-24  James Livingston  <jrl@ids.org.au>
8599         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
8600         instead of g_printerr.
8602         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
8603         rb_debug instead of g_warning. The message happens every time for
8604         removable media/daap shares, so it's not unusual.
8606 2005-11-24  James Livingston  <jrl@ids.org.au>
8608         patch by: Tom Parker <palfrey@tevp.net>
8610         * configure.ac: fix libsoup test for enabling daap
8612 2005-11-23  James Livingston  <jrl@ids.org.au>
8614         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
8615         (rb_query_creator_init), (rb_query_creator_constructor),
8616         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
8617         empty row to queries with no criteria. Fixes bug 322078. use
8618         G_DEFINE_TYPE.
8620 2005-11-23  James Livingston  <jrl@ids.org.au>
8622         patch by:  <baptiste.millemathias@gmail.com>
8624         * help/C/quick-reference.xml: update the quick reference to have the
8625         correct key bindings.
8627 2005-11-22  James Livingston  <jrl@ids.org.au>
8629         * sources/rb-library-source.c: (genres_selection_reset_cb),
8630         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
8631         reset the query when all browser selections are removed.
8633 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
8635         * podcast/rb-podcast-manager.c:
8636         (rb_podcast_manager_db_entry_deleted_cb):
8637         Use a custom loop to remove podcast posts, rather than
8638         gtk_tree_model_foreach(), as deleting the entries within
8639         that loop causes the iterator to return the first entry
8640         twice.  Instead, we need to find the next entry before
8641         removing the current one. Fixes bug 321956.
8642         (rb_podcast_manager_entry_remove_cb): No longer needed.
8644 2005-11-22  James Livingston  <jrl@ids.org.au>
8646         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
8647         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
8648         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
8650 2005-11-22  James Livingston  <jrl@ids.org.au>
8652         * sources/rb-podcast-source.c:
8653         (rb_podcast_source_post_date_cell_sort_func),
8654         (rb_podcast_source_post_status_cell_sort_func),
8655         (rb_podcast_source_post_feed_cell_sort_func):
8656         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
8657         (rb_entry_view_album_sort_func),
8658         (rb_entry_view_double_ceiling_sort_func),
8659         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
8660         the entry's location as a last resort when sorting, so the sort order
8661         is stable. This will stop entries moving around when two entries have
8662         the same sorting, and one of them gets played.
8664 2005-11-22  James Livingston  <jrl@ids.org.au>
8666         * daapsharing/rb-daap-connection.c:
8667         (rb_daap_connection_class_init), (rb_daap_connection_init),
8668         (connection_get_password), (build_message),
8669         (http_response_handler), (http_get), (handle_server_info),
8670         (handle_login), (handle_update), (handle_database_info),
8671         (handle_song_listing), (handle_playlists),
8672         (handle_playlist_entries), (rb_daap_connection_new),
8673         (rb_daap_connection_constructor), (rb_daap_connection_logout),
8674         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
8675         (rb_daap_connection_get_headers),
8676         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
8677         (rb_daap_connection_set_property),
8678         (rb_daap_connection_get_property):
8679         * daapsharing/rb-daap-connection.h:
8680         * sources/rb-daap-source.c: (rb_daap_source_dispose),
8681         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
8682         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
8683         of destroying the object when it is going to be used by a callback and
8684         fixes a double-free. Fixes bugs 321930 and 322007.
8686 2005-11-22  James Livingston  <jrl@ids.org.au>
8688         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
8689         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
8690         notification if there aren't any. Fixes bug 321968.
8692 2005-11-22  James Livingston  <jrl@ids.org.au>
8694         * rhythmdb/rhythmdb-property-model.c:
8695         (rhythmdb_property_model_set_property),
8696         (rhythmdb_property_model_finalize),
8697         (rhythmdb_property_model_compare),
8698         (rhythmdb_property_model_insert),
8699         (rhythmdb_property_model_delete_prop): Fix property model sorting
8700         where the display and sort keys are different. Fixes bug 321980.
8702 2005-11-22  James Livingston  <jrl@ids.org.au>
8704         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
8705         when import as a file or passed on the command line, and load them as
8706         playlists.
8708 2005-11-22  James Livingston  <jrl@ids.org.au>
8710         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
8712         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
8713         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
8714         a broken daap server. Fixes bug 321919.
8716 2005-11-22  James Livingston  <jrl@ids.org.au>
8718         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
8719         drag-and-drop for both the episodes and feeds list.
8720         
8721         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
8722         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
8723         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
8725         * widgets/rb-property-view.c: (rb_property_view_class_init),
8726         (rb_property_view_set_property), (rb_property_view_get_property),
8727         (rb_property_view_new), (rb_property_view_constructor):
8728         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
8729         (rb_simple_view_new), (rb_simple_view_constructor):
8730         * widgets/rb-simple-view.h: add a "draggable" property to property
8731         views and set it to false for the feed list. Fixes bug 321284.
8733 2005-11-22  James Livingston  <jrl@ids.org.au>
8735         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
8737         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
8738         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
8739         * sources/rb-ipod-source.c: (add_rb_playlist):
8740         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
8741         (rb_playlist_source_set_property),
8742         (rb_playlist_source_get_property), (rb_playlist_source_new),
8743         (impl_receive_drag), (rb_playlist_source_add_location),
8744         (rb_playlist_source_new_from_xml):
8745         * sources/rb-playlist-source.h: give playlists and (optional)
8746         entry-type, and reject entries that don't match. Fixes bug 322006.
8748 2005-11-21  James Livingston  <jrl@ids.org.au>
8750         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
8751         (rb_source_header_finalize): remove the weak references when the
8752         source header is finalised. Stops the callbacks being called after the
8753         object is destroyed.
8755 2005-11-21  James Livingston  <jrl@ids.org.au>
8757         * shell/main.c: (main): don't try to acquite bonobo/dbus when
8758         --no-registration was passed. It causes warnings that make it
8759         impossible to run with --no-registration --g-fatal-warnings
8761 2005-11-21  James Livingston  <jrl@ids.org.au>
8763         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
8764         of strings when they are still in use. Fixes bug 321547.
8766         (rb_daap_connection_destroy): fix memory leak
8768 2005-11-21  James Livingston  <jrl@ids.org.au>
8770         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
8771         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
8772         (rb_daap_mdns_resolve_cancel), (publish_cb),
8773         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
8774         support.
8776 2005-11-21  James Livingston  <jrl@ids.org.au>
8778         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
8779         sorting by genre
8781 2005-11-20  James Livingston  <jrl@ids.org.au>
8783         * podcast/rb-podcast-manager.c:
8784         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
8785         that we don't leak thread structures. Fixes bug 321636, and probably
8786         321775.
8788 2005-11-20  James Livingston  <jrl@ids.org.au>
8790         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
8791         (lookup_cd):
8792         * podcast/rb-podcast-manager.c: (start_job),
8793         (rb_podcast_manager_db_entry_deleted_cb),
8794         (rb_podcast_manager_entry_remove_cb):
8795         * podcast/rb-podcast-parse.c: (rb_insert_item),
8796         (rb_podcast_parse_load_feed):
8797         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
8798         * shell/rb-removable-media-manager.c:
8799         (rb_removable_media_manager_append_media_source):
8800         * shell/rb-shell.c: (add_to_library_response_cb):
8801         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
8802         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
8803         * sources/rb-iradio-source.c:
8804         (stations_view_drag_data_received_cb):
8805         * sources/rb-library-source.c: (string_list_equal),
8806         (impl_get_extra_views), (impl_receive_drag):
8807         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
8808         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
8809         (impl_receive_drag):
8810         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
8811         (rb_entry_view_append_column_custom), (harvest_entries):
8812         * widgets/rb-property-view.c:
8813         (rb_property_view_selection_changed_cb):
8814         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
8815         switch from using g_list_append to g_list_prepend. This changes
8816         operations from O(n^2) to O(n), which in cases like deleting a lot of
8817         tracks can give huge improvements in speed. Closes bug 321696.
8819 2005-11-20  James Livingston  <jrl@ids.org.au>
8821         * sources/rb-sourcelist.c: (rb_sourcelist_init),
8822         (rb_sourcelist_update_expander_visibility): fix indenting of child
8823         sources.
8825 2005-11-20  James Livingston  <jrl@ids.org.au>
8827         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
8828         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
8829         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
8830         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
8831         (add_service), (entry_group_cb): dynamically allocate memory, rather
8832         than using static variables.
8834         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
8835         re-enable the daap share if the name hasn't changed.
8836         * shell/rb-shell-preferences.c:
8837         (share_name_entry_focus_out_event_cb): don't ask the daap share to
8838         change it's name when the checkbox is disabled. Fixed bug 321748.
8840 2005-11-18  James Livingston  <jrl@ids.org.au>
8842         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
8843         as hidden if it is on the current workspace.
8845 2005-11-17  William Jon McCann  <mccann@jhu.edu>
8847         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
8848         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
8849         (rb_podcast_properties_dialog_parse_time): 
8850         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
8851         (rb_feed_podcast_properties_dialog_parse_time):
8852         Rework the way the last mod time strings are created.  It was using
8853         thread unsafe functions, not creating value UTF, and not not checking
8854         the value of the result before modifying it.  This new method fixes
8855         these problems.
8857 2005-11-18  James Livingston  <jrl@ids.org.au>
8859         Don't reset the search box when viewing a different source, because it
8860         will change what is being played. Closes 321593.
8862         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
8863         the search box
8865         * shell/rb-source-header.c: (rb_source_header_class_init),
8866         (rb_source_header_init), (rb_source_header_finalize): use
8867         G_DEFINE_TYPE.
8869         (rb_source_header_set_property),
8870         (rb_source_header_source_weak_destroy_cb),
8871         (rb_source_header_search_cb): store the search text when leaving a
8872         source and put it in the search box when viewing it again.
8874 2005-11-18  James Livingston  <jrl@ids.org.au>
8876         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8877         (save_entry):
8878         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
8879         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
8880         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
8881         time stamp.
8883         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
8884         last-seen as the timestamp of the last update of the feed. Don't
8885         re-add episodes that have been deleted. Closes 319759.
8887 2005-11-18  James Livingston  <jrl@ids.org.au>
8889         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
8890         that don't have the day name at the start. Closes 321645.
8892 2005-11-18  James Livingston  <jrl@ids.org.au>
8894         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
8895         (rb_podcast_manager_copy_post),
8896         (rb_podcast_manager_get_podcast_dir):
8897         * podcast/rb-podcast-manager.h:
8898         * sources/rb-podcast-source.c: (impl_get_config_widget),
8899         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
8900         download location switching to / if the prefs were opened before
8901         downloading an episode. Closes 321611.
8903 2005-11-18  James Livingston  <jrl@ids.org.au>
8905         * data/glade/podcast-new.glade:
8906         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
8907         (rb_new_podcast_dialog_set_property),
8908         (rb_new_podcast_dialog_get_property),
8909         (rb_new_podcast_dialog_response_cb),
8910         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
8911         for entering new podcast urls in. Closes bug 321610.
8913 2005-11-18  James Livingston  <jrl@ids.org.au>
8915         * sources/rb-podcast-source.c: (construct_query_from_selection),
8916         (rb_podcast_source_do_query): allow podcast list to be re-sorted
8917         without restarting RB. Closes bug 321612.
8919 2005-11-18  James Livingston  <jrl@ids.org.au>
8921         * widgets/rb-entry-view.c: (set_column_visibility),
8922         (rb_entry_view_sync_columns_visible): when changing visibility of one
8923         column, don't hide and re-show all the others. Makes a show/hide
8924         column operation a lot faster.
8926 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
8928         Closes bug 321702.
8930         * iradio/rb-station-properties-dialog.c
8931          (rb_station_properties_dialog_update_bitrate):
8932         Mark the bitrate value as being kbps, using the same
8933         translatable format string as rb-song-info.c
8935         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
8936          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
8938         * shell/rb-shell-player.c (info_available_cb):
8939          Use RB_METADATA_FIELD_BITRATE to update the iradio
8940          station's bitrate value.
8942 2005-11-17  James Livingston  <jrl@ids.org.au>
8944         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
8946         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
8947         free a NULL date.
8949 2005-11-17  James Livingston  <jrl@ids.org.au>
8951         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
8953         * lib/rb-stock-icons.c: emit a single warning rather than multiple
8954         assertions. Lookup the icon size correctly.
8956 2005-11-16  William Jon McCann  <mccann@jhu.edu>
8958         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
8959         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
8960         Fix build errors.
8962 2005-11-16  James Livingston  <jrl@ids.org.au>
8964         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
8965         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
8966         (rb_shell_preferences_sync_column_button): block the toggle signal of
8967         the column checkboxes while setting their initial state. This stops
8968         the visibility being re-set, which causes a lot of time being spent
8969         measuring the columns aagin when opening the prefs window.
8971         Use G_DEFINE_TYPE.
8973 2005-11-16  James Livingston  <jrl@ids.org.au>
8975         * sources/rb-sourcelist.c: (rb_sourcelist_init),
8976         (rb_sourcelist_edit_source_name): don't assume that the editable
8977         source name is in the first column, because it isn't. Fixes bug
8978         320137.
8980 2005-11-16  James Livingston  <jrl@ids.org.au>
8982         * daapsharing/rb-daap-mdns.h:
8983         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
8984         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
8985         parts can know why operations failed. Avahi can report that the daemon
8986         was not running. Howl doesn't do this (yet).
8987         
8988         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
8989         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
8990         (browse_cb): don't display mdns errors to the user, if it wa because
8991         the daemon was not running.
8993 2005-11-16  James Livingston  <jrl@ids.org.au>
8995         * rhythmdb/rhythmdb-property-model.c:
8996         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
8997         (rhythmdb_property_model_compare),
8998         (rhythmdb_property_model_insert),
8999         (rhythmdb_property_model_insert_prop),
9000         (rhythmdb_property_model_delete),
9001         (rhythmdb_property_model_delete_prop),
9002         (rhythmdb_property_model_get_value): use RBRefStrings rather than
9003         copying the string and re-creating the sort key. Saves a little bit of
9004         memory and time.
9006         (rhythmdb_property_model_perform_sync),
9007         (rhythmdb_property_model_sync): perform the count sync in an idle
9008         callback, so that it doesn't have to be re-run once per value when
9009         loading.
9011 2005-11-16  James Livingston  <jrl@ids.org.au>
9013         * rhythmdb/rhythmdb-query-model.c:
9014         (rhythmdb_query_model_entry_deleted_cb),
9015         (rhythmdb_query_model_remove_entry): remove deleted entries from the
9016         limited list. Stops problems if they are deleted, and then things on
9017         the main list are
9019 2005-11-16  James Livingston  <jrl@ids.org.au>
9021         * NEWS: update NEWS
9023         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
9024         button's minimise-to-tray action
9026 2005-11-16  James Livingston  <jrl@ids.org.au>
9028         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
9029         leak. Disable adding newly created files for now, because it doesn't
9030         work properly.
9032         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
9033         (rb_sourcelist_model_finalize):
9034         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
9035         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
9037 2005-11-16  James Livingston  <jrl@ids.org.au>
9039         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
9040         problem where a GError* wasn't being set to NULL. Actually check the
9041         result.
9043 2005-11-16  James Livingston  <jrl@ids.org.au>
9045         * doc/reference/tmpl/rb-entry-view.sgml:
9046         * doc/reference/tmpl/rhythmbox-unused.sgml:
9047         * doc/reference/tmpl/rhythmdb-query-model.sgml:
9048         * doc/reference/tmpl/rhythmdb.sgml:
9049         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
9050         docs, including the patch that was on bug 
9052         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
9053         API, because it should only be used by RhythmDB itself.
9055 2005-11-16  James Livingston  <jrl@ids.org.au>
9057         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
9058         pausing by middle clicking on the tray icon.
9060 2005-11-15  James Livingston  <jrl@ids.org.au>
9062         * configure.ac: enable audioscrobbler support by default, if libsoup
9063         is present.
9065 2005-11-15  James Livingston  <jrl@ids.org.au>
9067         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9068         Closes bug 321157.
9070         * configure.ac:
9071         * daapsharing/rb-daap-connection.c: (build_message),
9072         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
9073         support gzip encoded daap connections.
9075         (handle_song_listing): fix leak
9077 2005-11-15  James Livingston  <jrl@ids.org.au>
9079         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
9080         * sources/rb-podcast-source.c:
9081         (rb_podcast_source_post_date_cell_data_func): make the date format
9082         translatable again, so that translators can choose the best format for
9083         their locale (%x is huge in some locales)
9085 2005-11-15  James Livingston  <jrl@ids.org.au>
9087         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
9088         (end_job): mark podcast episodes as failed, if the metadata load
9089         fails. This will prevent people playing non-audio enclosures, helping
9090         stop bug 320366.
9092 2005-11-14  James Livingston  <jrl@ids.org.au>
9094         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
9095         video sink to fakesink. This will stop problems (potentially crashers)
9096         that will occur if the file contains a video stream.
9098         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
9099         rather than using magic numbers everywhere.
9101         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
9102         * sources/rb-podcast-source.c:
9103         (rb_podcast_source_songs_show_popup_cb),
9104         (rb_podcast_source_cmd_download_post),
9105         (rb_podcast_source_post_status_cell_data_func),
9106         (rb_podcast_source_entry_activated_cb): use the above constants.
9108         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
9109         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
9110         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
9111         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
9112         (cancel_job), (download_progress_cb),
9113         (rb_podcast_manager_cancel_download),
9114         (rb_podcast_manager_insert_feed): use the constants, and fix a
9115         trhead-safety issue.
9117 2005-11-14  Bastien Nocera  <hadess@hadess.net>
9119         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
9120         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
9121         entry-changed events after stats on startup, fixes entry deleted from
9122         filtered views not disappearing
9124 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
9126         Fix rhythmdb query model refcount and polling problems. Closes bug
9127         321410.
9129         * rhythmdb/rhythmdb-property-model.c:
9130         (rhythmdb_property_model_finalize):
9131          Unref the query model if we have one.
9133         * rhythmdb/rhythmdb-query-model.h:
9134          Remove poll and cancel methods.  Query cancellation
9135          never did anything anyway.
9137         * rhythmdb/rhythmdb-query-model.c:
9138         (rhythmdb_query_model_init): Remove GAsyncQueues.
9139          Replace the GAsyncQueue-based update processing
9140          with a simpler g_idle_add approach; still has the
9141          same queueing properties, but now we don't poll the
9142          model forever and updates are processed immediately.
9144         (_unref_entry), (rhythmdb_query_model_finalize):
9145          Unref DB entries when finalized
9147         (rhythmdb_query_model_has_pending_changes):
9148          Use our own counter to decide if there are updates pending
9150         (rhythmdb_query_model_process_update), (idle_process_update):
9151          Process updates using g_idle_add, or directly if possible
9153         (rhythmdb_query_model_signal_complete),
9154         (rhythmdb_query_model_add_entries):
9155          Change to new update processing method
9157         (idle_poll_model), (rhythmdb_query_model_poll):
9158          Remove GAsyncQueue-based update processing.
9160         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
9161          No need to poll the model any more - updates are processed
9162          directly for synchronous queries.
9164         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9165          Property model needs to be unref'd here
9167         * sources/rb-library-source.c: (rb_library_source_do_query):
9168          Don't try to cancel the active query (it never worked anyway),
9169          remove obsolete poll call, unref property models as required,
9170          and don't unref the cached 'all' query, since hold on to it.
9171          We unref it when the sort order changes, which forces the query
9172          to be rerun.
9174         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
9175          Unref the property model as required
9177         (rb_podcast_source_do_query):
9178          Treat any query with no selected feeds and no search text as
9179          an 'all' query.  Unref query models except for the cached
9180          'all' query, since we hold on to that.
9182         (rb_podcast_source_cmd_update_all):
9183          Unref the property model as required.
9185         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
9186          Don't try to cancel the query (it never worked anyway)
9188         (rb_entry_view_poll_model):
9189          No need for this any more.
9191         * widgets/rb-entry-view.h:
9192          Remove obsolete function rb_entry_view_poll_model
9194         * widgets/rb-property-view.c: (rb_property_view_set_property):
9195          Ref and unref the property model as required.
9197 2005-11-14  James Livingston  <jrl@ids.org.au>
9199         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9201         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
9202         for error. Closes bug 321416.
9204 2005-11-14  James Livingston  <jrl@ids.org.au>
9206         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9208         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
9209         a crasher if a feed's last-post value isn't set. Closes bug 321353.
9211 2005-11-14  James Livingston  <jrl@ids.org.au>
9213         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
9214         * shell/rb-removable-media-manager.c:
9215         (rb_removable_media_manager_set_uimanager):
9216         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
9217         translation domain for GTK action groups.
9219 2005-11-12  James Livingston  <jrl@ids.org.au>
9221         * po/POTFILES.in: remove the old station-new files
9223 2005-11-12  James Livingston  <jrl@ids.org.au>
9225         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9226         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
9227         (save_entry): cause Rhythmbox to re-read the metadata from a file,
9228         when upgrading from a pre-Date-supporting version to a version that
9229         supports Date metadata. Closes bug 320760.
9231 2005-11-12  James Livingston  <jrl@ids.org.au>
9233         Add "update all podcast feeds" command. Closes bug 319954.
9235         * data/ui/rhythmbox-ui.xml: add to source context menu.
9237         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9238         (register_action_group), (rb_podcast_source_cmd_download_post),
9239         (rb_podcast_source_cmd_delete_feed),
9240         (rb_podcast_source_cmd_properties_feed),
9241         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
9242         rather than the shell.
9244         (rb_podcast_source_update_feed_func),
9245         (rb_podcast_source_cmd_update_all): update every feed.
9247 2005-11-11  James Livingston  <jrl@ids.org.au>
9249         * shell/rb-shell-player.c: (rb_shell_player_class_init),
9250         (rb_shell_player_constructor), (rb_shell_player_finalize):
9251         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
9252         others follow the HIG recommentations.
9254 2005-11-11  James Livingston  <jrl@ids.org.au>
9256         * podcast/rb-podcast-manager.c:
9257         (rb_podcast_manager_subscribe_feed): check that the url is valid,
9258         before trying to use it.
9260 2005-11-11  James Livingston  <jrl@ids.org.au>
9262         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
9263         (rb_entry_view_append_column): When sorting by year, sort by album
9264         within a particular year.
9266 2005-11-11  James Livingston  <jrl@ids.org.au>
9268         * NEWS: updates
9270 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
9271         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
9272         spelling of "Language."
9274 2005-11-11  James Livingston  <jrl@ids.org.au>
9276         * rhythmdb/rhythmdb-property-model.c:
9277         (rhythmdb_property_model_row_inserted_cb),
9278         (rhythmdb_property_model_prop_changed_cb),
9279         (rhythmdb_property_model_entry_removed_cb),
9280         (rhythmdb_property_model_insert_prop),
9281         (rhythmdb_property_model_sync): display the count after the "All"
9282         entry of a property model.
9284         * widgets/rb-property-view.c: (rb_property_view_class_init),
9285         (rb_property_view_finalize), (rb_property_view_constructor): use
9286         G_DEFINE_TYPE
9288 2005-11-10  James Livingston  <jrl@ids.org.au>
9290         * rhythmdb/rhythmdb-query-model.c:
9291         (rhythmdb_query_model_remove_entry):
9292         * rhythmdb/rhythmdb-query-model.h: make
9293         rhythmdb_query_model_remove_entry return whether the entry was in the
9294         model.
9296         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
9297         don't add non-SONG entries, as it doesn't really work and can cause
9298         crashes.
9300         (rb_playlist_source_remove_location): assert if the playlist and model
9301         differ on whether the entry is in the playlist
9303 2005-11-10  James Livingston  <jrl@ids.org.au>
9305         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
9306         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
9307         (rb_podcast_manager_thread_parse_feed),
9308         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
9309         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
9310         emulating one with a list and mutex. Fixes a couple of threading
9311         issues.
9312         
9313         (rb_podcast_manager_insert_feed): fix some problems with ignoring
9314         updated feeds.
9315         
9316         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
9317         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
9318         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
9319         * podcast/rb-podcast-parse.c: (rb_insert_item),
9320         (rb_podcast_parse_channel_free):
9321         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
9322         fix some typos, and make a bit of code clearer.
9324 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
9326         Make the "delete podcast" dialog better. Closes bug 320899.
9328         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
9329         Add PROP_WINDOW for rb_shell_get_property so we can access the
9330         GtkWindow widget of the main window. 
9331         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
9332         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
9333         podcast feed delete dialog less confusing as well.
9335 2005-11-09  James Livingston  <jrl@ids.org.au>
9337         * shell/rb-removable-media-manager.c:
9338         (rb_removable_media_manager_mount_volume),
9339         (rb_removable_media_manager_scan): Fix a crasher where we were getting
9340         NULL for a cd volume.
9342 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
9344         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
9345         method return a gboolean indicating whether the changes
9346         to the entry have already been applied.
9348         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
9349         only modify the entry if impl_entry_set returns FALSE.
9351         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
9352         When setting the location of an entry, update the
9353         hash table mapping locations to entries.
9355 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
9357         * data/glade/Makefile.am:
9358         * iradio/Makefile.am:
9359           Remove 'new station' dialog.
9361         * iradio/rb-station-properties-dialog.h:
9362         * sources/rb-iradio-source.c: (impl_song_properties):
9363         * shell/rb-shell.c: (rb_shell_cmd_new_station):
9364          Add 'new station' mode parameter to
9365          rb_station_properties_dialog_new.
9367         * (rb_station_properties_dialog_response_cb),
9368         (rb_station_properties_dialog_create_station):
9369          When in 'new station' mode, create the station
9370          when OK button is pressed.
9372         * iradio/rb-station-properties-dialog.c:
9373         (rb_station_properties_dialog_location_changed_cb):
9374          Only enable OK button if a location is specified
9375         (rb_station_properties_dialog_init),
9376         (rb_station_properties_dialog_new),
9377         (rb_station_properties_dialog_update),
9378         (rb_station_properties_dialog_update_title),
9379         (rb_station_properties_dialog_rated_cb),
9380         (rb_station_properties_dialog_update_play_count),
9381         (rb_station_properties_dialog_update_bitrate),
9382         (rb_station_properties_dialog_update_last_played),
9383         (rb_station_properties_dialog_update_rating),
9384         (rb_station_properties_dialog_update_playback_error),
9385         (rb_station_properties_dialog_show):
9386          Handle 'new station' mode, where there's no current
9387          station to edit.
9389 2005-11-08  James Livingston  <jrl@ids.org.au>
9391         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
9392         keybinding for track columns consistent between library and playlist
9393         sources.
9395 2005-11-07  James Livingston  <jrl@ids.org.au>
9397         * data/ui/rhythmbox-ui.xml:
9398         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
9399         "Edit" item to playlist menu. Closes bug 311470.
9401 2005-11-07  James Livingston  <jrl@ids.org.au>
9403         patch by: Jaap A. Haitsma <jaap@haitsma.org>
9405         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
9406         confirmation to save dialogs, with gtk 2.8 or higher.
9408 2005-11-07 James Livingston  <jrl@ids.org.au>
9409         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
9410         requirement to a general on, because people are going to have it for
9411         the other dependencies.
9413 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
9415         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
9416         delete dialog less confusing.  Use HIG recommended button order.
9417         Closes bug 320840.
9419 2005-11-06  James Livingston  <jrl@ids.org.au>
9421         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
9422         drag-and-drop error.
9423         
9424         * sources/rb-library-source.c: (rb_library_source_constructor): only
9425         add drag-and-drop for the Library itself, subclasses can add support
9426         themselves if they want it.
9428         * sources/rb-removable-media-source.c:
9429         (rb_removable_media_source_class_init): by default removable media
9430         sources do not support dnd
9432 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
9434         * data/glade/station-properties.glade:
9435          Add box containing error icon and error message label
9436         * iradio/rb-station-properties-dialog.c:
9437         (rb_station_properties_dialog_class_init),
9438         (rb_station_properties_dialog_finalize):
9439          Change this class to use G_DEFINE_TYPE
9440         (rb_station_properties_dialog_init),
9441         (rb_station_properties_dialog_update),
9442         (rb_station_properties_dialog_update_playback_error):
9443          Display error icon and message when there is one, and hide the error
9444          box otherwise.
9445         (rb_station_properties_dialog_show): Hack widget show
9446          method to update the visibility of the error info box when showing
9447          the widget.  Otherwise the icon is displayed all the time (same thing
9448          is done in rb-song-info). Closes bug 320749.
9450 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
9452         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
9453         parsing of the duration of podcast episodes from the feed. Closes bug
9454         320748.
9456 2005-11-05  James Livingston  <jrl@ids.org.au>
9458         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
9459         release date metadata ("Year"). Closes bug 166093.
9461         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
9462         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
9463         (rb_metadata_gst_add_tag_data):
9464         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9465         (save_entry):
9466         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
9467         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
9468         (set_props_from_metadata), (rhythmdb_entry_set_internal),
9469         (rhythmdb_prop_get_type):
9470         * rhythmdb/rhythmdb.h: add support for "date" property
9471         
9472         * data/glade/general-prefs.glade:
9473         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
9474         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
9475         (rb_entry_view_append_column):
9476         * widgets/rb-entry-view.h:
9477         * sources/rb-library-source.c: (rb_library_source_constructor):
9478         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
9479         "Year" colums
9481         * data/glade/song-info.glade:
9482         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
9483         (rb_song_info_construct_single), (rb_song_info_constructor),
9484         (rb_song_info_populate_dialog), (rb_song_info_update_year),
9485         (rb_song_info_sync_entry_single): Add "Year" to song info window
9487         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
9488         sorted by year.
9490 2005-11-05  James Livingston  <jrl@ids.org.au>
9492         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
9493         description if it's very long.
9495 2005-11-05  James Livingston  <jrl@ids.org.au>
9497         pathc by: Artem Baguinski <femistofel@gmail.com>
9499         * help/C/Makefile.am:
9500         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
9501         Closes bug 320613.
9503 2005-11-05  James Livingston  <jrl@ids.org.au>
9505         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9507         * daapsharing/rb-daap-share.c: (write_next_chunk),
9508         (message_finished), (databases_cb): Use chunked file loading and
9509         sending in the DAAP server. This should reduce the amount of memory
9510         required to send files to the client.
9512 2005-11-05  James Livingston  <jrl@ids.org.au>
9514         * configure.ac: make the nautilus_burn_drive_door_is_open detection
9515         work better on some systems. Closes 320622.
9517 2005-11-05  James Livingston  <jrl@ids.org.au>
9519         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
9520         homepage, so that users can find out what AudioScrobbler is. Add
9521         access keys.
9523         * data/glade/daap-prefs.glade:
9524         * data/glade/general-prefs.glade:
9525         * data/glade/library-prefs.glade: make the indent be more consistent
9527         * data/glade/podcast-prefs.glade: 
9528         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9529         (impl_get_config_widget): move thing out of code into glade, where
9530         they belong
9532 2005-11-05  James Livingston  <jrl@ids.org.au>
9534         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
9535         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
9537 2005-11-04  James Livingston  <jrl@ids.org.au>
9539         * configure.ac: don't print DAAP configure info twice
9541 2005-11-04  James Livingston  <jrl@ids.org.au>
9543         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
9544         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
9545         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
9546         #ifdefs, since we removed the symbol. Oops
9548 2005-11-04  James Livingston  <jrl@ids.org.au>
9550         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
9551         after the connect line, not before. Oops.
9553 2005-11-04  James Livingston  <jrl@ids.org.au>
9555         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
9556         fix some warnings
9558 2005-11-03  James Livingston  <jrl@ids.org.au>
9560         * NEWS: update the news file
9562         * data/glade/general-prefs.glade: make the prefs refer to "time" not
9563         "duration" column.
9565         * data/ui/rhythmbox-ui.xml:
9566         * shell/rb-playlist-manager.c:
9567         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9568         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
9569         and "delete" for feeds.
9571 2005-11-03  James Livingston  <jrl@ids.org.au>
9573         * sources/rb-podcast-source.c: (impl_delete),
9574         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
9575         feed. Closes 319760.
9577 2005-11-03  James Livingston  <jrl@ids.org.au>
9579         Don't start playing from the remote site when a un-downloaded podcast
9580         is activated. Closes 319983.
9581         
9583         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
9584         (write_job_data), (download_progress_cb): write the local location as
9585         soon as any data is recieved
9587         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
9588         the mountpoint to NULL for podcast episodes that haven't yet been
9589         downloaded.
9590         
9591         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
9592         start playing a podcast if it hasn't been downloaded.
9593         
9594         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9595         (rb_podcast_source_entry_activated_cb): begin downloading when the
9596         podcast is activated.
9598 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
9600         * data/glade/general-prefs.glade:  Fix capitalization.
9601         * shell/rb-removable-media-manager.c:  Add a mnemonic.
9602         * sources/rb-podcast-source.c:
9603         (rb_podcast_source_songs_show_popup_cb),
9604         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
9606 2005-11-03  James Livingston  <jrl@ids.org.au>
9608         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
9610         * shell/rb-removable-media-manager.c:
9611         (rb_removable_media_manager_mount_volume): don't check network or
9612         autofs mounts, as they're not going to be removable media. Stops
9613         sending lots of warnings to syslog. Closes 320571.
9615         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
9616         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
9617         320570.
9619 2005-11-03  James Livingston  <jrl@ids.org.au>
9621         Add support for playing audio CDs. Metadata lookup is done using
9622         SoundJuicer's MusicBrainz lookup code, which can be switched to using
9623         the library when it gets broken out of S-J.
9624         
9625         Add a "rescan media" menu item, and commands for ejecting removable
9626         media.
9628         Move nautilus-cd-burner from optional to required depenency.
9630         * configure.ac:
9631         * data/ui/rhythmbox-ui.xml:
9632         * metadata/Makefile.am:
9633         + metadata/sj-error.c:
9634         + metadata/sj-error.h:
9635         + metadata/sj-metadata-marshal.list:
9636         + metadata/sj-metadata-musicbrainz.c:
9637         + metadata/sj-metadata-musicbrainz.h:
9638         + metadata/sj-metadata.c:
9639         + metadata/sj-metadata.h:
9640         + metadata/sj-structures.c:
9641         + metadata/sj-structures.h:
9642         * player/Makefile.am:
9643         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
9644         * po/POTFILES.in:
9645         * shell/Makefile.am:
9646         * shell/rb-removable-media-manager.c:
9647         (rb_removable_media_manager_dispose), (poll_tray_opened),
9648         (end_cd_drive_monitor), (begin_cd_drive_monitor),
9649         (rb_removable_media_manager_load_media),
9650         (rb_removable_media_manager_mount_volume),
9651         (rb_removable_media_manager_cmd_eject_medium),
9652         (rb_removable_media_manager_cmd_scan_media),
9653         (rb_removable_media_manager_check_volume),
9654         (rb_removable_media_manager_unmount_volume_swap),
9655         (rb_removable_media_manager_scan):
9656         * sources/Makefile.am:
9657         + sources/rb-audiocd-source.c:
9658         + sources/rb-audiocd-source.h:
9659         * tests/Makefile.am:
9661 2005-11-02  James Livingston  <jrl@ids.org.au>
9663         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9665         * sources/rb-iradio-source.c:
9666         (stations_view_drag_data_received_cb):
9667         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
9668         don't crash when the second uri is missing frm the drop, which
9669         browsers sometimes do.
9671 2005-11-01  James Livingston  <jrl@ids.org.au>
9673         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
9674         (rb_podcast_manager_insert_feed):
9675         * podcast/rb-podcast-manager.h:
9676         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
9677         (rb_set_item_value), (rb_validate_item_propert),
9678         (rb_podcast_parse_date), (rb_podcast_parse_time):
9679         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
9680         from the feed.
9682 2005-10-31  James Livingston  <jrl@ids.org.au>
9684         * ChangeLog:
9685         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
9686         huge
9688 2005-10-31  James Livingston  <jrl@ids.org.au>
9690         * sources/rb-podcast-source.c:
9691         (rb_podcast_source_post_date_cell_data_func): generate the date string
9692         in a way that is correct in all locales.
9693         
9694         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
9695         (rhythmdb_entry_sync_mirrored): make the last played/date added
9696         columns use the same format.
9698 2005-10-30  James Livingston  <jrl@ids.org.au>
9701         * podcast/rb-podcast-manager.c:
9702         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
9703         
9704         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
9705         iradio errors better.
9707 2005-10-30  James Livingston  <jrl@ids.org.au>
9709         patch by: Artem Baguinski <femistofel@gmail.com>
9711         * metadata/rb-metadata-gst.c: (rb_metadata_init):
9713 2005-10-30  James Livingston  <jrl@ids.org.au>
9715         * podcast/rb-podcast-manager.c:
9716         (rb_podcast_manager_subscribe_feed),
9717         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
9718         already been added, usually as a radio station. Closes 319434.
9720 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
9722         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
9723         mnemonics & resize issues)
9724         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
9725         & mnemonics)
9726         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
9727         widget for the "download location" label.
9729         Closes bug 320184.
9731 2005-10-29  James Livingston  <jrl@ids.org.au>
9733         Allow the search box to match words from multiple properties. Closes
9734         bug 139196. Thanks to the person from IRC who did a lot of the initial
9735         work.
9738         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
9739         * lib/rb-util.h: Add functions to split a string into words, and one
9740         to perform "search folding" which is currently like casefolding but
9741         also strips punctuation
9742         
9743         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
9744         (rhythmdb_query_preprocess):
9745         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
9746         against title, artist, album and genre (for the search box)
9747         
9748         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
9749         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9750         (save_entry), (search_match_properties),
9751         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
9752         splitting into words and matching across multiple properties.
9753         
9754         * sources/rb-library-source.c: (construct_query_from_selection): use
9755         the new SEARCH_MATCH property for the search box
9756         
9757         * widgets/rb-entry-view.c: (type_ahead_search_func):
9759 2005-10-29  James Livingston  <jrl@ids.org.au>
9761         * lib/rb-stock-icons.c: (rb_stock_icons_init):
9762         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
9763         
9764         * shell/rb-playlist-manager.c:
9765         * shell/rb-shell.c: use the above stock ids, so that the icons get set
9766         correctly.
9767         
9768         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
9769         initial state of the shuffle/repeat menu items correctly. Patch from
9770         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
9772 2005-10-29  James Livingston  <jrl@ids.org.au>
9774         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
9775         double-free.
9776         
9777         * widgets/rb-cell-renderer-pixbuf.c:
9778         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
9779         icon go black when row is not selected
9780         
9781         * doc/reference/tmpl/rb-daap-connection.sgml:
9782         * doc/reference/tmpl/rhythmdb.sgml: doc updates
9784 2005-10-29  James Livingston  <jrl@ids.org.au>
9786         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
9787         silly mistake, where it could think partial downloads has been
9788         completed.
9790 2005-10-29  James Livingston  <jrl@ids.org.au>
9792         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9794         * data/glade/song-info.glade:
9795         * widgets/rb-song-info.c: (rb_song_info_construct_single),
9796         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
9797         (rb_song_info_sync_entry_single): show the disc number in the song
9798         info window. From bug 311199.
9800 2005-10-29  James Livingston  <jrl@ids.org.au>
9802         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
9803         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
9804         regularly. Closes 155306.
9806 2005-10-29  James Livingston  <jrl@ids.org.au>
9808         * podcast/rb-podcast-manager.c:
9809         (rb_podcast_manager_download_entry),
9810         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
9811         (rb_podcast_manager_insert_feed):
9812         * podcast/rb-podcast-manager.h:
9813         * podcast/rb-podcast-parse.c: (rb_set_item_value),
9814         (rb_podcast_parser_start_element):
9815         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
9816         don't download them again. However, it can't resume
9817         partially-downloaded ones.
9819 2005-10-28  James Livingston  <jrl@ids.org.au>
9821         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
9822         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
9823         work. Don't attempt to write duration as a tag.
9825         Thanks to Artem Baguinski <femistofel@gmail.com>
9827 2005-10-28  James Livingston  <jrl@ids.org.au>
9829         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9830         don't disable the status-bar menu item when the current source doesn't
9831         use the search box.
9833 2005-10-28  James Livingston  <jrl@ids.org.au>
9835         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
9836         crash if the file has unknown length
9838 2005-10-27  James Livingston  <jrl@ids.org.au>
9840         * daapsharing/rb-daap-connection.c:
9841         (rb_daap_connection_state_done): don't assert when a daap server
9842         doesn't have any playlists
9844 2005-10-27  James Livingston  <jrl@ids.org.au>
9846         * sources/rb-sourcelist-model.c:
9847         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
9848         source for the sourcelist. Closes bug 319817.
9850 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
9852         Patch by: Renato Araujo <renatox@gmail.com>
9854         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
9855           Fix for a crasher caused by previous patch.
9857 2005-10-26  James Livingston  <jrl@ids.org.au>
9859         * data/glade/podcast-prefs.glade:
9860         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
9861         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
9862         * sources/rb-podcast-source.c: (rb_podcast_source_new):
9863         * podcast/rb-podcast-manager.c:
9864         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
9865         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
9866         * shell/rb-shell.c: Change some strings to make them more consistent.
9867         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
9868         makes it clearer which is which. "Episode" may not be the best term,
9869         but it seems to be widely used.
9870         
9871         Also fix some strings that weren't marked as translatable.
9872         
9873         * podcast/rb-feed-podcast-properties-dialog.c:
9874         (rb_feed_podcast_properties_dialog_class_init),
9875         (rb_feed_podcast_properties_dialog_finalize):
9876         * podcast/rb-new-podcast-dialog.c:
9877         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
9878         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
9879         (rb_simple_view_finalize), (rb_simple_view_constructor):
9880         * podcast/rb-podcast-properties-dialog.c:
9881         (rb_podcast_properties_dialog_class_init),
9882         (rb_podcast_properties_dialog_finalize):
9883         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
9884         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
9885         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
9886         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
9887         use G_DEFINE_TYPE, instead of doing it manually.
9889 2005-10-26  James Livingston  <jrl@ids.org.au>
9891         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
9892         <jrl@ids.org.au>
9894         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
9895         (rb_metadata_init): Check that the necessary plugins are present to do
9896         id3 editing.
9897         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
9898         corrupted before replacing the original.
9900 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
9902         reviewed by: James Livingston <jrl@ids.org.au>
9904         Assign sequential IDs to playlists for DAAP rather than using the
9905         address of the playlist object.  Less flaky, and should work on 64bit
9906         platforms. Closes bug 319304.
9908         * daapsharing/rb-daap-share.c: 
9909         (rb_daap_share_set_property): watch for playlist creation
9910         (_find_by_id), (_find_by_source): playlist list search functions
9911         (rb_daap_share_playlist_created),
9912         (rb_daap_share_process_playlist),
9913         (rb_daap_share_playlist_destroyed):
9914          update playlist list as it changes, use weak refs on 
9915          playlists to get notified on destroy.
9916         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
9917          destroy playlist list on shutdown
9918         (add_playlist_to_mlcl): use playlist ID rather than pointer in
9919          DAAP response
9920         (databases_cb): search for playlist ID in list rather than just
9921          converting it to a pointer; return HTTP 404 if playlist not 
9922          found.
9923         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
9924          is already used for the main library
9926 2005-10-26  James Livingston  <jrl@ids.org.au>
9928         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9930         * daapsharing/rb-daap-connection.c: (build_message),
9931         (http_response_handler), (http_get), (handle_server_info),
9932         (handle_login), (handle_update), (handle_database_info),
9933         (handle_song_listing), (handle_playlists),
9934         (handle_playlist_entries), (handle_logout),
9935         (rb_daap_connection_new), (rb_daap_connection_logout),
9936         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
9937         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
9938         * daapsharing/rb-daap-connection.h:
9939         * sources/rb-daap-source.c: (rb_daap_source_activate),
9940         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
9941         (rb_daap_source_disconnect): Make connecting to DAAP sources
9942         asynchronous, so that non-responsive servers don't hang the UI. Closes
9943         316225.
9945 2005-10-26  James Livingston  <jrl@ids.org.au>
9947         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9949         * rhythmdb/rhythmdb-query-model.c:
9950         (rhythmdb_query_model_do_reorder): generate the row re-order map
9951         correctly.
9952         
9953         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
9954         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
9955         Update selection when rows get re-ordered. Closes 319718.
9957 2005-10-26  James Livingston  <jrl@ids.org.au>
9959         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
9961         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
9962         actually set the db pointer in play orders. Closes 319818.
9964 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
9966         Patch by: Renato Araujo <renatox@gmail.com>
9968         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
9969         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
9970         (rb_podcast_manager_update_synctime),
9971         (rb_podcast_manager_config_changed),
9972         (rb_podcast_manager_insert_feed):
9973         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9974         (save_entry):
9975         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
9976         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
9977         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
9979 2005-10-25  James Livingston  <jrl@ids.org.au>
9981         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
9982         (db_entry_deleted_cb): don't share tracks that are hidden because the
9983         file is missing.
9985 2005-10-22  James Livingston  <jrl@ids.org.au>
9987         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
9988         crash if an entry couldn't be playerd, without streamer setting an
9989         error.
9991         
9992         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
9994         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
9995         (rb_new_podcast_dialog_text_changed): enable the add button when a url
9996         is pasted into the dialog.
9997         
9998         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
9999         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
10000         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
10001         (rb_podcast_parse_channel_free):
10002         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
10003         feeds
10005 2005-10-22  James Livingston  <jrl@ids.org.au>
10007         * sources/rb-iradio-source.c:
10008         (rb_iradio_source_first_time_changed): Make merging the default
10009         stations actually work.
10010         
10011         * sources/rb-podcast-source.c:
10012         (rb_podcast_source_post_status_cell_data_func): fix problem where some
10013         people weren't seing the percentages in the stats column.
10015 2005-10-21  James Livingston  <jrl@ids.org.au>
10017         Patch from Caio Marcelo <cmarcelo@gmail.com>
10019         * shell/rb-shell.c: (rb_shell_window_state_cb),
10020         (rb_shell_get_visibility), (idle_hide_mainwindow),
10021         (rb_shell_set_visibility): Make the "show window" item in the tray
10022         icon menu show the toggle state correctly. Use a better policy on
10023         deciding whether the window is "visible" or not. Closes bug 308053.
10025 2005-10-21  James Livingston  <jrl@ids.org.au>
10027         * doc/reference/tmpl/rb-shell-preferences.sgml:
10028         * shell/Makefile.am: fix building with gtk-doc
10030         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
10031         don't submit podcasts to audioscrobbler
10032         
10033         
10034         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10035         
10036         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
10037         (rb_set_item_value): strip spaces surrounding podcast urls
10038         
10040         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
10041         
10042         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
10044 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
10046         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
10047          Audioscrobbler/Last.fm support
10049         * configure.ac:
10050         * data/glade/Makefile.am:
10051         * data/glade/audioscrobbler-prefs.glade:
10052         * data/rhythmbox.schemas:
10053         * lib/Makefile.am:
10054         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
10055         * lib/md5.h:
10056         * lib/rb-preferences.h:
10057         * po/POTFILES.in:
10058         * shell/Makefile.am:
10059         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
10060         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
10061         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
10062         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
10063         (rb_audioscrobbler_timeout_cb), (mkmd5),
10064         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
10065         (rb_audioscrobbler_do_handshake),
10066         (rb_audioscrobbler_do_handshake_cb),
10067         (rb_audioscrobbler_submit_queue),
10068         (rb_audioscrobbler_submit_queue_cb),
10069         (rb_audioscrobbler_import_settings),
10070         (rb_audioscrobbler_preferences_sync),
10071         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
10072         (rb_audioscrobbler_gconf_changed_cb),
10073         (rb_audioscrobbler_song_changed_cb),
10074         (rb_audioscrobbler_username_entry_changed_cb),
10075         (rb_audioscrobbler_username_entry_activate_cb),
10076         (rb_audioscrobbler_password_entry_changed_cb),
10077         (rb_audioscrobbler_password_entry_activate_cb),
10078         (rb_audioscrobbler_enabled_check_changed_cb),
10079         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
10080         (rb_audioscrobbler_load_entry_from_string),
10081         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
10082         (rb_audioscrobbler_print_queue),
10083         (rb_audioscrobbler_free_queue_entries):
10084         * shell/rb-audioscrobbler.h:
10085         * shell/rb-shell-preferences.c:
10086         (rb_shell_preferences_append_audioscrobbler_config):
10087         * shell/rb-shell-preferences.h:
10088         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
10089         (rb_shell_select_source), (rb_shell_cmd_preferences):
10090         * sources/Makefile.am:
10092 2005-10-21  James Livingston  <jrl@ids.org.au>
10094         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
10096         * Makefile.am:
10097         * NEWS:
10098         * configure.ac:
10099         * data/art/Makefile.am:
10100         * data/glade/Makefile.am:
10101         * data/rhythmbox.schemas:
10102         * data/ui/rhythmbox-ui.xml:
10103         * doc/reference/Makefile.am:
10104         * doc/reference/tmpl/rhythmdb.sgml:
10105         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10106         * lib/rb-stock-icons.h:
10107         * po/POTFILES.in:
10108         * podcast/Makefile.am:
10109         + podcast/rb-feed-podcast-properties-dialog.c:
10110         + podcast/rb-feed-podcast-properties-dialog.h:
10111         + podcast/rb-new-podcast-dialog.c:
10112         + podcast/rb-new-podcast-dialog.h:
10113         + podcast/rb-podcast-manager.c:
10114         + podcast/rb-podcast-manager.h:
10115         + podcast/rb-podcast-marshal.list:
10116         + podcast/rb-podcast-parse.c:
10117         + podcast/rb-podcast-parse.h:
10118         + podcast/rb-podcast-properties-dialog.c:
10119         + podcast/rb-podcast-properties-dialog.h:
10120         * rhythmdb/rhythmdb-property-model.c:
10121         (rhythmdb_property_model_set_property),
10122         (rhythmdb_property_model_enable_drag):
10123         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
10124         (rhythmdb_tree_parser_end_element), (save_entry),
10125         (rhythmdb_tree_save):
10126         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
10127         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
10128         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
10129         (rhythmdb_entry_podcast_feed_get_type):
10130         * rhythmdb/rhythmdb.h:
10131         * shell/Makefile.am:
10132         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
10133         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
10134         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
10135         (rb_shell_quit):
10136         * sources/Makefile.am:
10137         + sources/rb-podcast-source.c:
10138         + sources/rb-podcast-source.h:
10139         * widgets/Makefile.am:
10140         * widgets/rb-property-view.c: (rb_property_view_class_init),
10141         (rb_property_view_constructor),
10142         (rb_property_view_selection_changed_cb),
10143         (rb_property_view_get_treeview):
10144         * widgets/rb-property-view.h:
10145         + widgets/rb-simple-view.c:
10146         + widgets/rb-simple-view.h:
10148 2005-10-20  James Livingston  <jrl@ids.org.au>
10150         * NEWS: update with changes since 0.9.1
10152         * configure.ac: check whether collate_key_for_filename is available
10153         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
10154         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
10155         it if it isn't available in glib (i.e. building against 2.6)
10156         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
10157         collation to get "natural sorting". Closes bug 158599.
10159 2005-10-20  James Livingston  <jrl@ids.org.au>
10161         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
10163         * doc/reference/tmpl/rb-shell-player.sgml:
10164         * shell/rb-shell-player.c: (rb_shell_player_class_init),
10165         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
10166         (rb_shell_player_get_playing),
10167         (rb_shell_player_get_playing_time_string),
10168         (rb_shell_player_get_playing_time),
10169         (rb_shell_player_set_playing_time), (tick_cb),
10170         (rb_shell_player_get_playing_path), (filter_mmkeys):
10171         * shell/rb-shell-player.h:
10172         * shell/rb-shell-player.xml:
10173         * shell/rb-shell.c: (rb_shell_constructor),
10174         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
10175         (rb_shell_set_window_title), (rb_shell_playing_impl),
10176         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
10177         Merge the duration_changed and elapsed_changed DBUS signals into one
10178         elapsed_changed signal. Check that the output argument isn't NULL
10179         before trying to put things in it.
10181 2005-10-20  James Livingston  <jrl@ids.org.au>
10183         * rhythmdb/rhythmdb-query-model.c:
10184         (rhythmdb_query_model_entry_added_cb),
10185         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
10186         problem where hidden entries could be shown in playlists.
10187         
10188         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
10189         issues when switching in and out of small mode.
10191 2005-10-19  James Livingston  <jrl@ids.org.au>
10193         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
10194         (rb_shell_constructor), (rb_shell_window_state_cb),
10195         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
10196         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
10197         (rb_shell_view_smalldisplay_changed_cb),
10198         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
10199         (rb_shell_sync_paned): remove gconf window-state races, prevent
10200         changing small mode too often, fix window event races. Closes 122806.
10202         
10203         Patch from Caio Marcelo <cmarcelo@gmail.com>
10205         * data/rhythmbox.schemas:
10206         * shell/rb-shell.c: (rb_shell_window_state_cb),
10207         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
10208         Remember the position of the window. Closes 315289.
10210 2005-10-19  James Livingston  <jrl@ids.org.au>
10212         Patch from Christophe Fergeau  <teuf@gnome.org>
10214         * configure.ac: determine whether libgpod is present when neither
10215         --with-ipod nor --without-ipod is passed
10217 2005-10-19  James Livingston  <jrl@ids.org.au>
10219         Patch from Caio Marcelo <cmarcelo@gmail.com>
10221         * shell/rb-shell-player.c: (do_next_idle),
10222         (rb_shell_player_do_previous), (rb_shell_player_do_next),
10223         (rb_shell_player_do_previous_or_seek),
10224         (rb_shell_player_previous_button_cb),
10225         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
10226         (rb_shell_player_cmd_next), (eos_cb):
10227         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
10228         end of the playlist is reached.
10230 2005-10-19  Christopher Aillon  <caillon@redhat.com>
10232         * lib/rb-thread.c: fix a few GSource leaks
10234 2005-10-19  James Livingston  <jrl@ids.org.au>
10236         * doc/reference/tmpl/bacon-volume.sgml:
10237         * doc/reference/tmpl/disclosure-widget.sgml:
10238         * doc/reference/tmpl/eel-gconf-extensions.sgml:
10239         * doc/reference/tmpl/eggnotificationbubble.sgml:
10240         * doc/reference/tmpl/eggtrayicon.sgml:
10241         * doc/reference/tmpl/gsequence.sgml:
10242         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
10243         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
10244         * doc/reference/tmpl/rb-daap-connection.sgml:
10245         * doc/reference/tmpl/rb-daap-dialog.sgml:
10246         * doc/reference/tmpl/rb-daap-mdns.sgml:
10247         * doc/reference/tmpl/rb-daap-share.sgml:
10248         * doc/reference/tmpl/rb-daap-sharing.sgml:
10249         * doc/reference/tmpl/rb-daap-source.sgml:
10250         * doc/reference/tmpl/rb-daap-src.sgml:
10251         * doc/reference/tmpl/rb-daap-structure.sgml:
10252         * doc/reference/tmpl/rb-debug.sgml:
10253         * doc/reference/tmpl/rb-dialog.sgml:
10254         * doc/reference/tmpl/rb-druid.sgml:
10255         * doc/reference/tmpl/rb-entry-view.sgml:
10256         * doc/reference/tmpl/rb-enums.sgml:
10257         * doc/reference/tmpl/rb-file-helpers.sgml:
10258         * doc/reference/tmpl/rb-glade-helpers.sgml:
10259         * doc/reference/tmpl/rb-header.sgml:
10260         * doc/reference/tmpl/rb-history.sgml:
10261         * doc/reference/tmpl/rb-ipod-source.sgml:
10262         * doc/reference/tmpl/rb-iradio-source.sgml:
10263         * doc/reference/tmpl/rb-library-source.sgml:
10264         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
10265         * doc/reference/tmpl/rb-metadata.sgml:
10266         * doc/reference/tmpl/rb-new-station-dialog.sgml:
10267         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
10268         * doc/reference/tmpl/rb-play-order-linear.sgml:
10269         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
10270         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
10271         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
10272         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
10273         * doc/reference/tmpl/rb-play-order-random.sgml:
10274         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
10275         * doc/reference/tmpl/rb-play-order.sgml:
10276         * doc/reference/tmpl/rb-player.sgml:
10277         * doc/reference/tmpl/rb-playlist-manager.sgml:
10278         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
10279         * doc/reference/tmpl/rb-playlist-source.sgml:
10280         * doc/reference/tmpl/rb-preferences.sgml:
10281         * doc/reference/tmpl/rb-property-view.sgml:
10282         * doc/reference/tmpl/rb-query-creator-private.sgml:
10283         * doc/reference/tmpl/rb-query-creator.sgml:
10284         * doc/reference/tmpl/rb-rating-helper.sgml:
10285         * doc/reference/tmpl/rb-rating.sgml:
10286         * doc/reference/tmpl/rb-recorder.sgml:
10287         * doc/reference/tmpl/rb-refstring.sgml:
10288         * doc/reference/tmpl/rb-removable-media-manager.sgml:
10289         * doc/reference/tmpl/rb-removable-media-source.sgml:
10290         * doc/reference/tmpl/rb-search-entry.sgml:
10291         * doc/reference/tmpl/rb-shell-clipboard.sgml:
10292         * doc/reference/tmpl/rb-shell-glue.sgml:
10293         * doc/reference/tmpl/rb-shell-player-glue.sgml:
10294         * doc/reference/tmpl/rb-shell-player.sgml:
10295         * doc/reference/tmpl/rb-shell-preferences.sgml:
10296         * doc/reference/tmpl/rb-shell.sgml:
10297         * doc/reference/tmpl/rb-song-display-box.sgml:
10298         * doc/reference/tmpl/rb-song-info.sgml:
10299         * doc/reference/tmpl/rb-source-header.sgml:
10300         * doc/reference/tmpl/rb-source.sgml:
10301         * doc/reference/tmpl/rb-sourcelist-model.sgml:
10302         * doc/reference/tmpl/rb-sourcelist.sgml:
10303         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
10304         * doc/reference/tmpl/rb-statusbar.sgml:
10305         * doc/reference/tmpl/rb-stock-icons.sgml:
10306         * doc/reference/tmpl/rb-string-helpers.sgml:
10307         * doc/reference/tmpl/rb-thread.sgml:
10308         * doc/reference/tmpl/rb-tray-icon.sgml:
10309         * doc/reference/tmpl/rb-tree-dnd.sgml:
10310         * doc/reference/tmpl/rb-tree-model-sort.sgml:
10311         * doc/reference/tmpl/rb-util.sgml:
10312         * doc/reference/tmpl/rhythmbox-unused.sgml:
10313         * doc/reference/tmpl/rhythmdb-property-model.sgml:
10314         * doc/reference/tmpl/rhythmdb-query-model.sgml:
10315         * doc/reference/tmpl/rhythmdb-tree.sgml:
10316         * doc/reference/tmpl/rhythmdb.sgml: update for changes
10317         
10318         * doc/reference/Makefile.am: make docs build with changed ipod support
10319         
10320         * po/POTFILES.in: remove sources/itunesdb
10322 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
10324         * sources/itunesdb.c:
10325         * sources/itunesdb.h: removed now useless files
10327 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
10329         * configure.ac:
10330         * shell/Makefile.am:
10331         * sources/Makefile.am:
10332         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
10333         code
10334         [1]: http://www.gtkpod.org/libgpod.html
10337 2005-10-18  James Livingston  <jrl@ids.org.au>
10339         patch from Funda Wang <fundawang@linux.net.cn>
10341         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
10342         the notification bubble string translatable.
10344 ============ Version 0.9.1
10346 2005-10-16  James Livingston  <jrl@ids.org.au>
10348         * configure.ac: bump version to 0.9.1
10349         * NEWS: update translation credits
10351 2005-10-16  James Livingston  <jrl@ids.org.au>
10353         * rhythmdb/rhythmdb-query-model.c:
10354         (rhythmdb_query_model_class_init),
10355         (rhythmdb_query_model_drag_data_received): 
10356         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
10357         notified when things are dropped into the entry view.
10358         
10359         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
10360         (rb_playlist_source_add_location_swapped),
10361         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
10362         (rb_playlist_source_non_entry_dropped),
10363         (rb_playlist_source_row_inserted): Use the new signal so that dropping
10364         things onto a playlist's entry view work correctly, and doesn't cause
10365         crashes. Allow folders to be dropped as well. (Closes 318308)
10367 2005-10-16  James Livingston  <jrl@ids.org.au>
10369         * NEWS: Update some more
10371         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
10372         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
10373         with the paned size, so that it doesn't move when the window is
10374         maximised/restored. Closes bug 315852.
10376         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
10377         display the playcount column, as it's useless (it never get changed).
10379 2005-10-14  James Livingston  <jrl@ids.org.au>
10381         * Makefile.am:
10382         * data/Makefile.am:
10383         * doc/reference/Makefile.am: get "make distcheck" to pass again
10385 2005-10-11  James Livingston  <jrl@ids.org.au>
10387         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
10388         destroy the connection when retrieving the playlists fails, because
10389         tracks have already been added. Closes 318380.
10391 2005-10-11  James Livingston  <jrl@ids.org.au>
10393         * sources/rb-sourcelist.c: (rb_sourcelist_append),
10394         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
10395         (source_name_edited_cb): Ask for the columns to be resized when a
10396         source is added, deleted or changes name.
10398 2005-10-11  James Livingston  <jrl@ids.org.au>
10400         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
10401         create a thread when processing a directory. This stops up created one
10402         thread for each file in a playlist we're trying to load. Closes
10403         317850.
10405         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
10406         typo that made sort-by-artist not work correctly.
10408 2005-10-11  James Livingston  <jrl@ids.org.au>
10410         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
10411         support is enabled
10413 2005-10-11  James Livingston  <jrl@ids.org.au>
10415         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
10416         * lib/rb-file-helpers.h: add a function to turn uris into our
10417         canonical path-escaped form
10418         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
10419         above function when import playlists. This will fix the problem of
10420         duplicate entries due to different representations of the uri (bug
10421         158211).
10423 2005-10-11  James Livingston  <jrl@ids.org.au>
10425         * shell/rb-shell.c: (rb_shell_get_visibility),
10426         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
10427         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
10428         window hiding so that Alt-F4 works again.
10430         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
10431         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
10432         (rb_entry_view_string_sort_func): Stop some crashes where a string
10433         property was set to NULL.
10435 2005-10-10  James Livingston  <jrl@ids.org.au>
10437         * doc/reference/rhythmbox.types: fix gtk-doc generation
10439 2005-10-09  James Livingston  <jrl@ids.org.au>
10441         * sources/rb-sourcelist.c: (rb_sourcelist_init):
10442         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
10443         accelerators, so that we don't have as many conflicting keys.
10445 2005-10-08  James Livingston  <jrl@ids.org.au>
10447         * data/iradio-initial.pls: Update the list of radio stations. Thanks
10448         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
10449         bug 129285.
10451 2005-10-07  James Livingston  <jrl@ids.org.au>
10453         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
10454         local path names in the same way as every other URI. This should stop
10455         duplicates occurring due to different escapings. Closes bug 158211.
10457 2005-10-06  James Livingston  <jrl@ids.org.au>
10459         * NEWS: more updates
10460         
10461         patch from Jaap Haitsma <jaap@haitsma.org>:
10463         * configure.ac:
10464         * data/Makefile.am:
10465         * data/art/Makefile.am:
10466         - data/art/rhythmbox-paused.png:
10467         - data/art/rhythmbox-playback-error.png:
10468         - data/art/rhythmbox-playing.png:
10469         - data/art-clearlooks/:
10470         * lib/rb-file-helpers.c: (rb_file):
10471         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10472         * lib/rb-stock-icons.h:
10473         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
10474         * widgets/rb-cell-renderer-pixbuf.c:
10475         (rb_cell_renderer_pixbuf_render):
10476         * widgets/rb-entry-view.c: (rb_entry_view_init),
10477         (rb_entry_view_set_playing):
10478         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
10479         stock icons instead of custom art. Drop remanents of art-clearlooks.
10481 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
10483         * configure.ac: Added ne in ALL_LINGUAS
10485 2005-10-02  James Livingston  <jrl@ids.org.au>
10487         * data/glade/Makefile.am: actually install the daap prefs glade file
10489 2005-09-30  James Livingston  <jrl@ids.org.au>
10491         * po/POTFILES.in: mremove rb-string-helper.c from the list of
10492         translatable files, so that make check works and we don't annoy the
10493         translators.
10494         
10495         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
10496         sanity checking, in case a db entry is missing some properties.
10498 2005-09-29  James Livingston  <jrl@ids.org.au>
10500         - lib/rb-string-helpers.c:
10501         - lib/rb-string-helpers.h:
10502         * lib/Makefile.am:
10503         * rhythmdb/rhythmdb-tree.c:
10504         * rhythmdb/rhythmdb.c:
10505         * shell/main.c: (main):
10506         * shell/rb-shell.c:
10507         * widgets/rb-entry-view.c:
10508         * widgets/rb-property-view.c: remove rb-string-helpers, as they
10509         utility functions haven't been used in a while.
10511 2005-09-27  James Livingston  <jrl@ids.org.au>
10513         * data/art-clearlooks/Makefile.am:
10514         - data/art-clearlooks/rhythmbox-album.png:
10515         - data/art-clearlooks/rhythmbox-audiocd.png:
10516         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
10517         - data/art-clearlooks/rhythmbox-dnd.png:
10518         - data/art-clearlooks/rhythmbox-ipod.png:
10519         - data/art-clearlooks/rhythmbox-iradio.png:
10520         - data/art-clearlooks/rhythmbox-library.png:
10521         - data/art-clearlooks/rhythmbox-next.png:
10522         - data/art-clearlooks/rhythmbox-pause.png:
10523         - data/art-clearlooks/rhythmbox-play.png:
10524         - data/art-clearlooks/rhythmbox-playlist-menu.png:
10525         - data/art-clearlooks/rhythmbox-playlist.png:
10526         - data/art-clearlooks/rhythmbox-previous.png:
10527         - data/art-clearlooks/rhythmbox-repeat.png:
10528         - data/art-clearlooks/rhythmbox-rewind.png:
10529         - data/art-clearlooks/rhythmbox-shuffle.png:
10530         - data/art-clearlooks/rhythmbox-stop.png:
10531         - data/art-clearlooks/rhythmbox-visuals.png:
10532         - data/art-clearlooks/rhythmbox-volume-max.png:
10533         - data/art-clearlooks/rhythmbox-volume-medium.png:
10534         - data/art-clearlooks/rhythmbox-volume-min.png:
10535         - data/art-clearlooks/rhythmbox-volume-mute.png:
10536         - data/art-clearlooks/rhythmbox-volume-zero.png:
10537         * data/art/Makefile.am:
10538         - data/art/rhythmbox-album.png:
10539         - data/art/rhythmbox-audiocd.png:
10540         - data/art/rhythmbox-automatic-playlist.png:
10541         - data/art/rhythmbox-dnd.png:
10542         - data/art/rhythmbox-ipod.png:
10543         - data/art/rhythmbox-iradio.png:
10544         - data/art/rhythmbox-library.png:
10545         - data/art/rhythmbox-next.png:
10546         - data/art/rhythmbox-pause.png:
10547         - data/art/rhythmbox-play.png:
10548         - data/art/rhythmbox-playlist-menu.png:
10549         - data/art/rhythmbox-playlist.png:
10550         - data/art/rhythmbox-previous.png:
10551         - data/art/rhythmbox-repeat.png:
10552         - data/art/rhythmbox-rewind.png:
10553         - data/art/rhythmbox-shuffle.png:
10554         - data/art/rhythmbox-stop.png:
10555         - data/art/rhythmbox-visuals.png:
10556         - data/art/rhythmbox-volume-max.png:
10557         - data/art/rhythmbox-volume-medium.png:
10558         - data/art/rhythmbox-volume-min.png:
10559         - data/art/rhythmbox-volume-mute.png:
10560         - data/art/rhythmbox-volume-zero.png:
10561         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10562         * lib/rb-stock-icons.h:
10563         * shell/rb-playlist-manager.c:
10564         * shell/rb-shell-player.c:
10565         * sources/rb-daap-source.c: (rb_daap_get_icon):
10566         * sources/rb-ipod-source.c:
10567         * sources/rb-iradio-source.c: (rb_iradio_source_init):
10568         * sources/rb-library-source.c: (rb_library_source_new):
10569         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10570         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
10571         that hasn't been used in a LONG time, and also remove art that are
10572         now stock icons.
10574 2005-09-27  James Livingston  <jrl@ids.org.au>
10576         * README: point to the gnome.org web sites, and update the example
10577         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
10578         
10579         * rhythmdb/rhythmdb-query-model.c:
10580         (rhythmdb_query_model_set_property),
10581         (rhythmdb_query_model_get_property),
10582         (rhythmdb_query_model_finalize):
10583         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
10584         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
10585         * rhythmdb/rhythmdb.h:
10586         * sources/rb-iradio-source.c: (impl_search):
10587         * sources/rb-library-source.c: (impl_search): Add query
10588         "preprocessing", which performs operations such as casefolding any
10589         strings that will be compared to any of the *_FOLDED properties.
10590         Closes bug 316039
10592 2005-09-27  James Livingston  <jrl@ids.org.au>
10594         * data/glade/daap-prefs.glade:
10595         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
10596         file for the daap preferences pane
10597         
10598         * sources/rb-sourcelist.c: (rb_sourcelist_init),
10599         (rb_sourcelist_append), (rb_sourcelist_remove),
10600         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
10601         don't display the column for source expanders unless there is an
10602         expandable source.
10604 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
10606         * .cvsignore:
10607         * Makefile.am:
10608         * configure.ac:
10609         * doc/.cvsignore:
10610         * doc/Makefile.am:
10611         * doc/reference/.cvsignore:
10612         * doc/reference/Makefile.am:
10613         * doc/reference/rhythmbox-docs.sgml:
10614         * doc/reference/rhythmbox-sections.txt:
10615         * doc/reference/rhythmbox.types:
10616         * doc/reference/tmpl/bacon-volume.sgml:
10617         * doc/reference/tmpl/disclosure-widget.sgml:
10618         * doc/reference/tmpl/eel-gconf-extensions.sgml:
10619         * doc/reference/tmpl/eggnotificationbubble.sgml:
10620         * doc/reference/tmpl/eggtrayicon.sgml:
10621         * doc/reference/tmpl/gsequence.sgml:
10622         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
10623         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
10624         * doc/reference/tmpl/rb-daap-connection.sgml:
10625         * doc/reference/tmpl/rb-daap-dialog.sgml:
10626         * doc/reference/tmpl/rb-daap-mdns.sgml:
10627         * doc/reference/tmpl/rb-daap-share.sgml:
10628         * doc/reference/tmpl/rb-daap-sharing.sgml:
10629         * doc/reference/tmpl/rb-daap-source.sgml:
10630         * doc/reference/tmpl/rb-daap-src.sgml:
10631         * doc/reference/tmpl/rb-daap-structure.sgml:
10632         * doc/reference/tmpl/rb-debug.sgml:
10633         * doc/reference/tmpl/rb-dialog.sgml:
10634         * doc/reference/tmpl/rb-druid.sgml:
10635         * doc/reference/tmpl/rb-entry-view.sgml:
10636         * doc/reference/tmpl/rb-enums.sgml:
10637         * doc/reference/tmpl/rb-file-helpers.sgml:
10638         * doc/reference/tmpl/rb-glade-helpers.sgml:
10639         * doc/reference/tmpl/rb-header.sgml:
10640         * doc/reference/tmpl/rb-history.sgml:
10641         * doc/reference/tmpl/rb-ipod-source.sgml:
10642         * doc/reference/tmpl/rb-iradio-source.sgml:
10643         * doc/reference/tmpl/rb-library-source.sgml:
10644         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
10645         * doc/reference/tmpl/rb-metadata.sgml:
10646         * doc/reference/tmpl/rb-new-station-dialog.sgml:
10647         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
10648         * doc/reference/tmpl/rb-play-order-linear.sgml:
10649         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
10650         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
10651         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
10652         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
10653         * doc/reference/tmpl/rb-play-order-random.sgml:
10654         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
10655         * doc/reference/tmpl/rb-play-order.sgml:
10656         * doc/reference/tmpl/rb-player.sgml:
10657         * doc/reference/tmpl/rb-playlist-manager.sgml:
10658         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
10659         * doc/reference/tmpl/rb-playlist-source.sgml:
10660         * doc/reference/tmpl/rb-preferences.sgml:
10661         * doc/reference/tmpl/rb-property-view.sgml:
10662         * doc/reference/tmpl/rb-query-creator-private.sgml:
10663         * doc/reference/tmpl/rb-query-creator.sgml:
10664         * doc/reference/tmpl/rb-rating-helper.sgml:
10665         * doc/reference/tmpl/rb-rating.sgml:
10666         * doc/reference/tmpl/rb-recorder.sgml:
10667         * doc/reference/tmpl/rb-refstring.sgml:
10668         * doc/reference/tmpl/rb-removable-media-manager.sgml:
10669         * doc/reference/tmpl/rb-removable-media-source.sgml:
10670         * doc/reference/tmpl/rb-search-entry.sgml:
10671         * doc/reference/tmpl/rb-shell-clipboard.sgml:
10672         * doc/reference/tmpl/rb-shell-glue.sgml:
10673         * doc/reference/tmpl/rb-shell-player-glue.sgml:
10674         * doc/reference/tmpl/rb-shell-player.sgml:
10675         * doc/reference/tmpl/rb-shell-preferences.sgml:
10676         * doc/reference/tmpl/rb-shell.sgml:
10677         * doc/reference/tmpl/rb-song-display-box.sgml:
10678         * doc/reference/tmpl/rb-song-info.sgml:
10679         * doc/reference/tmpl/rb-source-header.sgml:
10680         * doc/reference/tmpl/rb-source.sgml:
10681         * doc/reference/tmpl/rb-sourcelist-model.sgml:
10682         * doc/reference/tmpl/rb-sourcelist.sgml:
10683         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
10684         * doc/reference/tmpl/rb-statusbar.sgml:
10685         * doc/reference/tmpl/rb-stock-icons.sgml:
10686         * doc/reference/tmpl/rb-string-helpers.sgml:
10687         * doc/reference/tmpl/rb-thread.sgml:
10688         * doc/reference/tmpl/rb-tray-icon.sgml:
10689         * doc/reference/tmpl/rb-tree-dnd.sgml:
10690         * doc/reference/tmpl/rb-tree-model-sort.sgml:
10691         * doc/reference/tmpl/rb-util.sgml:
10692         * doc/reference/tmpl/rhythmdb-property-model.sgml:
10693         * doc/reference/tmpl/rhythmdb-query-model.sgml:
10694         * doc/reference/tmpl/rhythmdb-tree.sgml:
10695         * doc/reference/tmpl/rhythmdb.sgml:
10696         * macros/.cvsignore:
10697         * shell/Makefile.am:
10698         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
10699         (rb_source_finalize), (rb_source_set_property),
10700         (rb_source_get_property), (default_get_pixbuf),
10701         (_rb_source_show_popup):
10702         * sources/rb-source.h:
10703         Add support for gtk-doc in rhythmbox.
10704         Convert RBSource to use newer glib functions, such as add_private.
10705         Gives RBSource a default get_pixbuf implementation.
10707 2005-09-25  James Livingston  <jrl@ids.org.au>
10709         * NEWS: Update with about a months worth of changes
10711         * data/glade/song-info-multiple.glade:
10712         * data/glade/song-info.glade:
10713         * data/rhythmbox.schemas:
10714         * lib/rb-preferences.h:
10715         * rhythmdb/rhythmdb.h:
10716         * shell/rb-shell-player.c:
10717         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
10718         few remaining parts of autorating.
10720 2005-09-24  James Livingston  <jrl@ids.org.au>
10722         * shell/rb-shell.c: (rb_shell_constructor),
10723         (rb_shell_window_state_cb), (rb_shell_set_visibility),
10724         (rb_shell_window_configure_cb): store window state in the gconf keys,
10725         so that it gets used. Closes bugs 313893 and 137068.
10727 2005-09-20  James Livingston  <jrl@ids.org.au>
10729         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
10730         crash if the entry has a NULL string in a property
10731         
10732         * shell/rb-removable-media-manager.c:
10733         (rb_removable_media_manager_load_media): fix some memory leaks
10734         
10735         (rb_removable_media_manager_mount_volume),
10736         (rb_removable_media_manager_eject_medium_cb),
10737         (rb_removable_media_manager_cmd_eject_medium): use
10738         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
10739         
10740         * sources/rb-removable-media-source.c:
10741         (rb_removable_media_source_set_property),
10742         (rb_removable_media_source_get_property): use
10743         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
10745 2005-09-18  James Livingston  <jrl@ids.org.au>
10747         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
10748         column
10750         * data/glade/general-prefs.glade:
10751         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
10752         (rb_shell_preferences_column_check_changed_cb),
10753         (rb_shell_preferences_sync): add checkbox to control visibility
10754         of the column
10755         
10756         
10757         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
10758         (save_entry):
10759         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
10760         (rhythmdb_prop_get_type):
10761         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
10762         was as "last played" is handled
10763         
10764         * sources/rb-library-source.c: (rb_library_source_constructor):
10765         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10766         Make the column show in the library and playlists
10767         
10768         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
10769         * widgets/rb-entry-view.h: add the column
10770         
10771         * widgets/rb-query-creator-properties.c: allow automatic playlists to
10772         be sorted by the column
10774 2005-09-16  James Livingston  <jrl@ids.org.au>
10776         * shell/rb-shell-player.c: (rb_shell_player_init),
10777         (rb_shell_player_do_previous_or_seek),
10778         (rb_shell_player_previous_button_cb),
10779         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
10780         (rb_shell_player_playpause_button_cb): Make the previous button act
10781         the same as the menu item. Fix an inversion of the "previous track or
10782         seek" logic.
10783         
10784         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10785         
10786         (rb_shell_player_playpause): make --play-pause stop source that can't
10787         be paused
10789 2005-09-15  James Livingston  <jrl@ids.org.au>
10791         * configure.ac: increase totem-plparser requirements to 1.1.5
10793         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
10794         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
10795         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
10796         use the newer playlist APIs to save the name of the playlist, and use
10797         the name of a loaded playlist.
10799         Closes bug 309817.
10801 2005-09-15  James Livingston  <jrl@ids.org.au>
10803         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10805         * shell/Makefile.am: stop some linker warnings
10807         * shell/main.c: (main): make --no-registration work with dbus
10809 2005-09-15  James Livingston  <jrl@ids.org.au>
10811         * daapsharing/rb-daap-sharing.c: (create_share):
10812         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
10813         reference sinking and counting issues that I caused.
10815 2005-09-15  James Livingston  <jrl@ids.org.au>
10817         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
10818         playing" icon in the "now playing" column header.
10820 2005-09-14  James Livingston  <jrl@ids.org.au>
10822         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
10823         daap shares, when sharing is turned off.
10825 2005-09-12  Bastien Nocera  <hadess@hadess.net>
10827         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
10828         the GConf value's default, especially for badly installed schema
10829         files
10831 2005-09-12  James Livingston  <jrl@ids.org.au>
10833         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
10835         Patch from Paolo Borelli <pborelli@katamail.com>
10837         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
10838         grip when maximised. Closes bug 316055.
10840 2005-09-11  James Livingston  <jrl@ids.org.au>
10842         Patch from William Jon McCann <mccann@jhu.edu>
10844         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
10845         subclass of GtkStatusbar instead of GtkHBox.
10846         (rb_statusbar_construct): Don't set border width.
10847         (rb_statusbar_init): Use resize grip.  Don't use
10848         markup.
10849         (set_statusbar_tooltip, unset_statusbar_tooltip) 
10850         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
10851         Connect tooltips for actions.
10852         (rb_statusbar_sync_status): Push new message to statusbar.
10853         (rb_statusbar_set_progress): Don't use markup.
10854         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
10855         flag here since it prevents actually showing or hiding.
10856         (rb_statusbar_sync_with_source): Push new message to statusbar.
10858 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
10860         * daapsharing/rb-daap-structure.c:
10861         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
10862         around debugging definition.
10864 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
10865         
10866         * daapsharing/rb-daap-structure.c:
10867         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
10868         type = version.
10870         * daapsharing/rb-daap-mdns.c/h:
10871         (resolve_cb): Updated mDNS resolve callback to send service-name &
10872         name (read from Machine Name in the TXT data or equal to service-name
10873         if not in TXT).
10875         * daapsharing/rb-daap-source.c:
10876         (rb_daap_source_class_init), (rb_daap_source_set_property), 
10877         (rb_daap_source_get_property), (rb_daap_source_new),
10878         (find_source_by_service_name), (resolve_cb), (browse_cb), 
10879         (stop_resolver), (start_browsing), (stop_browsing), 
10880         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
10881         and added 'host' and 'port' gobject properties.  Updated to use new
10882         mDNS resolve callback sending service-name & name arguments.
10884 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
10886         * daapsharing/rb-daap-mdns.c:
10887         (howl_strerror): New function to report errors from Howl
10888         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
10889         (get_sw_discovery), (get_avahi_client): Better error reporting from
10890         Howl & Avahi.
10892         * sources/rb-daap-source.:
10893         (start_browsing), (stop_browsing): Fixed a bug where browsing would
10894         not get started or stopped in some situations.
10895         
10896 2005-09-12  James Livingston  <jrl@ids.org.au>
10898         * shell/rb-removable-media-manager.c: add a missing include, that
10899         would stop compilation if ipod support wasn't turned on
10901 2005-09-11  James Livingston  <jrl@ids.org.au>
10903         * daapsharing/rb-daap-dialog.c: (encode_base64),
10904         (rb_daap_password_dialog_new_run),
10905         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
10906         it is no broken in to two pieces, and remove a use of a goto
10907         
10908         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
10909         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
10910         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
10911         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
10912         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
10913         memory leaks, and some code style things.
10914         
10915         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
10916         (rb_daap_share_init), (rb_daap_share_set_property),
10917         (rb_daap_share_dispose), (rb_daap_share_new),
10918         (rb_daap_share_get_property): make the DB and the playlist manager
10919         gobject properties.
10920         
10921         (message_add_standard_headers),
10922         (message_set_from_rb_daap_structure), (server_info_cb),
10923         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
10924         (server_cb), (add_db_entry), (db_entry_added_cb),
10925         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
10926         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
10927         style and use CONF_PREFIX in the gconf keys
10928         
10929         * daapsharing/rb-daap-sharing.c: (create_share),
10930         (enable_sharing_changed_cb), (share_name_changed_cb),
10931         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
10932         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
10933         (rb_daap_src_instance_init), (rb_daap_src_dispose),
10934         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
10935         (rb_daap_src_get_property), (rb_daap_src_getcaps),
10936         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
10937         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
10938         (rb_daap_src_get_time): Deal with gconf callbacks where the key
10939         hasn't actually changed, fix some memory leaks, code style and release
10940         gconf notifications when the object is destroyed.
10941         
10942         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
10943         (rb_daap_source_class_init), (rb_daap_source_init),
10944         (rb_daap_source_dispose), (rb_daap_source_set_property),
10945         (rb_daap_source_get_property), (rb_daap_source_new),
10946         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
10947         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
10948         (rb_daap_sources_init), (rb_daap_sources_shutdown),
10949         (rb_daap_source_activate), (rb_daap_source_disconnect),
10950         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
10951         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
10952         release gconf notifications, handle gconf callbacks where the key
10953         hasn't changed, make "real name" and "password protected" gobject
10954         properties, fix some code style and fix a memory leak.
10956 2005-09-11  James Livingston  <jrl@ids.org.au>
10958         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10960         * shell/rb-playlist-manager.c:
10961         (rb_playlist_manager_save_playlists),
10962         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
10963         when we aren't supposed to. (Closes bug 315886)
10965 2005-09-11  James Livingston  <jrl@ids.org.au>
10967         * shell/rb-removable-media-manager.c:
10968         (rb_removable_media_manager_class_init),
10969         (rb_removable_media_manager_init),
10970         (rb_removable_media_manager_dispose),
10971         (rb_removable_media_manager_set_property),
10972         (rb_removable_media_manager_get_property),
10973         (rb_removable_media_manager_new),
10974         (rb_removable_media_manager_load_media),
10975         (rb_removable_media_manager_volume_mounted_cb),
10976         (rb_removable_media_manager_volume_unmounted_cb),
10977         (rb_removable_media_manager_mount_volume),
10978         (rb_removable_media_manager_unmount_volume),
10979         (rb_removable_media_manager_source_deleted_cb),
10980         (rb_removable_media_manager_append_media_source),
10981         (rb_removable_media_manager_set_uimanager),
10982         (rb_removable_media_manager_eject_medium_cb),
10983         (rb_removable_media_manager_cmd_eject_medium):
10984         * shell/rb-removable-media-manager.h:
10985         * sources/rb-removable-media-source.c:
10986         (rb_removable_media_source_class_init),
10987         (rb_removable_media_source_init),
10988         (rb_removable_media_source_dispose),
10989         (rb_removable_media_source_set_property),
10990         (rb_removable_media_source_get_property), (impl_get_pixbuf),
10991         (impl_delete_thyself):
10992         * sources/rb-removable-media-source.h: Add the four files that I
10993         somehow managed not to add to cvs in the last commit. Oops.
10995 2005-09-11  James Livingston  <jrl@ids.org.au>
10997         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
10998         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
10999         
11000         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
11001         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
11002         removable-media-manager on startup, and handle creation of sources.
11003         
11004         * sources/rb-ipod-source.h:
11005         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
11006         (rb_ipod_source_init), (rb_ipod_source_constructor),
11007         (rb_ipod_source_dispose), (rb_ipod_source_new),
11008         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
11009         the iPod source over to the removable media framework.
11010         
11011         * sources/rb-library-source.c: (paned_size_allocate_cb),
11012         (rb_library_source_get_paned_key): fix a potential bug is a
11013         library-derived source doesn't have a paned-key
11015 2005-09-11  Bastien Nocera  <hadess@hadess.net>
11017         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
11018         mp3 when we can't get the suffix of a file (Closes: #315941)
11020 2005-09-10  James Livingston  <jrl@ids.org.au>
11022         * configure.ac: fix the mdns tests, so that it doesn't complain about
11023         not finding one, if daap support isn't being compiled in
11025 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
11027         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
11029         * daapsharing/rb-daap-dialog.c:
11030         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
11031         HIG compliancy & images.
11033         * daapsharing/rb-daap-mdns.c:
11034         (browse_cb), (resolve_cb): Better detection of local services.  
11035         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
11036         Howl's limitations.  Fix the way collision handling is done under
11037         Avahi.
11039         * daapsharing/rb-daap-share.c:
11040         (publish_cb): Better name collision handling (at least for Avahi).
11042 2005-09-10  James Livingston  <jrl@ids.org.au>
11044         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
11045         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
11046         preferences more HIG compliant (Closes #315889)
11047         
11048         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
11049         list of files to be translated
11051 2005-09-10  James Livingston  <jrl@ids.org.au>
11053         * configure.ac: fix it so that --enable-daap=no works
11054         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
11055         uninstalled
11057 2005-09-10  James Livingston  <jrl@ids.org.au>
11059         Patch from Christophe Fergeau <teuf@gnome.org>
11061         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
11062         the ipod code.
11064 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
11065         * README.daap: Updating documentation
11067 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
11068         * AUTHORS: Added myself.
11070         * daapsharing/rb-daap-connection.c:
11071         (connection_login), (rb_connection_new): Reorganized password
11072         handling.
11074         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
11076         * shell/rb-shell.c:
11077         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
11079         * sources/rb-daap-source.c:
11080         (rb_daap_source_activate): Better error handling when we are unable to
11081         connect.
11082         
11083 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
11084         * README.daap: Fixed some terminology.
11086         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
11087         New --with-mdns=auto|howl|avahi flag to specify.
11089         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
11090         name collision dialogs.
11092         * daapsharing/rb-daap-connection.c:
11093         (connection_get_password), (build_message), (http_get)
11094         (connection_login): Ask for & use a password if the share demands it.
11096         * daapsharing/rb-daap-connection.h: Changed prototype of
11097         rb_daap_connection_new.
11098         
11099         * daapsharing/rb-daap-mdns.c: 
11100         (resolve_cb): Better detection of your own music share so it doesn't 
11101         appear in the sourcelist.
11103         * daapsharing/rb-daap-share.c:
11104         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
11105         that start on any available port.
11107         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
11109         * sources/rb-daap-source.c:
11110         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
11111         (browse_cb): Handle passworded shares. Resolve the host immediately
11112         instead of when activated.
11113         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
11114         (rb_daap_source_new): New GConf keys for UI state.
11115         (rb_daap_source_activate): Use RBPlaylistSource instead of
11116         RBDAAPPlaylistSource
11117         
11118         * sources/rb-daap-playlist-source.c/h: Removed
11120         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
11121         if the playlist is local (i.e. not DAAP or iPod).
11122         
11123         * shell/rb-playlist-manager.c:
11124         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
11125         wouldn't get saved if the last playlist hadn't changed.  Only save
11126         local playlists.
11127         
11128 2005-09-09  James Livingston  <jrl@ids.org.au>
11130         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
11131         iPod preferences pane, as it already uses the browser views as the
11132         library.
11134 2005-09-09  James Livingston  <jrl@ids.org.au>
11136         * sources/rb-library-source.c: (rb_library_source_finalize),
11137         (rb_library_source_constructor): fix gconf monitoring of library
11138         preference keys.
11139         * sources/rb-library-source.h: remove declaration of function that
11140         does not exist
11142 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
11144         * player/rb-player-gst.c:
11145         (rb_player_set_time): Fix seeking in daap streams.
11147 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
11149         * data/rhythmbox.schemas: Turn music share browsing on by default.
11151 2005-09-07  James Livingston  <jrl@ids.org.au>
11153         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
11155 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
11156         * player/rb-player-gst.c: 
11157         (rb_player_get_time): Fix for extra << & == that accidentally made
11158         it in.
11160         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
11161         
11162 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
11163         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
11164         it in last time.  Sorry.
11166 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
11167         
11168         * player/rb-player-gst.c:
11169         (rb_player_get_time): Fix a small crash appearing when
11170         the uri isn't set in the player, but rb_player_get_time() is
11171         still called.
11173         * configure.ac: Also check for libsoup 2.4, which is what ships with
11174         Gnome 2.12.
11176         * po/POTFILES.in: Added music sharing files that have translatable 
11177         strings.
11179         * README.daap: New file explaining "How Music Sharing Works"  
11181 2005-09-06  Bastien Nocera  <hadess@hadess.net>
11183         * daapsharing/.cvsignore: added
11185 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
11187         * daapsharing/*: Music sharing library.
11188         
11189         * sources/rb-daap-source.c/h: Music share RBSource.
11190         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
11192         * configure.ac: --enable-daap flag to turn on music sharing. Requires
11193         libsoup and a mutlicast DNS implementation (howl or avahi).
11195         * data/rhythmbox.schemas: New GConf keys for music sharing.
11197         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
11198         source right click menu.
11200         * player/rb-player-gst.c: Changes to properly play & seek in remote
11201         music share files.
11203         * shell/rb-playlist-manager.c/h:
11204         (rb_playlist_manager_get_playlists): New function to get a GList * of
11205         the playlists.
11206         (rb_playlist_manager_save_playlists): Don't save music share playlists
11207         and fixed a GObject reference leak.
11209         * shell/rb-shell.c/h:
11210         (rb_shell_append_source): No longer a local function.  Now takes a
11211         parent RBSource * argument, NULL to append a toplevel source.
11212         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
11213         source (useful for disconnecting from remote music share,
11214         specifically).
11215         (rb_shell_quit): Stop music sharing/browsing.
11216         (rb_shell_playlist_added_cb): Work with tree source structure.
11217         (rb_shell_get_property): "playlist-manager" property accessor.
11218         (rb_shell_class_init): New "playlist-manager" property.
11219         (rb_shell_construor): Append sources as toplevel sources.  Initialize
11220         daap sharing/browsing.
11221         (rb_shell_select_source): Notify source of activation/deactivation.
11223         * shell/rb-shell-prefernces.c: Music sharing preferences.
11225         * sources/rb-source.c/h: New activate, deactivate and disconnect
11226         class functions.  Activate & deactivate are notification style 
11227         functions that will tell a source when it is selected/unselected.
11228         Disconnect can be hooked up to a UI object to disconnect the source.
11230         * sources/rb-sourcelist-model.c:
11231         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
11232         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
11233         append a toplevel source.
11235 2005-09-05  James Livingston  <jrl@ids.org.au>
11237         * rhythmdb/rhythmdb-query-model.c:
11238         (rhythmdb_query_model_entry_changed_cb),
11239         (rhythmdb_query_model_do_reorder): Update the query model's totals if
11240         the duration of filesize of an entry changes.  Emit the row-changed
11241         signals that I forgot to put back in, when I was doing query sorting.
11243         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
11244         out "0 minutes" or "0 bytes".
11246 2005-09-04  James Livingston  <jrl@ids.org.au>
11248         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
11249         remove a leftover bit of the "internal-name" property of sources.
11251 2005-09-03  James Livingston  <jrl@ids.org.au>
11253         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
11254         extraneous debug message
11255         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
11256         crasher would affect any library-derived sources (which was also a
11257         memory leak).
11259 2005-09-02  Colin Walters  <walters@verbum.org>
11261         * configure.ac: Fix sytnax error.
11263         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
11264         code to disable minimization icons - need to figure out
11265         why it doesn't work...
11267 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
11269         * data/glade/song-info-multiple.glade:
11270         * data/glade/song-info.glade:
11271         * widgets/rb-song-info.c: (rb_song_info_constructor):
11272         Add a mnemonic to the newly added "Automatically rate" label
11273         in the properties dialog and use a bold typeface like all the 
11274         other labels in the dialog. (Closes bug 315089)
11276 2005-09-03  James Livingston  <jrl@ids.org.au>
11278         * sources/rb-library-source.c: (rb_library_source_class_init),
11279         (rb_library_source_finalize), (rb_library_source_constructor),
11280         (rb_library_source_set_property), (rb_library_source_get_property),
11281         (impl_get_paned_key), (paned_size_allocate_cb),
11282         (rb_library_source_state_prefs_sync), (impl_show_popup),
11283         (rb_library_source_get_paned_key):
11284         * sources/rb-library-source.h: Allow sources derived from
11285         RBLibrarySource to use different gconf keys for sort order, browser
11286         visibility and browser pane position. Fix a crasher if a derived
11287         source overrides _get_pixbuf.
11289 2005-09-02  Colin Walters  <walters@verbum.org>
11291         * shell/rb-shell.c (rb_shell_set_visibility): Move
11292         hint setting which seems to avoid races more.
11293         
11294 2005-09-03  James Livingston  <jrl@ids.org.au>
11296         * shell/rb-shell.c: fix compilation with iPod support enabled
11297         
11298 2005-09-02  Colin Walters  <walters@verbum.org>
11300         * shell/rb-shell.c (struct RBShellPrivate): Add
11301         idle_hide_mainwindow_id.
11302         (rb_shell_constructor): Move taskbar skipping hint into
11303         rb_shell_set_visibility.
11304         (idle_hide_mainwindow): New function.
11305         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
11306         racy hack to avoid rb appearing in taskbar when minimized.
11308 2005-09-01  Colin Walters  <walters@verbum.org>
11310         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
11312         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
11313         from gtkstatusicion.c.
11315         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
11317         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
11318         TrayShowWindow entry.
11319         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
11320         (rb_tray_icon_constructor): Create action group here.
11321         (rb_tray_icon_finalize): Destroy action group.
11322         (rb_tray_icon_set_property): Don't take an action group.
11323         (rb_tray_icon_new): Ditto.
11324         (tray_popup_position_menu): Some mostly boilerplate code
11325         to position menu.
11326         (rb_tray_icon_button_press_event_cb): Position menu.
11327         (rb_tray_icon_get_geom): New function used for the shell
11328         to set minimization hints.
11330         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
11332         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
11333         (struct RBShellPrivate): Change visible to iconified.
11334         (set_icon_geometry): New function from Søren Sandmann to
11335         tell Metacity where to draw the minimization animiation.
11336         (rb_shell_window_state_cb): Update iconified.
11337         (rb_shell_get_visibility): New function to say whether
11338         or not we're currently visible.
11339         (rb_shell_set_visibility): Update to minimize to
11340         tray or present as appropriate.
11341         (rb_shell_window_delete_cb): On window close, just
11342         minimize to tray if we're deleted.
11343         (rb_shell_set_window_title): Kill old notification code.
11344         (rb_shell_toggle_visibility): Nwe function.
11345         (rb_shell_cmd_toggle_visibility): Call it.
11346         (rb_shell_constructor): Skip the taskbar.
11347         (tray_destroy_cb): Better debugging.
11348         
11349 2005-09-01  Colin Walters  <walters@verbum.org>
11351         * data/ui/rhythmbox-ui.xml: Add MusicClose.
11353         * configure.ac: Enable bonobo by default.
11354         
11355 2005-09-01  Colin Walters  <walters@verbum.org>
11357         * configure.ac: Default to old art.  Add macros subdir.
11359         * Makefile.am (SUBDIRS): Add macros.
11361         * macros/Makefile.am: New.
11362         
11363 2005-09-01  Colin Walters  <walters@verbum.org>
11365         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
11366         rb-shell-player.xml.
11368         * remote/dbus/rb-remote-dbus.h: Deleted.
11369         
11370         * remote/dbus/Makefile.am: Delete all the junk, just dist
11371         rb-print-playing.py and rb-set-rating.py.
11373         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
11375         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
11377 2005-09-02  James Livingston  <jrl@ids.org.au>
11379         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
11380         file from cvs
11382         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
11383         (rb_shell_constructor): Patches from Jonathan Matthew
11384         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
11385         a crash when using "browse this artist".
11387 2005-08-31  Colin Walters  <walters@verbum.org>
11389         * configure.ac: Add --with-old-art configure switch.  Also
11390         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
11391         but it doesn't work.
11393         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
11394         Don't use eel_create_colorized_pixbuf for new art.
11395         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
11397         * data/art-clearlooks: New artwork.
11398         
11399 2005-08-31  Colin Walters  <walters@verbum.org>
11401         * shell/main.c (main): Fix Bastien's commit to continue to focus
11402         the window with GTK+ 2.8 at least.
11403         
11404 2005-08-31  Colin Walters  <walters@verbum.org>
11406         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
11407         is already loaded.
11409         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
11411 2005-08-31  Bastien Nocera  <hadess@hadess.net>
11413         * README: remove mentions of the xine-lib backend
11414         * shell/main.c: (main): make it compilable with gtk+ < 2.8
11416 2005-08-30  Colin Walters  <walters@verbum.org>
11418         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
11419         Make non-visible sources insensitive.
11420         
11421 2005-08-30  Colin Walters  <walters@verbum.org>
11423         * shell/rb-shell.c: Don't use GConf for selected source; it's
11424         confusing to have the selected source change after startup,
11425         and since we don't save other things it's not worth saving this.
11427         * sources/rb-playlist-source.c:
11428         * sources/rb-library-source.c:
11429         * sources/rb-iradio-source.c:
11430         * sources/rb-ipod-source.c: Delete internal-name property usage.
11431         * sources/rb-source.c: Delete internal-name property.
11433         * data/rhythmbox.schemas: Delete selected_source.
11434         
11435 2005-08-30  Colin Walters  <walters@verbum.org>
11437         * sources/rb-sourcelist.c: Make playing source bold instead of
11438         displaying a pixbuf; it's much less ugly.
11439         
11440 2005-08-30  Colin Walters  <walters@verbum.org>
11442         * sources/rb-source.c:
11443         * sources/rb-source.h: New virtual method try_playlist.
11445         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
11446         impl_try_playlist.
11447         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
11448         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
11449         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
11450         need to.
11451         (stations_view_drag_data_received_cb): Don't check for iradio uris;
11452         in theory we should though...
11454         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
11455         list in rb_shell_construct now.
11456         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
11457         RBiPodSource.
11458         (rb_shell_constructor): Create library, iradio, ipod here.
11459         (rb_shell_source_deleted_cb): Use source directly instead of
11460         indirecting through type.
11461         (rb_shell_sync_selected_source): Ditto.
11462         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
11463         from the type instead of special-casing.
11464         (rb_shell_guess_type_for_uri) 
11465         (rb_shell_add_uri)
11466         (handle_one_uri_with_possible_metadata): New functions.
11467         (rb_shell_load_uri): Refactor to allow loading playlists again,
11468         also use other URI infrastructure.
11470         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
11471         (rb_shell_player_error): Always set entry error on error, instead
11472         of depending on EOF behavior.
11474         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
11475         to just invoke rb_shell_add_uri.
11476         (rb_playlist_manager_parse_file): Return error instead of tossing
11477         up dialog box directly.
11478         (load_playlist_response_cb): Display error here.
11479         (add_uri_to_playlist): Delete.
11480         (handle_playlist_entry_into_playlist_cb): Renamed to
11481         handle_playlist_entry_cb.
11483         * shell/rb-playlist-manager.h: Add error, update prototype.
11485         * lib/rb-file-helpers.c:
11486         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
11488 2005-08-29  Colin Walters  <walters@verbum.org>
11490         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
11491         if entry already exists.  Use rhythmdb_entry_set_uninserted.
11493         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
11494         needlessly duping string, and use rhythmdb_entry_set_uninserted.
11495         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
11497         * shell/rb-shell.h (enum RBShellError): Add some more errors.
11498         Prototype rb_shell_set_song_property.
11500         * shell/rb-shell.xml: Export setSongProperty.
11502         * shell/rb-shell.c (rb_shell_set_song_property): New function.
11503         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
11504         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
11506         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
11507         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
11508         want to notify of the change.
11509         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
11511         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
11512         logic error; idle functions would be enqueued for each set.
11513         (rhythmdb_entry_set): Fix assertion logic error.
11515         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
11516         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
11517         Return if the entry already exists.
11518         
11519 2005-08-29  Colin Walters  <walters@verbum.org>
11521         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
11522         "inserted" member which we use to keep track of
11523         whether or not an entry is in the DB.  Prototype
11524         rhythmdb_entry_set_uninserted.
11526         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
11527         flag.
11528         (rhythmdb_entry_insert): Assert entry is not already inserted.
11529         (rhythmdb_process_metadata_load): Update to call _set_uninserted
11530         just after creating entry.
11531         (rhythmdb_entry_set): Document, and fail on uninserted entries.
11532         (rhythmdb_entry_set_nonotify): Ditto.
11533         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
11534         entries.
11535         (rhythmdb_entry_set_internal): Change notify flag to
11536         notify_if_inserted.  Also move notification after assertions.
11538         Update all existing callers of rhythmdb_entry_set_internal
11539         to give TRUE for notify_if_inserted; this should be what
11540         we want but may be an efficiency hit.
11541         
11542 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
11544         * shell/rb-shell-player.c: (rb_shell_player_init),
11545         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
11546         (rb_shell_player_set_playing_source_internal),
11547         (rb_shell_player_sync_with_selected_source): Notify the player when an
11548         entry has updated the title, album or artist field, and resync the big
11549         display.
11550         
11551         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11552         * sources/rb-library-source.c: (rb_library_source_class_init),
11553         (impl_get_config_widget):
11554         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
11555         * sources/rb-source.c:
11556         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
11557         get_album functions in rb-source and adapted other sources accordingly.
11558         
11559 2005-08-29  Colin Walters  <walters@verbum.org>
11561         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
11562         signal_change member.
11563         (threadsafe_entry_set): New function.
11564         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
11565         (rhythmdb_entry_set_nonotify): New function; just call
11566         threadsafe_entry_set with FALSE.
11567         (rhythmdb_entry_set_internal): Take a notify flag; if true
11568         add the change to our pending set.
11570         Also update all internal callers of rhythmdb_entry_set_internal
11571         to pass FALSE.  Some of these may be bugs however and need to
11572         pass TRUE...
11574         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
11575         rhythmdb_entry_set, and rename rhythmdb_entry_set to
11576         rhythmdb_entry_set_nonotify.
11578         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
11579         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
11581         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
11583         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
11584         * sources/rb-source.c (rb_source_update_play_statistics): 
11585         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
11586         * sources/rb-ipod-source.c (entry_set_string_prop) 
11587         (load_ipod_db_idle_cb): 
11588         * shell/rb-shell.c (rb_shell_set_rating_impl): 
11589         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
11590         (info_available_cb): 
11591         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
11592         (rb_station_properties_dialog_sync_entries): 
11593         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
11595         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
11596         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
11597         
11598 2005-08-29  Colin Walters  <walters@verbum.org>
11600         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
11602         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
11603         linking insanity.
11605         * widgets/rb-header.c (sanitize_string): New function, extracted
11606         from old info_url.  Be sure to always strip the string.
11607         (info_url): Rewrite to take artist/album, and generate a sane
11608         URL for them from last.fm, which is better than allmusic.com in
11609         that they support Rhythmbox, and have a *SANE* URL scheme.
11610         (artist_info_url, album_info_url): Delete.
11611         (rb_header_sync): Use info_url.
11613 2005-08-29  James Livingston  <jrl@ids.org.au>
11615         * sources/rb-source.c: (rb_source_search): Check to ensure that this
11616         is implemented before calling it. Many sources don't implement the
11617         method.
11619 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
11621         * data/glade/create-playlist.glade:  Cleanup the layout,
11622         and add a few more mnemonics.
11623         * shell/rb-playlist-manager.c:
11624         (rb_playlist_manager_cmd_load_playlist),
11625         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
11626         capitalization for window titles.
11627         * widgets/rb-query-creator-properties.c: Add mnemonics
11628         to checkbutton labels.
11629         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
11630         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
11632 2005-08-28  Colin Walters  <walters@verbum.org>
11634         * data/rhythmbox.schemas: Delete search_text for library
11635         and iradio; this isn't a persistent value anymore.
11636         Closes #313757.
11637         
11638         * sources/rb-source.h:
11639         * sources/rb-source.c: Delete impl_can_search.
11641         * sources/rb-iradio-source.c: Delete search_text usage.
11642         * sources/rb-library-source.c: Ditto.
11644         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
11645         search when source is set, and just do rb_source_search in
11646         rb_source_header_search_cb.
11648         * shell/rb-shell.c (rb_shell_append_source): Don't
11649         initiate search.
11651         * shell/Makefile.am: Don't dist dashboard.c.
11653 2005-08-28  Colin Walters  <walters@verbum.org>
11655         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
11656         
11657 2005-08-28  Colin Walters  <walters@verbum.org>
11659         * data/org.gnome.Rhythmbox.service.in: New.
11661         * data/Makefile.am: Install service file.
11663         * configure.ac: Define DBUS_SERVICES_DIR.
11665         * autogen.sh: Set ACLOCAL_FLAGS.
11667         * macros/acinclude.m4: New.
11668         
11669 2005-08-28  Colin Walters  <walters@verbum.org>
11671         Initial patch from Jonathan Matthew; closes 313684.
11673         * rhythmdb/rhythmdb-tree.c:
11674         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
11675         (save_entry): Return on error.
11676         (rhythmdb_tree_save): Handle error when saving the
11677         db; additionally, handle errors from fclose and unlink,
11678         and print error too.
11680 2005-08-28  Colin Walters  <walters@verbum.org>
11682         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
11683         extra _.
11684         
11685 2005-08-28  Colin Walters  <walters@verbum.org>
11687         * configure.ac: Change iPod support to --with-ipod;
11688           automatically enable it if we have HAL.  Try to
11689           support both HAL 0.5 and HAL 0.2.  Break out
11690           totem-plparser into its own check so later we
11691           can do version tests there too.
11692           Kill dashboard support.
11693         
11694         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
11695         to support HAL > 0.5, but preserve the old code for HAL < 0.5
11696         Closes #310017.
11697         
11698         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
11699         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
11701         * sources/Makefile.am: Also handle
11702         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
11704         * shell/dashboard.c: Delete; someone should just write a little
11705         python shim which lists on the D-BUS interface and writes the
11706         stuff to Dashboard.  Even better Dashboard should be ported
11707         to D-BUS and do the listening itself, perhaps on an abstract
11708         "org.gnome.MusicPlayer" interface or something.
11710         * shell/rb-shell.c: Kill dashboard support.
11712 2005-08-28  Colin Walters  <walters@verbum.org>
11714         * remote/dbus/rb-print-playing.py: New file.
11716 2005-08-28  Colin Walters  <walters@verbum.org>
11718         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
11719         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
11721         * shell/rb-shell-player.h:
11722         * shell/rb-shell-player.c: Add playing-uri-changed signal.
11723         * shell/rb-shell-player.xml: Export it.
11725         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
11726         (rb_shell_error_quark): New.
11728         * shell/rb-shell.h: Prototype.  Also add RBShellError.
11729         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
11730         
11731 2005-08-28  Colin Walters  <walters@verbum.org>
11733         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
11734         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
11735         bonobo_unlock.
11736         (rb_remote_bonobo_preinit): Lock setting moved here.
11737         (rb_remote_bonobo_init): From here.
11739         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
11740         Also invoke handle_cmdline in the right place.
11741         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
11742         GFunc.
11744 2005-08-28  James Livingston  <jrl@ids.org.au>
11746         * NEWS: keep the NEWS file up to date, so we don't have to do it all
11747         when 0.9.1 comes around.
11749 2005-08-28  James Livingston  <jrl@ids.org.au>
11751         * iradio/rb-new-station-dialog.c:
11752         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
11753         bug 314477.
11755 2005-08-28  James Livingston  <jrl@ids.org.au>
11757         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
11759         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
11760         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
11761         is a song is longer than 60 minutes. Closes bug 313311.
11763 2005-08-27  James Livingston  <jrl@ids.org.au>
11765         * data/glade/create-playlist.glade:
11766         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
11767         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
11768         "minutes" as an option in the playlist limit menu.
11770         * rhythmdb/rhythmdb-query-model.c:
11771         (rhythmdb_query_model_class_init),
11772         (rhythmdb_query_model_set_property),
11773         (rhythmdb_query_model_get_property),
11774         (rhythmdb_query_model_update_limited_entries): Allow query models to
11775         have a time limit
11776         
11777         * shell/rb-playlist-manager.c:
11778         (rb_playlist_manager_set_automatic_playlist),
11779         (rb_playlist_manager_cmd_edit_automatic_playlist):
11780         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
11781         (rb_playlist_source_get_query), (impl_receive_drag),
11782         (rb_playlist_source_new_from_xml),
11783         (rb_playlist_source_save_to_xml),
11784         (rb_playlist_source_songs_sort_order_changed_cb),
11785         (rb_playlist_source_do_query):
11786         * sources/rb-playlist-source.h:
11787         * widgets/rb-query-creator.h: Allow playlists to be limited by time
11789 2005-08-27  James Livingston  <jrl@ids.org.au>
11791         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
11793         * configure.ac:
11794         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
11795         non-standard location. Closes bug 314640.
11797 2005-08-26  Colin Walters  <walters@verbum.org>
11798         
11799         Patch from Olivier Blin <oblin@mandriva.com>
11801         * widgets/eggnotificationbubble.c (draw_bubble): 
11802         Handle extreme-left case as well.
11803         
11804 2005-08-26  Colin Walters  <walters@verbum.org>
11806         * shell/rb-shell.c (idle_save_state): Don't do this.
11807         (rb_shell_construct): Remove idle calls to idle_save_state.
11808         We should save the playlists automatically when they're
11809         modified.
11810         (rb_shell_load_uri): Don't try to re-stat entry if it already
11811         exists.
11813         * shell/rb-shell-player.c: Keep track of entry we are attempting
11814         to play.
11815         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
11816         Don't double-free error.
11817         (rb_shell_player_play_entry): Signal errors.
11818         (rb_shell_player_entry_activated_cb): Ditto.
11819         (rb_shell_player_property_row_activated_cb): Ditto.
11820         (rb_shell_player_set_playing_source_internal): Unset attempted
11821         playing entry.
11822         (rb_shell_player_error): Refactor to be usable both sync and
11823         async.  Handle case where displayed entry differs from entry.
11824         (error_cb): Move GDK locking here.
11826         * shell/main.c (main): Drop most commandline arguments for D-BUS;
11827         people can just use dbus-send or python.  We only support focusing
11828         and loading files.
11829         (load_uri_args): New function, extracted from handle_cmdline.
11830         (dbus_load_uri, bonobo_load_uri): New functions.
11832         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
11833         appropriate.
11835         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
11836         * remote/dbus/rb-remote-dbus.c: Deleted.
11838         * player/rb-player-gst.c: Clear any pending idle handlers when we
11839         close the player.  Signal errors generated during open/play etc
11840         as synchronous errors.
11842         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
11843         
11844 2005-08-26  Colin Walters  <walters@verbum.org>
11846         * shell/rb-shell.c (rb_shell_present): Try harder.
11848 2005-08-26  Colin Walters  <walters@verbum.org>
11850         * shell/rb-shell.c (rb_shell_present): Try to handle
11851         GTK_MINOR_VERSION < 8.
11853 2005-08-26  James Livingston  <jrl@ids.org.au>
11855         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
11856         <pbrobinson@gmail.com>
11858 2005-08-26  Colin Walters  <walters@verbum.org>
11860         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
11862 2005-08-25  Colin Walters  <walters@verbum.org>
11864         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
11865         Delete.
11866         (rb_shell_player_do_next_with_rating): Move back into
11867         rb_shell_player_do_next.
11868         (rb_shell_player_entry_activated_cb): Remove call to
11869         rb_shell_player_auto_adjust_rating.
11870         (do_next_idle): Just call rb_shell_player_do_next.
11872         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
11874 2005-08-25  Colin Walters  <walters@verbum.org>
11876         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
11877         before gtk_window_present_with_time.
11878         
11879 2005-08-25  Colin Walters  <walters@verbum.org>
11881         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
11882         default.
11884         * shell/rb-shell.c (rb_shell_constructor): Adapted from
11885         rb_shell_construct.  This is so we only have to do g_object_new.
11886         (rb_shell_get_player): New function.
11887         (rb_shell_get_player_path): Ditto.
11888         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
11889         
11890         * shell/rb-shell.h: Prototype them.
11892         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
11893         export over D-BUS.
11894         (reemit_playing_signal): New function.
11895         (rb_shell_player_open_playlist_location): Use return values from
11896         rb_player_open, rb_player_close, etc. instead of checking "error".
11897         Return a gboolean on failure.
11898         (rb_shell_player_open_entry): Just open entry location, don't
11899         print to stderr.
11900         (rb_shell_player_play): Handle retval from rb_player_play.  Return
11901         a gboolean.
11902         (do_next_idle): Move logic for handling of end of playlist here.
11903         (rb_shell_player_set_playing_entry): Take a GError, return a
11904         gboolean.  Update to use gboolean return values.
11905         (rb_shell_player_do_previous): Delete lots of crazy duplicate
11906         logic.  Signal an error on end of playlist.  Also signal error if
11907         we're not playing.  Move heuristic for replaying the song into
11908         rb_shell_player_cmd_previous.
11909         (rb_shell_player_do_next_with_rating): Signal error on end of
11910         playlist.
11911         (rb_shell_player_do_next): Return errors.
11912         (rb_shell_player_cmd_previous): Heuristic for restarting song
11913         moved here; the idea is you generally only want that from the GUI.
11914         (rb_shell_player_cmd_play): Handle error.
11915         (rb_shell_player_playpause): Signal errors.
11916         (filter_mmkeys): Use rb_shell_player_cmd_previous and
11917         rb_shell_player_cmd_next in favor of the internal _do functions.
11918         
11919         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
11920         errors.  Update prototypes for above changes.
11922         * shell/main.c: More tightly integrate D-BUS; register various
11923         major singleton objects here.  Fix handle_cmdline so we only
11924         process extra arguments, not every argument.
11926         * shell/Makefile.am: Generate D-BUS glue headers.
11928         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
11929         into shell/main.c.  Now this file just acts as a client library.
11930         Not heavily tested.
11932         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
11933         Moved here.
11934         (rb_remote_bonobo_init): Move long CORBA rant here along with
11935         setting of lock functions.
11937         * player/rb-player-gst.c (rb_player_construct)
11938         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
11939         on error.
11941         * player/rb-player.h: Update prototypes.
11943         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
11944         rb-remote-bonobo.c.
11945         (rb_threads_init): Don't set gdk lock functions here.
11947 2005-08-25  James Livingston  <jrl@ids.org.au>
11949         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
11951         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
11952         * lib/rb-tree-dnd.h:
11953         * rhythmdb/rhythmdb-property-model.c:
11954         (rhythmdb_property_model_class_init),
11955         (rhythmdb_property_model_drag_source_init),
11956         (rhythmdb_property_model_iter_parent),
11957         (rhythmdb_property_model_row_draggable),
11958         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
11959         (rhythmdb_property_model_drag_data_get),
11960         (rhythmdb_property_model_enable_drag):
11961         * rhythmdb/rhythmdb-property-model.h:
11962         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
11963         (rb_playlist_manager_set_property), (append_new_playlist_source),
11964         (rb_playlist_manager_save_playlists):
11965         * shell/rb-shell.c: (rb_shell_construct),
11966         (sourcelist_drag_received_cb):
11967         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11968         * sources/rb-playlist-source.c: (impl_receive_drag):
11969         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
11970         (rb_sourcelist_model_drag_dest_init),
11971         (rb_sourcelist_model_set_dnd_targets),
11972         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
11973         (rb_sourcelist_model_row_drop_position),
11974         (rb_sourcelist_model_get_drag_target),
11975         (rb_sourcelist_model_drag_data_get):
11976         * sources/rb-sourcelist-model.h:
11977         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
11978         (rb_sourcelist_init), (rb_sourcelist_get_property),
11979         (rb_sourcelist_selection_changed_cb):
11980         * sources/rb-sourcelist.h:
11981         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
11982         improve drag-n-drop support. Allow dragging of item from property
11983         views to the source list, to create new automatic playlists. Allow
11984         playlist re-ordering. Fix dragging from Rhythmbox to other
11985         applications. (Closes bug 147337)
11987 2005-08-24  Colin Walters  <walters@verbum.org>
11989         Patch from Olivier Blin <oblin@mandriva.com>
11991         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
11992         correctly in the case where the window is next to monitor edge.
11994 2005-08-24  James Livingston  <jrl@ids.org.au>
11996         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
11997         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
11998         a gobject property to get the query model that backs the playlist.
12000 2005-08-24  James Livingston  <jrl@ids.org.au>
12002         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
12003         (handle_playlist_entry_into_playlist_cb),
12004         (rb_playlist_manager_playlist_entries_changed): Disable the "create
12005         audio cd" menu item when a non-playlist source is selected, or the
12006         playlist is empty. (Closes Bug 313253)
12008 2005-08-24  James Livingston  <jrl@ids.org.au>
12010         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
12011         Fix the playlist length checkso it doesn't report 0 for automatic
12012         playlists. This was stopping automati playlists being burnt to cd.
12014 2005-08-24  James Livingston  <jrl@ids.org.au>
12016         * configure.ac:
12017         * sources/rb-playlist-source-recorder.c: (burn_cd):
12018         * sources/rb-playlist-source.c:
12019         (rb_playlist_source_songs_sort_order_changed_cb):
12020         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
12021         more warnings that occur when compiling RPMs on Fedora.
12023 2005-08-24  James Livingston  <jrl@ids.org.au>
12025         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
12026         was stopping some distros gcc version compiling.
12028 2005-08-24  James Livingston  <jrl@ids.org.au>
12030         * NEWS:
12031         * data/glade/create-playlist.glade:
12032         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
12033         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
12034         (rhythmdb_query_free), (rhythmdb_query_serialize),
12035         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
12036         * rhythmdb/rhythmdb.h:
12037         * shell/rb-playlist-manager.c:
12038         (rb_playlist_manager_set_automatic_playlist),
12039         (rb_playlist_manager_cmd_edit_automatic_playlist):
12040         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
12041         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
12042         (impl_receive_drag), (rb_playlist_source_new_from_xml),
12043         (rb_playlist_source_save_to_xml),
12044         (rb_playlist_source_songs_sort_order_changed_cb),
12045         (rb_playlist_source_do_query):
12046         * sources/rb-playlist-source.h:
12047         * widgets/Makefile.am:
12048         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
12049         (rb_entry_view_set_sorting_order):
12050         * widgets/rb-query-creator-private.h:
12051         * widgets/rb-query-creator-properties.c:
12052         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
12053         (stringCriteriaGetWidgetData),
12054         (escapedStringCriteriaSetWidgetData),
12055         (escapedStringCriteriaGetWidgetData), (set_rating_score),
12056         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
12057         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
12058         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
12059         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
12060         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
12061         (relativeTimeCriteriaCreateWidget),
12062         (relativeTimeCriteriaSetWidgetData),
12063         (relativeTimeCriteriaGetWidgetData):
12064         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
12065         (rb_query_creator_class_init), (rb_query_creator_constructor),
12066         (rb_query_creator_dispose), (rb_query_creator_set_property),
12067         (rb_query_creator_get_property), (rb_query_creator_load_query),
12068         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
12069         (get_entry_for_property), (rb_query_creator_get_query),
12070         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
12071         (limit_toggled_cb), (lookup_row_by_widget),
12072         (remove_button_click_cb), (append_row),
12073         (get_property_index_from_proptype), (select_criteria_from_value),
12074         (property_option_menu_changed), (create_property_option_menu),
12075         (create_criteria_option_menu), (sort_option_menu_changed),
12076         (setup_sort_option_menu):
12077         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
12078         playlists. The two most notable improvements are 1) adding more
12079         properties to the query creator, making it much easier to add more in
12080         the future, and 2) allow playlists to be sorted, from the query editor
12081         if they gave limits, and by clicking on column headers if they don't.
12083         Files added: widgets/rb-query-creator-private.h,
12084         sources/rb-query-creator-properties.c
12086 2005-08-21  James Livingston  <jrl@ids.org.au>
12088         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
12089         error=NULL. This stops some crashes.
12091 2005-08-19  Colin Walters  <walters@verbum.org>
12093         Patch from Olivier Blin <oblin@mandriva.com>
12095         * widgets/eggnotificationbubble.c (force_window): Support top
12096         orientation.
12097         * widgets/eggnotificationbubble.h: Remove
12098         egg_notification_bubble_force_window from header.
12099         
12100 2005-08-18  James Livingston  <jrl@ids.org.au>
12102         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
12103         with the changes since then.
12105 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
12107         * shell/rb-shell-player.c: (rb_shell_player_init),
12108         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
12109         (rb_shell_player_volume_widget_changed_cb):
12110         * sources/rb-iradio-source.c:
12111         * sources/rb-library-source.c:
12112         * sources/rb-playlist-source.c:
12113         * widgets/Makefile.am:
12114         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
12115         (bacon_volume_button_class_init), (bacon_volume_button_init),
12116         (bacon_volume_button_dispose), (bacon_volume_button_new),
12117         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
12118         (bacon_volume_button_scroll), (bacon_volume_button_press),
12119         (cb_button_timeout), (cb_button_press), (cb_button_release),
12120         (bacon_volume_release_grab), (cb_dock_press),
12121         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
12122         (bacon_volume_scale_new), (bacon_volume_scale_press),
12123         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
12124         * widgets/bacon-volume.h:
12125         * widgets/rb-volume.c:
12126         * widgets/rb-volume.h:
12127           Use BaconVolumeButton (#300867).
12129 2005-08-17  James Livingston  <jrl@ids.org.au>
12131         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
12132         (rhythmdb_process_metadata_load): don't reset the First Seen time
12133         whenever we recheck the metadata.
12135 2005-08-17  James Livingston  <jrl@ids.org.au>
12137         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
12138         temporary workaround to stop crashes when trying to burn an empty
12139         playlist. Doesn't disable the menu item which is the better solution
12140         (Bug 313253).
12142 2005-08-15  James Livingston  <jrl@ids.org.au>
12144         * shell/rb-source-header.c: (rb_source_header_init),
12145         (rb_source_header_sync_control_state),
12146         (rb_source_header_search_activate_cb):
12147         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12148         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
12149         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
12150         (rb_search_entry_init), (rb_search_entry_searching),
12151         (rb_search_entry_activate_cb):
12152         * widgets/rb-search-entry.h: Move focus to the entry view when user
12153         presses enter in the search box. Patch from Paolo Borelli
12154         <pborelli@katamail.com> (Closes bug 128110)
12156 2005-08-15  James Livingston  <jrl@ids.org.au>
12158         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
12159         (rb_playlist_manager_new_playlist):
12160         * shell/rb-playlist-manager.h:
12161         * shell/rb-shell.c: (rb_shell_construct),
12162         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
12163         the source list to be shown when a new playlist is created. (Closes
12164         bug 161935)
12166 2005-08-15  James Livingston  <jrl@ids.org.au>
12168         * widgets/rb-header.c: (rb_header_init),
12169         (rb_header_set_show_timeline): disable the seek slider, rather than
12170         hiding it, which more closely follows the HIG. (Closes bug 139102)
12172 2005-08-13  Colin Walters  <walters@verbum.org>
12174         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
12175         rb_shell_hidden_notify.
12176         (rb_shell_hidden_notify): Notify if the shell is hidden.
12177         (rb_shell_set_visibility_impl): Debug goo.
12179         * shell/rb-shell.h: Export rb_shell_hidden_notify.
12181         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
12182         when the user clicks on notification.
12184         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
12185         CD burn is complete.
12186         (rb_playlist_source_recorder_finalize): Unref shell.
12187         (rb_playlist_source_recorder_new): Take shell.
12189         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
12190         Pass shell to RBPlaylistSourceRecorder.
12191         
12192 2005-08-13  Colin Walters  <walters@verbum.org>
12194         * lib/rb-thread.c:
12195         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
12196           time to convert.
12198 2005-08-13  Colin Walters  <walters@verbum.org>
12200         * widgets/eggnotificationbubble.h:
12201         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
12202         * widgets/eggtrayicon.c:
12203         * widgets/eggtrayicon.h: Add notification API.
12204         * shell/rb-tray-icon.c:
12205         * shell/rb-tray-icon.h: Add notification API.
12206         * shell/rb-shell.c: Notify on song change.
12208 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
12210         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
12211         Correct an inversion of two lines causing NULL to be unreffed
12213 ============ Version 0.9.0
12215 2005-08-10  Bastien Nocera  <hadess@hadess.net>
12217         * configure.ac: 0.9.0, whee!
12218         * NEWS: badly updated
12219         * remote/bonobo/Makefile.am:
12220         * remote/bonobo/rb-remote-bonobo.h:
12221         * shell/Makefile.am:
12222         * shell/main.c: make distcheck fixes